vroland / epdiy

EPDiy is a driver board for affordable e-Paper (or E-ink) displays.
https://vroland.github.io/epdiy-hardware/
GNU Lesser General Public License v3.0
1.38k stars 190 forks source link

Difference between V2 and V4 #46

Closed mcer12 closed 3 years ago

mcer12 commented 4 years ago

I can't find much information on this. Just some pin differnences and one additional pin GPIO15 is now used. Can you elaborate on that please? :)

vroland commented 3 years ago

The main difference is using 2 LT1945 to power the +-15V and +-22V rails. As a result, some pins on the config shift register where changed and the latch enable pin was moved to a GPIO, as it needs to be toggled for every line. By using a GPIO directly instead of the shift register, the refresh is ~60ms faster ;)

mcer12 commented 3 years ago

I managed to import the schematic in easyeda. I see you split power CTRL for each of the high votlage rails but that isn't required (according to the datasheet) and eats up 2 additional ESP32 pins. +20V and +15V are supposed to be started simultaneously as well as -20V and -15V. I use it like that in my design and it works without issue. Or did you have some other reason for that?

mcer12 commented 3 years ago

Now I see that EP_UD pin is no longer used in V4. So 2 pins could be moved from ESP32 back to the shift register, one pin of the ESP32 freed compared to V2

mcer12 commented 3 years ago

here's my current schematic version, the 3.3V high side switch needs to be tested for current leakage but should be working fine and since it uses SMPS_CTRL pin it saves another pin that would be otherwise needed. I think it would be great if we made something like "V5 (low power)" board that would take advantages from both (the latch pin from V4 and high side switch from my board and saving pins) and also you can copy my pinout for new 6" displays :) https://www.dropbox.com/s/00wqpnsl07a27ph/Schematic_9.7inch%20e-ink%20controller_2020-12-05_17-17-09.pdf?dl=0

vroland commented 3 years ago

Jup, that makes sense. I'll open a "V5" project to track this :)

mcer12 commented 3 years ago

I tested the high side switch with and without the additional n-channel mosfet for logic inverting. These are the results: Using your approach (SMPS_CTRL + single P-channel mosfet) draws additional ~30uA, so the shift registers HIGH state is little leaky. To archieve 28uA deep sleep current, additional n-channel fet (or npn transistor) needs to be added to flip the logic back to active HIGH. So that SMPS_CTRL basically becomes "power_enable" instead of "power_disable" in the code. See my updated schematic: https://www.dropbox.com/s/8k0oe8dnklqosmj/Schematic_9.7inch%20e-ink%20controller_2020-12-06_20-17-59.pdf?dl=0

Regarding the V5 project, is it possible for you to grant me access to the project task board? Maybe I could help out.

mcer12 commented 3 years ago

From what I've gathered, no remaining pins can be moved back to the shift register because they are all timing sensitive... so I don't see any reason not to use current V4 scheme (even though the CTRL-15V and CTRL+15V can be ommited as I pointed out, but there would just be two unused pins). So only difference between V4 and V5 would be inverting SMPS_CTRL logic :) Or do you have any other plans @vroland ? I ask because I would like us to establish final pin scheme so I can finish my board and have it compatible with the V5 :)

vroland commented 3 years ago

I'm currently thinking about wether we can double some of the I2S data pins to use as shift register input pins and only have a dedicated STROBE pin, so it only changes state when we want it to. That would save two additional pins. Do you know I the display could take damage if a voltage is applied to the data lines with no supply voltage present? Usually these should just be FET gates, but I'm not sure if it is guaranteed to be safe...

mcer12 commented 3 years ago

The display does suck power from other pins (not sure if this includes the data pins) when 3.3V is cut. Didn't damage mine but it's certainly nothing healthy for the display... Since the shift register inputs are well... inputs :) There should be no leakage but that would require some testing. Any tiny leakage will bump the deep sleep current significantly.

vroland commented 3 years ago

Since the data and clock inputs of the shift register are not inverted, tying them down to 0V in idle should prevent the display from drawing current though?

mcer12 commented 3 years ago

Yes unless the leakage comes from them. But that would be easily measurable when esp gpios are pulled low so it should be ok.

so 12. 12. 2020 v 13:15 odesílatel Valentin Roland notifications@github.com napsal:

Since the data and clock inputs of the shift register are not inverted, tying them down to 0V in idle should prevent the display from drawing current though?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vroland/epdiy/issues/46#issuecomment-743747291, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAMMAL4AJD3R3GVWWQXK7LSUNNGDANCNFSM4UNZVQNA .

vroland commented 3 years ago

Using your approach (SMPS_CTRL + single P-channel mosfet) draws additional ~30uA, so the shift registers HIGH state is little leaky. To archieve 28uA deep sleep current, additional n-channel fet (or npn transistor) needs to be added to flip the logic back to active HIGH

Just using N-Channel mosfets for switcher and display power would do the job as well, right?

mcer12 commented 3 years ago

