I did this thread in order to know if someone could help me.
I'm using a 4 digit passive LCD display connected with a ICM7211 , and this last is driven by a PIC. The problem is that the display doesn't err.. display properly.
I'm using this circuit
**broken link removed**
and the timing for the ICM7211 is this: **broken link removed**
The part of the code for the pic16f628a @ 4Mhz I'm using is this:
Code:
Display:
movf Dig1,W ; for the first digit
movwf PORTB
bsf DS1
bsf DS2
Call Pulse_CS
movf Dig2,W ; for the second digit
movwf PORTB
bcf DS1
bsf DS2
Call Pulse_CS
movf Dig3,W ; for the third digit
movwf PORTB
bsf DS1
bcf DS2
Call Pulse_CS
movf Dig4,W ; for the fourth digit
movwf PORTB
bcf DS1
bcf DS2
Call Pulse_CS
return
Pulse_CS ;used for data latching
bcf CS1
nop
bsf CS1
nop
bcf CS1
nop
return
Obviously I'm using CS1 for the control (CS2 to GND)
I would like to hear your opinions about what could be wrong, an the possible solutions
It seems that the ICM samples data on the rising edge of CS2. I've not cheched the datasheet to verify internal diagrams so, as a first thing to do, I'd use CS2 instead of CS1 and leave CS1 connected always to GND to be perfectly similar to the timing you posted. Then I'll leave CS2 usually high and pulse it to low and then high again instead of your current sequence low-high-low.
It seems that the ICM samples data on the rising edge of CS2. I've not cheched the datasheet to verify internal diagrams so, as a first thing to do, I'd use CS2 instead of CS1 and leave CS1 connected always to GND to be perfectly similar to the timing you posted. Then I'll leave CS2 usually high and pulse it to low and then high again instead of your current sequence low-high-low.
Now that I have the datasheet, I see that the ICM7211 is an old, slow device. Some timings are in the order of 2µs and you are using a quite modern, fast PIC. A NOP instruction on your PIC takes only 250ns to execute so maybe you are sending data to the display driver too fast for it. Try longer delay routines between actions ... after all, ICM7211 used to talk just to older and slower 80C48! (as seen in the last page of the Harris datasheet )