Hey,
I am trying to drive a calculator glass LCD directly using an AVR. I'm not trying to be cheap, just need to mod a calculator. I've done my reading extensively and want advice on 2 points.
The LCD is 10-digit multiplexed with 3 common lines. Each digit has 9 segments: 7 for displaying number, 1 decimal point and 1 comma(on top) for separating numbers into hundreds, thousands, etc. So for each 9 segment digit, there are 3 segment lines. 30 segment lines total for 10 digits. There is one other segment line for extras(M, -, E signs). So a total of 30 + 1 + 3 = 34 pins for the LCD. It uses 3V, 1.5V and 0V levels.
-
Comparing the common pins signaling method, I saw 2 variations in the doc provided by atmel(http://www.atmel.com/images/doc8103.pdf) and microchip(http://ww1.microchip.com/downloads/en/AppNotes/00563c.pdf). Atmel says for COM1, give a positive voltage followed by reverse voltage for the same duration. Then do the same for COM2, followed by COM3. Microchip prefers to give positive voltage to COM1, then positive to COM2 and then COM3. Then provide reverse voltage to COM1, then COM2 and then COM3. Both methods keep the total voltage applied to 0, but Microchip keeps the bias for a longer period. Will this cause degradation of LCD over time or provide better contrast? The Casio calculator I'm hacking uses the Microchip method and I've seen it being used by other companies as well. Which method should I use(keeping our preference for Atmel aside :D)?
-
Can I use a shift register(74HC595?) to signal the 31 segment lines? If my AVR is running at 3.3V 8MHz, then to run LCD at 50Hz, I have 20ms for a single frame. In a single frame, I'll have to change the 31 segment lines twice(once forward and once reverse). If I use 4 shift registers chained, then I'll have 322 us(=10ms/31) for each shift operation. If I use 2 pairs of chained shift registers, I get 645 us(=20ms/31) for each shift. Since most time values in datasheet for the 74HC595 seems in the nanosecond range, it seems possible. Can someone with better knowledge of shift registers help me out here? If this can work, I can reduces I/O pin count from 34 to 7/8 and can be saved from using a complex TQFN ATMega2560 to a simple ATMega328P on my custom hand-made PCB.
