我的意思是SPI三线还是四线其实没啥区别,都只能写写寄存器。
我也再明确下我的意思:为啥三线和四线SPI对ILI9488来说没啥差别。
原因就是SPI速度对于320x480分辨率来说速度跟不上,即使硬件SPI+DMA,最高30M,帧率也不会超过10。
而写寄存器,不写显示数据,因为数据量很小,无论IO模拟还是硬件SPI+DMA,都没多大差别,GPIO模拟三线9位SPI就足够了,硬件少拉一根线。
我现在用ILI9488是三线SPI+RGB接口。
相信你肯定对这些很了解的。
借楼再给其他朋友点信息。
三线和四线还是有很大差异的,三线的话,数据是9位,四线数据是8位,对于SPI不支持9位数据位的MCU等,就只能用GPIO模拟。
一般9488如果不是RGB接口,那么硬件SPI直接读写和用GPIO直接读写差异还是很大的。使用并行16位接口,效果也不如RGB效果好。
RGB驱动的话,画面切换没有撕裂,然后不管是用16位MCU总线驱动还是“SPI+DMA”,都能感受到画面的切换过程(我自己项目中是这样)。
对于使用RGB接口,这个“SPI”接口只用来初始化,用GPIO模拟和硬件SPI读写,差不了太多。有的RGB屏可以通过引脚或者寄存器切换比如320*480或者480*320,但是9488不行,只能RGB 320*480,通过寄存器设置成480*320的话,会不能显示完全,有1/3黑屏(如果有哪位知道设置,欢迎告知下)。echo 说:你的意思我理解呀。RGB屏幕就这样,320x480和480x320不一样。
我的意思是SPI三线还是四线其实没啥区别,都只能写写寄存器。
有条件还是用MCU接口,也不会浪费ILI9488内部的GRAM。regbbs 说:我的意思是“SPI”作为初始化,数据还是通过RBG接口,但是设置横屏模式,刷新不正常,不能全屏显示。要想当作480X320的分辨率用,只能软件实现。
你的意思我理解呀。RGB屏幕就这样,320x480和480x320不一样。
我的意思是SPI三线还是四线其实没啥区别,都只能写写寄存器。
有条件还是用MCU接口,也不会浪费ILI9488内部的GRAM。regbbs 说:我的意思是“SPI”作为初始化,数据还是通过RBG接口,但是设置横屏模式,刷新不正常,不能全屏显示。要想当作480X320的分辨率用,只能软件实现。
echo 说:分辨率320x480,这个分辨率用SPI刷数据搞不定,即使30帧16位色,320*480*16*30/1e6=73.7M,实际ILI9488的SCL最高频率到不了这个频率的一半。
所以3线9位,还是4线SPI其实都没啥差别,都是写寄存器用的,对速度没要求,用软件模拟就行了。
我的意思是“SPI”作为初始化,数据还是通过RBG接口,但是设置横屏模式,刷新不正常,不能全屏显示。要想当作480X320的分辨率用,只能软件实现。
echo 说:分辨率320x480,这个分辨率用SPI刷数据搞不定,即使30帧16位色,320*480*16*30/1e6=73.7M,实际ILI9488的SCL最高频率到不了这个频率的一半。
所以3线9位,还是4线SPI其实都没啥差别,都是写寄存器用的,对速度没要求,用软件模拟就行了。regbbs 说:产品用这个屏,确实很坑。
RGB模式下没法硬件上横屏,只能软件转换XY坐标。一般都会引出所谓的“SPI”接口,其实是伪SPI,如果是三线模式就比较坑,很可能得用MCU的GPIO模拟,四线模式的话,就可以用硬件SPI接口连接了。
即使用RGB模式,也要用“SPI”接口初始化很多寄存器才可以正常用。初始化代码可以找厂家提供,主要是看需要初始化的寄存器值,然后转换成自己的读写函数。
分辨率320x480,这个分辨率用SPI刷数据搞不定,即使30帧16位色,320*480*16*30/1e6=73.7M,实际ILI9488的SCL最高频率到不了这个频率的一半。
所以3线9位,还是4线SPI其实都没啥差别,都是写寄存器用的,对速度没要求,用软件模拟就行了。regbbs 说:产品用这个屏,确实很坑。
RGB模式下没法硬件上横屏,只能软件转换XY坐标。一般都会引出所谓的“SPI”接口,其实是伪SPI,如果是三线模式就比较坑,很可能得用MCU的GPIO模拟,四线模式的话,就可以用硬件SPI接口连接了。
即使用RGB模式,也要用“SPI”接口初始化很多寄存器才可以正常用。初始化代码可以找厂家提供,主要是看需要初始化的寄存器值,然后转换成自己的读写函数。
产品用这个屏,确实很坑。
RGB模式下没法硬件上横屏,只能软件转换XY坐标。一般都会引出所谓的“SPI”接口,其实是伪SPI,如果是三线模式就比较坑,很可能得用MCU的GPIO模拟,四线模式的话,就可以用硬件SPI接口连接了。
即使用RGB模式,也要用“SPI”接口初始化很多寄存器才可以正常用。初始化代码可以找厂家提供,主要是看需要初始化的寄存器值,然后转换成自己的读写函数。
一般都会引出所谓的“SPI”接口,其实是伪SPI,如果是三线模式就比较坑,很可能得用MCU的GPIO模拟,四线模式的话,就可以用硬件SPI接口连接了。
即使用RGB模式,也要用“SPI”接口初始化很多寄存器才可以正常用。初始化代码可以找厂家提供,主要是看需要初始化的寄存器值,然后转换成自己的读写函数。
/* Memory Data Access Control */
LCD_SPI_WriteByte(0x36,LCD_CMD);
LCD_SPI_WriteByte(0x08,LCD_DATA); //反人类的ST7789……RGB总线居然默认是BGR格式
ILI9488和ST7789一样反人类,默认是BGR格式。
感谢。
https://whycan.com/t_5652.html
我之前搞过个类似的屏,我的spi直接强行复用了rgb的数据引脚。你可以设置成rgb666然后只接rgb565,把多余的几个引脚接地就行了,或者刚好复用成软件spi。
https://whycan.com/t_5652.html
我之前搞过个类似的屏,我的spi直接强行复用了rgb的数据引脚。你可以设置成rgb666然后只接rgb565,把多余的几个引脚接地就行了,或者刚好复用成软件spi。
https://whycan.com/t_5652.html
我之前搞过个类似的屏,我的spi直接强行复用了rgb的数据引脚。你可以设置成rgb666然后只接rgb565,把多余的几个引脚接地就行了,或者刚好复用成软件spi。
咦,好聪明,我怎么没想到呢,浪费了三条腿,捂眼。。。
]]>嗯,现在的LCD驱动芯片基本都是这种模式 。 用三线SPI初始化一下才能用RGB