lcd_ILI9486 读id的问题

      ILI9486读取ID比一般的LCD稍微繁琐,需要额外几个步骤,先记录如下:

1):使用的是SPI_RGB接口。

2):读ILI9486 datasheet,查看各个寄存器的作用,可以看到两个寄存器与此相关,第一个是regB0H,这个寄存器中的D7位即SDA_EN位控制着3/4wire serial interface selection,

     SDA_EN置0 :DIN/DOUT pin 打开,可以用作3/4线的连续接口;

    SDA_EN置1:DIN/SDA pin用作3/4线的连续接口,DOUTpin 不再使用;

第二个寄存器是regFBH;这个寄存器中包含了两个关键的地方,一个是SPI_READ_EN位即D4位,该为表示了SPI read enable。置1时表示可以进行spi read。另一个就是D2-D0位即SPI_CNT[3:0]位。这三位表示了将要对某一位寄存器读取时读这个寄存器的某一位;

3):这里需要非常注意的是:在每次进行spi read时都要重新设置RFBH寄存器一次。

4):ILI9486的寄存器读取reg是D3H,在读该寄存器之前需要设置上面的两个寄存器B0H、FBH,然后设置D3H,从里面读取ILI9486的ID,注意读取D3H的ID时是一位一位读的,比如你需要读取D3H的第2位,那么在设置FBH时,你就需要将FBH的寄存器的值置为0X0012H,此时读出的是94,下一次读取D3H的第3位时,必须要将FBH在从新设置一次,置为0X0013H,再一次读取D3H后,将会读到86,至此ILI9486的ID就被读了出来。

      该ID值的读取比较坑跌,在查看了datasheet,询问了厂商三次之后,才得到确认需要设置别的reg才能读取到正确的ID,可见很大部分的有用信息其实都在datasheet上,但是由于本人英文水平有限,对查看datasheet比较抗拒,这次是读了一个星期实在读不出来,只好仔细查看datasheet,最后解决了该问题。突然想到一句话,人都是逼出来。。。哎!


你可能感兴趣的:(lcd_ILI9486 读id的问题)