You need high side switch so you need p channel. For logic inverting n channel or npn transistor ;)

vroland commented 3 years ago

But the inverting can simply be done in software, to make it high-active ;) At least with the Mosfet I used previously, I noticed that when powering with 5V it cannot properly close the channel, since even 3.3V-5V = -1.7V where enough to keep the channel open. With an n-channel mosfet, switching booster power would work independent of the booster input voltage.

mcer12 commented 3 years ago

Yes, you can just invert the logic in the code but as I mentioned, it draws more power when the logic is active low (as it is now). At least in my case. Thats the only reason for the logic inverting. I don't understand the last part, can you clarify?

vroland commented 3 years ago

Sorry, I was briefly confused about how N-channel mosfets work in that last part :D The problem I wanted to describe is that if I'm powering the board from 5V, the p-channel mosfet keeps a low resistance, regardless of the SMPS_CTRL signal, because 3.3V was low enough to open the gate. With a Lipo battery, that problem went away, because the logic-high of 3.3V was high enough. So that's one more reason for an inverting transistor.

vroland commented 3 years ago

power @mcer12 Does that look right?

mcer12 commented 3 years ago

The r20 can be omitted, leave only the 3.3V pull-up it will pull up both of the fets. I would use n-channel mosfet instead of Mmbt3904. AO3400 is very cheap and you can use it in other projects since it is logic level and can switch significant current.

vroland commented 3 years ago

Ok, I just realized with the above setup I'd have a constant current flow from 5V to 3.3V. So I need to separate those: power

Regarding using an n-channel FET: I'm using the mmbt3904 for an auto-reset circuit anyway, so using the AO3400 would be one more part on the BOM...

mcer12 commented 3 years ago

There’s no reason to separate them it will work just fine as I said before ;)

ne 27. 12. 2020 v 15:04 odesílatel Valentin Roland notifications@github.com napsal:

Ok, I just realized with the above setup I'd have a constant current flow from 5V to 3.3V. So I need to separate those: [image: power] https://user-images.githubusercontent.com/5757380/103172510-5bd3ec00-4854-11eb-8463-13f7db7ee8e9.png

Regarding using an n-channel FET: I'm using the mmbt3904 for an auto-reset circuit anyway, so using the AO3400 would be one more part on the BOM...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vroland/epdiy/issues/46#issuecomment-751471591, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAMMAMGSEFFW7SXEDFFA23SW45HJANCNFSM4UNZVQNA .

vroland commented 3 years ago

Yes, but wouldn't I have a constant current flow of (5V-3.3V)/10k from the 5V rail to the 3.3V rail through the pullup resistor?

vroland commented 3 years ago

And unrelated: Do think it would be useful to be able to switch the BORDER voltage to turn it white or black? If we would add that, I'd probably need an N-Channel mosfet anyway.

mcer12 commented 3 years ago

That’s why you should omit the 5V pull-up ;) the p channel mosfets will be pulled to 3.3V, no way for 5V to get there

ne 27. 12. 2020 v 15:21 odesílatel Valentin Roland notifications@github.com napsal:

Yes, but wouldn't I have a constant current flow of (5V-3.3V)/10k from the 5V rail to the 3.3V rail through the pullup resistor?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vroland/epdiy/issues/46#issuecomment-751473335, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIAMMAL2SLYN6RSYIVQCBOTSW47IDANCNFSM4UNZVQNA .

vroland commented 3 years ago

Ah, sorry, I misread omitting the resistor as connecting it directly to 5V ;) That makes more sense, but only pulling it up to 5V may still turn Q2, as its gate-source voltage would be -1.7V. But leaving out the 3.3V pull-up and only leaving the 5V pull up should work, right?

mcer12 commented 3 years ago

You're correct, I totally missed that :( Using previous schematic and leaving only the 5V pullup should work, Vgs max is +-12V so it should be just fine. Sorry for the misunderstanding...

mcer12 commented 3 years ago

Regarding the border, how would you use it? I can not imagine any use case other than having it white. The actuall border of the display is white anyway so it would only be distracting imo :)

vroland commented 3 years ago

No worries :) Regarding the border: I will probably leave it tied to ground, since the voltage ranges seem to differ for some displays (this might be a mistake in the data sheet, but better be safe).

vroland commented 3 years ago

I also noticed I have some left over board space, so I might be able to add lipo charging after all...

markbirss commented 3 years ago

I am waiting for my finished V4 board to see if it works with a 9.7 inch display, will report back once tested

Bottom

TOP

markbirss commented 3 years ago

My V4 PCB arrived today and is working ! (ED097TC2)

Flashed the demo with your instructions provided 20210115_145943

20210115_145315

I adjusted the VCOM to -1.78 for my display Screenshot_20210115-131550_Gallery

vroland commented 3 years ago

good to hear :)

markbirss commented 3 years ago

@vroland

thank you for your and others contributions, looking forward to V5

vroland commented 3 years ago

further discussion has moved to matrix / slack, so this issue is obsolete.