ICM7211 & PIC problem

Status
Not open for further replies.

mabauti

Member
Hi everybody:

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

Thanks in advance
 
CS timing

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.
 
A PIC16F917 can drive that display directly and is very easy to use.
The problem is that I have already did the PCB =[ (even twice)


I thought the same, but the data sheet says this is ok

**broken link removed**
 
Timings

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 )
 
It is solved now

the problem were a few almost invisible shortcircuits on the PCB

Thank you anyway Arkham & blue
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…