Mr RB
Well-Known Member
Thanks mneary that's an interesting suggestion and one I hadn't thought about.
There are a couple of issues, a diode with no resistor is probably exceeding the PIC pin current spec so it should probably have a low resistor in series with the diode. Although with a 2.2nF cap it may not damage the PIC just using the diode alone. These high current spikes may cause capacitance issues too if there is a long cable connecting the LCD to the shift1 display.
Another issue is that a 0 bit relies on the / clock occuring at the shift register while the cap voltage still remains low, because it takes time for the cap to charge back up. Using the diode means the voltage on the data pin will rise very quickly, there is a possibility that this may cause corruption of the 0 bits. This might be unlikely as the shift register clocks very fast, 10's of nS, but it's possible.
The recovery times I chose have big safety margins built in, as do the bit 0 and latch low pulse times. I tested it with much shorter times and it still operates the LCD reliably, but this was never meant to be a high speed single wire transfer system!
Even with the very safe long pulse times shown in my diagrams it still sends a char to LCD in 3 mS to 3.5 mS, and will write 300+ chars to the LCD per second.
The tradeoff that was chosen was to have very high data reliability, very simple parts, and kindof decent speed.
There are a couple of issues, a diode with no resistor is probably exceeding the PIC pin current spec so it should probably have a low resistor in series with the diode. Although with a 2.2nF cap it may not damage the PIC just using the diode alone. These high current spikes may cause capacitance issues too if there is a long cable connecting the LCD to the shift1 display.
Another issue is that a 0 bit relies on the / clock occuring at the shift register while the cap voltage still remains low, because it takes time for the cap to charge back up. Using the diode means the voltage on the data pin will rise very quickly, there is a possibility that this may cause corruption of the 0 bits. This might be unlikely as the shift register clocks very fast, 10's of nS, but it's possible.
The recovery times I chose have big safety margins built in, as do the bit 0 and latch low pulse times. I tested it with much shorter times and it still operates the LCD reliably, but this was never meant to be a high speed single wire transfer system!
Even with the very safe long pulse times shown in my diagrams it still sends a char to LCD in 3 mS to 3.5 mS, and will write 300+ chars to the LCD per second.
The tradeoff that was chosen was to have very high data reliability, very simple parts, and kindof decent speed.