I noticed, quite by accident, that I could tie together the write and reset lines for a device. The reset requires a minimum 1us pulse whereas the write pulse is 250ns. A write pulse during a reset is not an issue.
So it works to combine them. But is this a bad idea?
In my heart I think I know the answer.
Unless you are planning to write to the device. Then you would want them separated.
It's an ST7565 LCD controller, so yes, I'm writing to it.
It works like this. But the idea of pulling reset low every time I write to it, even if the pulse is too short for the controller to latch it as a reset, seems like maybe not the best design decision. But it does work.
Yeah, I'm going with "bad idea". I assume you want the ability to write without getting a reset. And, if there is a reset circuit and another circuit generating the write pulse, these could be in conflict and "fighting" each other.
The reset requires a minimum 1us pulse whereas the write pulse is 250ns. A write pulse during a reset is not an issue.
You need to understand what that means... That 1uS minimum reset pulse is means you need to provide a 1uS pulse or longer to guarantee a reset. It doesn't mean you'll never get a reset with a shorter pulse. There's almost always some tolerance and I'm pretty sure you'd get a reset with 0.9uS.
With some devices you might get a partial reset and scramble your data or crash the program, etc.
That 1uS minimum reset pulse is means you need to provide a 1uS pulse or longer to guarantee a reset. It doesn't mean you'll never get a reset with a shorter pulse. There's almost always some tolerance and I'm pretty sure you'd get a reset with 0.9uS.
Good point. But how likely is it that a 250ns pulse will reset it?
It just occurred to me that there is a small possibility of a button interrupt in between the two port operations that create the write pulse. That would cause a reset for sure. I could disable interrupts... but I think I'll look for a better solution.
Can you cut a trace somewhere to isolate the reset signal? Then jumper it to the correct pin?
I can do whatever I want. It’s breadboarded.
I think the problem is that he needs to be able to drive both the reset and write lines, and he's one pin short? So he's trying to scare up one more pin.
Then for Reset use a cap to Gnd with a pullup resistor to the device's Vcc pin so it resets on power up.
That's what I started with.
With the resistor capacitor circuit there were glitches on the screen during power down that weren't there when I controlled reset with a digital I/O pin.
So then I tried adding a diode. It didn't help. Then I tried a circuit that employed a FET. Still no good. Then I tried something sneaky: I ORed together the LCD write line and a chip select to a different device (with a diode-resistor OR) in order to produce the reset. This worked.
But then I found that the resistor (100K) wasn't large enough to prevent pulling down the chip select of the other device during ICSP programming. Also, 100K at 3.3V (minus the diode drop) resulted in about 30uA of extra current, which is too much for this project. So I tried a 10M resistor and that fixed everything... except that the LCD screen glitches came back.
Combining the write and reset lines, which I did accidentally, is the only thing that seems to solve all of the requirements except for the obvious one, which I think we all agree is important.
But there is another solution: ignore the glitches.