Hello,
I am working on a project where I have to establish the LCD screen driven by a PIC32MK1024MCM064 via I2C communication. I ran into a strange problem of not being able to address the I2C screen.
The screen I am using: Display Development Tools Grove - 16 x 2 LCD (Black on Red). Manufacturer part number: 104020112.
I am just starting to develop and test the code, so there is high possibility of many things not being right at the moment, but I can see my typical I2C data packet structure on the logic analyzer, so I believe the I2C setup in the MCU code is right. But as you can see in the analyzer, the LCD screen is not sending an ACK bit. What is more, There is absolutely no information of I2C address of the LCD screen in the datasheet, so I contacted the manufacturer and they redirected me to Git repository where they posted an arduino adapted code. So the only information source I could take the I2C address of the LCD was this line in their header file.
#define LCD_ADDRESS (0x7c>>1)
I am addressing the screen with an address of 0b 00111110
I am aware of bit shift operations and the R/W bit meaning in the I2C code, but this is the first time I see such strange definition in the I2C domain. I am not sure what would this code be in pure binary or hex form, because I am taking it for granted that the R/W is always zero in this situation, as I am only writing to the screen. Have you got any observations or ideas that could help me address the LCD properly or get rid of that NACK bit and replace with an ACK bit?
P.S (I am not posting the full MCU code as it is irrelevant in this topic, I believe)
Want to thank you in advance.
Git repository: https://github.com/Seeed-Studio/Grove_LCD_RGB_Backlight
I am working on a project where I have to establish the LCD screen driven by a PIC32MK1024MCM064 via I2C communication. I ran into a strange problem of not being able to address the I2C screen.
The screen I am using: Display Development Tools Grove - 16 x 2 LCD (Black on Red). Manufacturer part number: 104020112.
I am just starting to develop and test the code, so there is high possibility of many things not being right at the moment, but I can see my typical I2C data packet structure on the logic analyzer, so I believe the I2C setup in the MCU code is right. But as you can see in the analyzer, the LCD screen is not sending an ACK bit. What is more, There is absolutely no information of I2C address of the LCD screen in the datasheet, so I contacted the manufacturer and they redirected me to Git repository where they posted an arduino adapted code. So the only information source I could take the I2C address of the LCD was this line in their header file.
#define LCD_ADDRESS (0x7c>>1)
I am addressing the screen with an address of 0b 00111110
I am aware of bit shift operations and the R/W bit meaning in the I2C code, but this is the first time I see such strange definition in the I2C domain. I am not sure what would this code be in pure binary or hex form, because I am taking it for granted that the R/W is always zero in this situation, as I am only writing to the screen. Have you got any observations or ideas that could help me address the LCD properly or get rid of that NACK bit and replace with an ACK bit?
P.S (I am not posting the full MCU code as it is irrelevant in this topic, I believe)
Want to thank you in advance.
Git repository: https://github.com/Seeed-Studio/Grove_LCD_RGB_Backlight