Hi
Last week I decided to venture into the world of graphicdal LCD's for the first time and as yet, I still can't get the thing to work.
I am using a 128x64 LCD unit with built in UC1606 controller (BTHQ 128064AVC-SRE-06-COG is the display model number and the datasheet is here:
http://www.farnell.com/datasheets/47133.pdf.
I thought I would set up a demo to prove I could get the thing working before I delve any deeper into the project, so I set up the system (on breadboard / prototyping board) which would output a 4 pixels on 4 pixels off using the unit in parralell mode.
I have access to 22 pins, and have them connected as follows:
01: CS0 - PC0 on ATMEGA16
02: RST - VDD
03: CD - PC1 on ATMEGA16
04: WR - PC2 on ATMEGA16
05: RS - VSS
06-13: D0-D7 - PD0 - PD7 on ATMEGA16
14: VDD
15: VSS
16: VB1+ - Cap accross here and VB1-
17: PS0 - VDD
18: PS1 - VDD
19: VB1- - Cap accross here and VB1+
20: VB0+ - Cap accross here and VB0-
21: VB0- - Cap accross here and VB0+
22: VLCD
VDD is a 3V3 supply
VLCD is a 12V supply
VSS is ground
All connections to ATMEGA16 are direct connection ie no pull ups etc.
My program (written using WinAVR) does the following:
Code:
PD0-3 = High
PD4-7 = Low
PC0-2 = High
Begin Forever Loop
PC0 = Low
PC1 = Low
PC2 = Low
PC2 = High
PC1 = High
PC0 = High
End Loop
Now when it is all set up, I get nothing.
I tried to follow the datasheet with the timings / order of high/lows and used the UC1606 datasheet to calculate cap values to 1uF. The above program was designed to display 4 pixel wide lines of on/off down the screen. I have tried putting delays between taking the PC0-2 high/low but still get nothing.
I have verified that the ATMEGA16 is outputting the correct outputs. The ATMEGA16 is using it's internal clock source and so is running at 1MHz.
I hope I have covered everything, but if anyone needs more info please let me know. Can someone tell me what I have done/doing wrong??[/url]