Newhaven Products > Character LCDs

NHD-0420D3Z-NSW-BBW-V3 not responding to I2C



I'm using the LCD listed in the title.  I have installed a 0R jumper for R1 and can't seem to get this LCD to acknowledge (I"m getting a NACK) when I send 0x50 over the I2C port.  The LCD is powered with 5.0V and the I2C signals (SCL/SDA) are 3.3V.  I wouldn't think this would require a 5V I2C signal.  I've gone through data sheet multiple times and checked all of my connections.  If I attach an MSP430 microcontroller on the same bus as a slave with a different address it responds no problem.  I then change  the addres to 0x50 and nothing.  I've even let it run for a while and implemented large delays.  I haven't gotten to any commands yet I'm just stuck on getting the LCD to acknowledge it's address byte.  I'm not sure where to go here.  I've also tried shifting the address to the left one in case the data sheet meant the "address" as in the top 7 bits are supposed to be 0x50 and the R/W bit is 0 yielding 0xA0 being the first byte you sent for both address and R/W.  Nothing from that either.

On the scope I'm seeing this:

Start Condition | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | NACK

This part is brand new from digikey and I haven't issued any commands to it so far.  It does look like it powers up correctly.  Screen looks good and bright.  Nice blue background etc...


I'm assuming you are running your I2C clock at 100kHz?  Can you please try slowing it to around 50kHz and try again?

I'm actually unable to do that.  It is a custom built IP core hard coded to 100k and would be too much to modify and re-integrate into the embedded processor system in our FPGA.  The data sheet for this device says it supports 100k data rates.  I'm going to be force to go to serial.  This will require me to add a transceiver to support the 5V TTL signal, but will be better than the IP Core/HDL/C changes required to support a change in our data rate.

Hopefully the serial side works.  Is there a problem with running this device at full I2C speeds? 

Yes, unfortunately there is an issue with the I2C bus running at the max 100kHz speed.  It works up to ~60kHz currently; we are working on a firmware update to resolve this.  However, all other modes do work correctly, so you should be able to use the serial interface without issue.

Ok well thats fine.  I'll switch over to that.  I'm surprised that 100k gives you problems since I figured you'd just be using the pic's I2C controller which would be set to 100k.  I guess it's on the other side of the pic that interfaces with the LCD's processor.  Oh well, thanks for the help!  I appreciate the response!


[0] Message Index

Go to full version