prenticedavid/MCUFRIEND_kbv

Ili9341 240x320 display over SPI (serial) - vertical scroll does not work and reads ID = 0

stevstrong opened this issue · 0 comments

Hello,

I have a display which was sold as "Ili9341" and has an SPI interface (it also has a SD card reader slot on the back side and also a touch controller).
I am succesfully using a graphictest from Libmaple library (https://github.com/stevstrong/Arduino_STM32/blob/master/STM32F1/libraries/Adafruit_ILI9341_STM/examples/graphicstest/graphicstest.ino).
The display shows everything ok.

Now, I wanted to impelment the vertical scroll feature but somehow does not work.
I studied your repo (the function vertScroll()) and also the Ili9341 datasheet.
But did not manage to make it work.

Then I wanted to be sure that the chip and the display module is really an Ili9341 and tried the LCD_ID_readreg.ino sketch (of course adapted to serial interface).
Here I have very strange read out values:

reg(0x00) 00 00	ID: ILI9320, ILI9325, ILI9335, ...
reg(0x04) 00 00 00 00	Manufacturer ID
reg(0x09) 00 30 80 00 00	Status Register
reg(0x0A) 08 00	Get Power Mode
reg(0x0C) 06 00	Get Pixel Format
reg(0x61) 00 00	RDID1 HX8347-G
reg(0x62) 00 00	RDID2 HX8347-G
reg(0x63) 00 00	RDID3 HX8347-G
reg(0x64) 00 00	RDID1 HX8347-A
reg(0x65) 00 00	RDID2 HX8347-A
reg(0x66) 00 00	RDID3 HX8347-A
reg(0x67) 00 00	RDID Himax HX8347-A
reg(0x70) 00 00	Panel Himax HX8347-A
reg(0xA1) 00 00 00 00 00	RD_DDB SSD1963
reg(0xB0) 00 00	RGB Interface Signal Control
reg(0xB4) 00 00	Inversion Control
reg(0xB6) 00 00 00 00 00	Display Control
reg(0xB7) 00 00	Entry Mode Set
reg(0xBF) 00 00 00 00 00 00	ILI9481, HX8357-B
reg(0xC0) 00 00 00 00 00 00 00 00 00	Panel Control
reg(0xC8) 00 00 00 00 00 00 00 00 00 00 00 00 00	GAMMA
reg(0xCC) 00 00	Panel Control
reg(0xD0) 00 00 00	Power Control
reg(0xD2) 00 00 00 00 00	NVM Read
reg(0xD3) 00 00 00 00	ILI9341, ILI9488
reg(0xD4) 00 00 00 00	Novatek ID
reg(0xDA) 00 00	RDID1
reg(0xDB) 00 00	RDID2
reg(0xDC) 00 00	RDID3
reg(0xE0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00	GAMMA-P
reg(0xE1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00	GAMMA-N
reg(0xEF) 00 00 00 00 00 00	ILI9327
reg(0xF2) 00 00 00 00 00 00 00 00 00 00 00 00	Adjust Control 2
reg(0xF6) 00 00 00 00	Interface Control

So I thought I maybe do something wrong with my library and tried your graphictest_kbv.ino.
Here, I get ID (address 0) = 0 as well and no display at all (blanc).

So my questions is:

Is ID reading over serial interface possible at all?
If yes, what I may doing wrong?

Again, the graphical test sketch from my lib works fine, just the reading of these special registers is somehow strange.
Also, the display memory can be written and red out using Ili9341 datasheet registers without problems.

I am very helpful for any hint.
Thanks in advance.