Firefly开源社区
标题:
[rv1126求助]关于驱动SPI ST7789显示屏的问题
[打印本页]
作者:
ciximg
时间:
2021-8-30 15:10
标题:
[rv1126求助]关于驱动SPI ST7789显示屏的问题
您好,自己设计的底板上有两个st7789的1.3寸屏 分别连接到spi0m1和spi1m2上,dts配置如下
&spi0 {
status = "okay";
pinctrl-0 = <&spi0m1_clk &spi0m1_cs0n &spi0m1_cs1n &spi0m1_miso &spi0m1_mosi>;
pinctrl-1 = <>;
//pinctrl-1 = <&spi0m1_clk_hs &spi0m1_cs0n &spi0m1_cs1n &spi0m1_miso_hs &spi0m1_mosi_hs>;
/*spidevtest0: spidev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <48000000>;
status = "okay";
};*/
st7789v@0{
compatible = "sitronix,st7789v";
reg = <0>;
status = "okay";
spi-max-frequency = <48000000>;
buswidth = <8>;
rotate = <0>;
fps = <30>;
rgb;
dc-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
//led-gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>
debug = <0x00>;
};
};
&spi1 {
status = "okay";
pinctrl-0 = <&spi1m2_clk &spi1m2_cs0n &spi1m2_cs1n &spi1m2_miso &spi1m2_mosi>;
pinctrl-1 = <>;
/*spidevtest0: spidev@0 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <48000000>;
status = "okay";
};*/
st7789v@0{
compatible = "sitronix,st7789v";
reg = <0>;
status = "okay";
spi-max-frequency = <48000000>;
buswidth = <8>;
rotate = <0>;
fps = <30>;
rgb;
dc-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
//led-gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>
debug = <0x00>;
};
};
现在spi1下的显示屏能够正常使用,/dev下fb0和fb1均存在且可正常写入。逻辑分析仪看了spi和dc reset口的时序基本是正常的,但spi0下的显示屏未能正常初始化(初始化的时序也基本正常,但存在细微抖动),因此无法显示。dmesg如下。
fbtft_of_value: buswidth = 8
fbtft_of_value: debug = 0
fbtft_of_value: rotate = 0
fbtft_of_value: fps = 30
of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/spi@ff450000/st7789v@0[0]' - status (0)
of_get_named_gpiod_flags: parsed 'dc-gpios' property of node '/spi@ff450000/st7789v@0[0]' - status (0)
mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
mmc_host mmc1: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
mmc_host mmc1: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0)
Freeing initrd memory: 8948K
graphics fb0: fb_st7789v frame buffer, 135x240, 63 KiB video memory, 4 KiB buffer memory, fps=30, spi0.0 at 48 MHz
fbtft_of_value: buswidth = 8
fbtft_of_value: debug = 0
fbtft_of_value: rotate = 0
fbtft_of_value: fps = 30
of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/spi@ff5b0000/st7789v@0[0]' - status (0)
of_get_named_gpiod_flags: parsed 'dc-gpios' property of node '/spi@ff5b0000/st7789v@0[0]' - status (0)
graphics fb1: fb_st7789v frame buffer, 135x240, 63 KiB video memory, 4 KiB buffer memory, fps=30, spi1.0 at 48 MHz
请问spi0以及GPIO2-C1/C2在rv1126中是有什么特殊的需要注意的吗 还是说其他的原因类似dmesg中mmc_host那一段引发了异常呢,谢谢。
作者:
板蓝根
时间:
2021-8-31 09:22
“GPIO2-C1/C2在rv1126中是有什么特殊的需要注意的吗” 使用的时候需要注意引脚复用问题,但是你都说了逻辑分析检查时序没有问题,那应该没有问题。检查信号线读写是否正常咯。
作者:
ciximg
时间:
2021-8-31 11:56
板蓝根 发表于 2021-8-31 09:22
“GPIO2-C1/C2在rv1126中是有什么特殊的需要注意的吗” 使用的时候需要注意引脚复用问题,但是你都说了逻辑 ...
现在一共mosi cs clk dc res五根线 逻辑分析仪看起来都没有问题 请问信号读写怎么检查呢
作者:
板蓝根
时间:
2021-8-31 14:23
本帖最后由 板蓝根 于 2021-8-31 14:25 编辑
没有调过 spi 的屏幕,但是 spi 设备应该会通过 spi 读写寄存器的吧,跟踪一下驱动读写寄存器看看正不正常。再就是不清楚你的屏幕又没有 color bur 彩条调试模式,一般的屏幕可以通过设置寄存器让屏幕自己输出彩条来调试。
作者:
TNT
时间:
2022-5-27 10:39
你好,博主,请问一下你的cs是如何进行控制的?可以分享一份你的驱动dome吗?
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1