NHD-C160100DiZ and Raspberry Pi

Comments

11 comments

  • SpiralP

    I've done alot of I2C stuff with other microprocessors and i have an idea for you to try.

    The slave address they provide within the datasheet is 0x3F, which i see you define in your code.

    The way I2C works is the Address is 7 bits. However it is left shifted by 1 bit.
    So the total address is an 8 bit value.
    The 7 most significant bits are the address of the device and the Least significant bit (0) is the Read / Write bit which tells the slave device if you're going to be sending it data or trying to retrieve data from it.

    You might want to try left shifting the address by 1 bit and setting that in your code as the slave address.
    Hence 0x3F will be 0x7E

    0
  • tinkerer1359

    Thanks for the reply. I had already thought of that, and have checked and verified the I2C address using the detect command on the RPi. Also, the I2C commands throw an error if the address is invalid, so I'm fairly confident that I have communication.

    0
  • Paul_B

    Hello,

    Sounds like your I2C connection is correct, this tells me there must be an issue in your initialization.  Can you please share your initialization code?

    Thanks!

    0
  • tinkerer1359

    Hi-

    The entire code is included above.

    I may have found the issue: the RPi uses a 1.8k pull-up on its lines, which may be too severe. I am experimenting with removing the 1.8k and using 10k. I'll post the results when I determine them.

    0
  • Paul_B

    Hello,

    Thanks for the update, I went ahead and looked over your initialization sequence and everything seems to be in order. It is possible that the RPi's 1.8k pull -up resistors could be causing a weak pull-up.

    Looking forward to the results of your test  :)

    0
  • tinkerer1359

    I just got a chance to play with the pull-ups. I have a RPi - B, and I'm using the I2C pins on the GPIO header, so removed R1 and R2, and terminated the I2C lines with 10k. The display finally responds!

    Thanks to all who helped!

    -Randy

    0
  • Paul_B

    Hello Randy,

    Glad to hear you got it working, enjoy your display!

    0
  • joel dey

    hello guys,
    i need to know whether
    1)Can lcd  be implemented with 100 kHtz?
    2)Do supply current (Idd) need between 500 microA to 750microA to drive the lcd? since my supply voltage is 3.3 v but the current is less than 500microA?
    3) As per the instructions i have connected the lcd and run the code, but i am not getting any display in lcd?in the setup i have used pull-up resistor as 10kohms and the capacitor is 1uF.
    4) if there any other suggestions,please provide for NHD-C160100Diz.

    0
  • Saurabh_B

    Hello Joel,

    1. Yes the display will work at 100khz
    2. The supply current is dependent on what the display is showing and how far you are using the voltage booster, it can use up to 1 mA of current when fully powered.
    3. This display does require 2 capacitors. can you tell me if you have both connected the way they are shown on page 4 of the datasheet?
    4. You can find example code for this display here: NHD-C160100DiZ

    0
  • joel dey

    hai  Saurabh_B,
    thanks for the reply. i will give my point of observation, please help.
    1) as per the data sheet in NHD-C160100 Diz-FSW-FBW, i have connected  two 10k pullup at (SCL, SDA both) and  five 1uF at Vout,V4,V3,V2,V1. I have made CSB low and RST high. the supply voltage is 3.3 V and measured  supply current is 200uA . so, my question is the supply current is enough to drive the lcd?
    2) after running the code based on the previous post(https://newhavendisplay.com/content/app_notes/NHD-C160100DiZ.txt) given by you, i am getting the ACK from lcd after sending each byte,but it is not displaying any data to lcd. (i have checked all the bytes in logic analyser).

    3) the NHD-C160100Diz-FSW-FBW used ST7528 controller , if you look at the page no 26 of the ST7528 datasheet(https://newhavendisplay.com/content/app_notes/ST7528.pdf). it mentioned on the NOTE that :"ST7528 IIC interface can not use with other slaver IIC device". The quotes i understand from it is that other slave device cant be used when using lcd display at I2C interface. Please give clarity on the statements or quotes ? and Can i use other slave devices at the same I2C interface when lcd is attached to it?

    0
  • Saurabh_B

    Joel,

    The 200µA does seem low. Would it be possible to tell me what the voltage measures at the VOUT pin?
    The capacitors are part of a voltage boosting circuit which will generate the voltage required to drive the LCD, the current draw should increase after having sent the initialization sequence.

    Can you tell me if you are sending any pixel data to the display after the initialization to see points on the graph?

    Finally some slave devices do tend to clash with the lcd when use don the same I2C bus, I would recommend having the display working by itself first then adding more devices to the bus for final testing. If there is another device that uses the same slave address, the display will not work as intended.

    0

Please sign in to leave a comment.