SED1335 Graphic LCD driver problem

Hi Gents;

I have been trying to make my new shining Winstar WG320240C LCD (

formatting link
) with S1D13305F formerly known as SED1335 controller by using an ATMEL ATMEGA162 uc. I have written the below code but when I power up my circuit, LCD starts flickering continuesly. I cannot initialize the screen and make it running to display some words :(

Could you please check my code and circuit below if you see something wrong and drop me a line or two ;) If there is also anyone who worked this LCD out, please send me any reference, cuz I am getting crazy soon..

For connections I set up like:

------------------------------------------------

----- |-- PIN1 Ground |-- PIN2 +5V |-- PIN3 ~apprx. -16V |-- PIN4 RD/E connected to PA6 |-- PIN5 WR/RW connected to PA5 |-- PIN6 Ao connected to PA7 |-- PIN7 DB0 connected to PC0 |-- PIN8 DB1 connected to PC1 |-- PIN9 DB2 connected to PC2 LCD |-- PIN10 DB3 connected to PC3 |-- PIN11 DB4 connected to PC4 |-- PIN12 DB5 connected to PC5 |-- PIN13 DB6 connected to PC6 |-- PIN14 DB7 connected to PC7 |-- PIN15 CS connected to Gnd |-- PIN16 RES connected to PD7 |-- PIN17 Negative voltage output connected to PIN3 through a POT |-- PIN18 Frame Ground connected to Gnd |-- PIN19 NC |-- PIN20 NC

----

My code is:

----------------------------------------

.include "m162def.inc" .equ CTL_RW = 5 .equ CTL_E = 6 .equ CTL_A = 7 .equ CTLPORT = PORTA .equ DATPORT = PORTC .def rtemp1 = r16 .def rtemp2 = r17 .def data = r18 .macro cmdw ldi data, (@0) rcall lcd_cmdw .endmacro .macro datw ldi data, (@0) rcall lcd_datw .endmacro .org 0 rjmp start ;-- lcd_reset ;-- adjusts the port/pin directions ;-- and sends a reset pulse to the LCD lcd_reset: ldi rtemp1, $ff out DDRA, rtemp1 ldi rtemp1, $a0 out PORTA, rtemp1 ldi rtemp1, $ff out DDRC, rtemp1 ; PC0..PC7 -> all output sbi DDRD, 7 ; PD7 -> output sbi PORTD, 7 ; first set PD7 rcall delay1ms rcall delay1ms rcall delay1ms rcall delay1ms ldi rtemp1, $00 out PORTA, rtemp1 cbi PORTD, 7 ; clear PD7 (reset) rcall delay1ms ; wait 3ms. rcall delay1ms rcall delay1ms rcall delay1ms rcall delay1ms sbi PORTD, 7 ; set PD7 ldi rtemp1, $a0 out PORTA, rtemp1 ldi r18, 200 lcd_rs_lp: rcall delay1ms ; wait for stabilization. approx 100 ms. dec r18 brne lcd_rs_lp ret ;-- lcd_init ;-- initializes lcd lcd_init: ; System Set cmdw $40 datw $30 datw $87 datw $07 datw $27 ; dec 39 datw $42 ; dec 66 datw $ef ; dec 239 datw $28 ; dec 40 datw $00 ; Scroll cmdw $44 datw $00 datw $00 datw $f0 datw $80 datw $25 datw $f0 ; HDOT cmdw $5a datw $00 ; Overlay cmdw $5b datw $03 ; Display OFF cmdw $58 datw $16 rcall lcd_tclr ; Cursor format cmdw $5d datw $07 datw $87 ; Display ON cmdw $59 datw $16 ; Cursor direction cmdw $4c ; Cursor write cmdw $46 datw $00 datw $00 ret lcd_tclr: cmdw $46 datw $00 datw $00 ldi r28, $e8 ldi r29, $03 ; 1000 cmdw $42 lcd_tclrlp: datw $00 sbiw r28, 1 brne lcd_tclrlp ret ;-- lcd_cmdw ;-- writes a command to the lcd. lcd_cmdw: cbi CTLPORT, CTL_E sbi CTLPORT, CTL_A cbi CTLPORT, CTL_RW sbi CTLPORT, CTL_E out DATPORT, data cbi CTLPORT, CTL_E ret ;-- lcd_datw ;-- writes data to lcd lcd_datw: cbi CTLPORT, CTL_E cbi CTLPORT, CTL_A cbi CTLPORT, CTL_RW sbi CTLPORT, CTL_E out DATPORT, data cbi CTLPORT, CTL_E ret ;-- delay1ms ;-- delays 1000 CLK cycles delay1ms: nop nop nop ldi rtemp1, 10 delayo: ldi rtemp2, 32 delayi: dec rtemp2 brne delayi dec rtemp1 brne delayo ret start: ldi rtemp1, 0 out sreg, rtemp1 ldi rtemp1, low(RAMEND) out spl, rtemp1 ldi rtemp1, high(RAMEND) out sph, rtemp1 rcall lcd_reset rcall lcd_init datw $3 sbi DDRD, 6 sbi PORTD, 6 lp: rjmp lp

Thnx..

Aris

Reply to
Aris Konstantinos
Loading thread data ...

Hi there

I am working on exactly the same Winstar LCD using a AT89c52 to start with at this moment.

I had the same problem as you. I played with the initialization values and I got it right. At the moment I am at work and I don't have the C code with me but as soon as I get it I will sent it to you.

Try the fiddling with the pot controlling the negative voltage. That solved one of my early problems.

Check these values

It took me a while to calculate the right ones. I still quite don't understand it I didn't understand what they mean by the frame frequency (is it the power frequency 60Hz in the states while 50Hz in Australia)

I fluked it somehow but it works now. I am still going crazy over it.

Reply to
bobi

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.