二、SWM341系列驱动TTL RGB应用 可参阅 “SWM34SRET7应用笔记_20220225.pdf”
2.1、背光供电对图像的影响 --2023.4.14 现象:应用SWM34SRET6驱动480x272 tftlcd 出现图像闪烁。采用SWM34SVET6驱动没有问题,LCDC参数配置符合显示屏模组规格。 分析:背光的噪声大,在背光两极并电容,降低噪音,图像显示正常。 需注意电容的耐压值。 分析&解决:降低主频后,将168Mhz将至160Mhz,测试10多次为出现白点现象。 但是单独应用LVGL显示应用,主频在168Mhz条件下,不会有闪白点现象,或者单独应用JPG_AVI 的例程,也不会有白点现象。 暂评估为SDRAM 频率带宽的原因。
2.2、SWM341TEST板(MPW1)显示驱动板播放视频闪屏 --2021.07.20 现象:使用SWM341_JPEG_AVI在完成SD卡拷贝文件至Flash完成后立即播放AVI视频会出现花屏的现象,调试 中有发现JPEG_SR的DMA_RD/WR一直都是忙的现象。如果拷贝完成后,去除TF卡再上电播放AVI则又不会出现花屏现象,或者直接从TF卡进行播放也不会出现花屏现象。
分析&解决;1、option->C/C++(AC6)配置页下,“Language/Code Generation->Link-TimeOptimization”选项需要进行勾选,进行编译后,花屏现象消失。 另外,SWM341的C编译只能选择AC6。
关于“Link-Time Optimization”,如下介绍:
2.4、SWM341TEST板显示驱动板显示白屏、花屏现象 现象:调试过程出现显示白屏现象。 花屏现象,如下图。
分析&解决:显示白屏或图像不同步的情况,测量RGB、DCLK、HSYNC、VSYNC、DE,连接没有问题,也没有短 路。测量DCLK信号与正常的信号有差别,幅度相差较大。
正常DCLK信号 显示白屏的DCLK信号
检查原理图,是由于DCLK 信号对地多接了104电容导致。拆除104电容后,显示正常。 显示花屏的情况,测量RGB、DCLK、HSYNC、VSYNC、DE信号都正常。结合应用例程程序调试,发现程序在Spiflash初始化过程中检测,没有继续往下执行。检测Spiflash端口的连接,在MCU端的S0_CLK&S0_D2短路。排除短路后,显示还是花屏,继续跟踪调试,发现程序又停留在触摸通讯程序中,测量发现触摸通讯的IIC_SDA&IIC_SCL短路。排除短路后,显示正常。
2.5、驱动4.0寸480X480 灰色字体出现红色“鬼影”现象 --2021.09.22 现象:在驱动 TL040WVS03CT(480RGB) 和 TL021WVC02(480x480) TFTLCD过程中,出现灰色字体的边缘有红色鬼影的现象,如下图所示:
分析&解决:将 LCDC 驱动模块的取样边缘,有下降沿更改为上升沿,鬼影现象消失。即如下: LCD_initStruct.SampleEdge = LCD_SAMPLE_RISE;
2.6、高温状态和静态测试状态下花屏现象 现象:客户在高温老化过程中和在静电测试过程中,出现花屏现象 测试和解决:高温花屏和静电花屏是同一个现象,属于屏的初始化中,边沿采样方式 和MCU的LCDC中边沿采样方式不一致导致的,两边都设置成下降沿采样即可(之前实验过默认上升沿采样和MCU配置一致,屏显示会抖动)
2.7、显示PNG图片,采用LVGL转换工具,转换注意 现象:底色透明的png图片转换成.bin文件后,加载到屏幕上,但显示的底色变成了黑色, 分析:转换没带alpha通道 转换选项选择:CF_TRUE_COLOR_ALPHA
2.8、SWM34S上电概率性花屏 现 象: 客户使用SWM34S上电有几率花屏。 分析及解决:SWM34S IMG_Cache设置建议不使能,否则cache错误命中有可能会导致 底图指向被释放的指针,所以开机整屏切换出现花屏的现象。
2.9、LCDC模块传输完成标注位 现 象:客户反映SWM34SLCD模块关闭中断后无法读取传输完成的标志位。 分析及解决:SWM34S的LCD模块有硬件传输完成标志位,按理说就算关掉中断使用硬件的方式,传输完成也能正常获取标志位值,但现在关掉中断之后标志位就不能正常获取了。导致客户会有大部分时间都在等待传输完成上面,目前尚无很好的解决办法。
2.10、SWM34S系列屏驱上位机 现 象:客户升级HMIBuilder版本后,移植完成后可以正常播放开机视频,但播完后显示黑屏,蓝牙等其他外设功能均正常。 分析及解决:能够正常播放开机视频,但播放完成后显示黑屏,怀疑是更新时没有更新上位机生成的app.c以及各个界面的*.h文件,造成ID不匹配导致不正常显示,但客户经过调整后仍然显示黑屏。 [注] 虽然并非此原因造成黑屏不显示,但仍然将其收录,之后遇到类似问题时可以考虑排查是否由此原因造成的不显示。
2.11、LCDC 驱动引脚的应用配置 由于SWM34SRE和SWM34SVE的板子LCD_HS和LCD_DEN的脚位不一样,有些客户会误以为34SRE和34SVE的脚位一样,在给客户调屏的时候需注意一下。
2.12、显示抖动现象 现象:客户使用SWM34SVE过程中,COG是77903,屏幕出现上下抖动问题; 分析解决:把VBP和VFP的值设为最大,问题解决;
2.13、HBP与显示颜色的关系 现象:客户使用SWM34SRE过程中,反馈显示图片颜色不对,后续排查发现显示蓝色却变成黄色; 分析解决:把HBP的值20改为10后,问题解决;
2.14、数据拷贝应用中数据类型定义引起的显示闪烁 现象:客户使用自己的GUI做7寸1024*600 美容仪,遇到抖屏闪烁的问题。 分析与解决:在开启LCD中断的同时,没有对TIMER4进行中断优先级设置。导致TIMTR4中断和LCD中断进行抢占,而且客户的GUI必须改LCD中断,所以需要把TIMER4中断优先级设低。改中断优先级后闪屏现象好了很多,但是依旧会有轻微的抖动,因为客户的GUI做的两个缓存区切换,有一处需要做纯色背景色填充,抖动的是被填充的背景。客户原本是uint16_t的方式做for循环填充,后面改成memset或者memcpy都不会造成抖屏,一度怀疑是32bit传输对齐导致的,所以客户更换成uint32_t方式做for循环填充,这样子也不会造成抖屏,并且时间比原先快了一半。虽然不清楚具体什么原因但是 目前客户问题解决了,可以正常交样机。(技术支持过程中排查过屏参,SDRAM参数,皆无本质上的影响)
2.15、34S匹配需要初始化的rgb屏幕 现象:绿联客户,调试客户寄过来的屏幕,最终显示效果扫描原点偏移,如图: 问题与分析:屏幕规格书写的分辨率是360x640,但实际是480x640,两边用外框挡着了不用,导致初始化点亮的区域一直不对。
2.16、整理SWM34SVE的IO口分配,方便对客户的应用快速分配IO; [size=11.0000pt] | | | | | | | [size=11.0000pt]已分配优先显示屏驱动 | | | | [size=11.0000pt]C5/I2C1SCL/SPI1MISO/BT9O/LCD_R1/ADC0_CH1/OPAVN0 | | | | | [size=11.0000pt]C4/I2C1SDA/SPI1SSEL/B10O/T4I/T4O/LCD_R0/ADC0_CH2 | | | | [size=11.0000pt]C3/UART3TX/PWM3AN/B11O/T3I/T3O/LCD_G7/ADC0_CH3/OPAOUT2 | | | | | [size=11.0000pt]C2/I2C0SCL/UART3RX/PWM3A/T2I/T2O/LCD_G6/FILTER1/ADC0_CH4/OPAVP2 | | | | | [size=11.0000pt]C1/I2C0SDA/UART2RX/HALL5/T0I/T0O/LCD_G5/FILTER1/ADC0_CH5/OPAVN2 | | | | | [size=11.0000pt]C0/UART2TX/HALL4/T1I/T1O/LCD_G4/FILTER1/ADC0_CH6 | | | | | [size=11.0000pt]A15/HALL3/LCD_G3/FILTER1/ADC0_CH7/OPAOUT3 | | | | | [size=11.0000pt]A14/HALL5/LCD_G2/ADC0_CH8/OPAVP3 | | | | | [size=11.0000pt]A13/UART0TX/HALL4/BT0O/LCD_G1/ADC0_CH9/OPAVN3 | | | | | | | | | | | | | | | [size=11.0000pt]A12/UART0RX/HALL3/BT1O/LCD_G0/ADC0_TRIG1/ADC0_CH10 | | | | | [size=11.0000pt]A11/UART0RTS/PWM_CLK0/BT2O/LCD_B7/ADC1_TRIG1/OPAVP1 | | | | | [size=11.0000pt]A10/UART0CTS/PWM_CLK1/BT3O/CAN0TX/LCD_B6/ADC0_CH11/OPAOUT1 | | | | | [size=11.0000pt]A9/CAN0RX/LCD_B5/OPAVN1 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [size=9.0000pt]USB需要外部提供电压 输入1.2V | | | | | [size=9.0000pt]ISP正常接L,需要接H | | | | [size=11.0000pt]A7/I2C1SCL/T3I/T3O/XLI | | | | | [size=11.0000pt]A6/I2C1SDA/PWM_BRK0/PWM_CLK0/XLO | | | | | [size=11.0000pt]A5/PWM_BRK1/PWM_CLK1/LDQM | | | | | [size=11.0000pt]A3/I2C0SDA/LCD_B6/XI | | [size=8.0000pt]XI(4---30M) | | | [size=11.0000pt]A4/I2C0SCL/LCD_B5/XO | | [size=8.0000pt]XO(4---30M) | | | | | | | | | [size=11.0000pt]内部核电压 输出1.2V | | | | | | | | | | [size=11.0000pt]Reset_MCU | | | | [size=11.0000pt]A2/UART1RX/PWM_BRK0/HALL2/LCD_B4/ACMPVP0 | | | | | [size=11.0000pt]A1/I2C0SCL/UART2RTS/HALL1/LCD_B3/ACMPVP1 | | | | | [size=11.0000pt]A0/I2C0SDA/UART1TX/HALL0/LCD_B7/ACMPVP2 | | | | [size=11.0000pt]B15/JTAGTRSTN/I2C1SCL/UART2CTS/PWM4A/T0I/T0O/LCD_B3 | | | | | [size=11.0000pt]B14/JTAGTMSSWIO/SPI0SSEL/UART0TX/PWM4AN/T1I/T1O | [size=8.0000pt]SWDIO(调试口) | | | | [size=11.0000pt]B13/JTAGTDI/I2C1SDA/UART2RX/PWM4B/T2I/T2O/LCD_B2 | | | | | [size=11.0000pt]B12/JTAGSWCLK/UART0RX/PWM4BN/T3I/T3O/ACMPVN0 | [size=8.0000pt]SWCLK(调试口) | | | | [size=11.0000pt]B11/JTAGTDO/UART2TX/PWM_BRK2/T0I/T0O/LCD_B1 | | | | | [size=11.0000pt]B5/SPI1SSEL/UART3CTS/HALL2/BT0O/CAN0RX/LCDC_RD/FILTER0/ACMPVN1 | | | | | [size=11.0000pt]B4/SPI1MOSI/UART3RX/HALL1/BT1O/CAN0TX/LCDC_RS/FILTER0/ACMPVN2 | | | | | [size=11.0000pt]B3/SPI1MISO/UART3TX/PWM2A/HALL0/BT2O/CAN1RX/LCDC_WNR/FILTER0 | | | | | [size=11.0000pt]B2/SPI1SCLK/UART3RTS/PWM2B/BT3O/CAN1TX/LCDC_CSN/FILTER0 | | | | | [size=11.0000pt]B1/PWM3B/T0I/T0O/LCD_B0/SD_D7 | | | | | [size=11.0000pt]B0/UART1TX/PWM3BN/DMA_TRIG1/T1I/T1O/SD_D6 | | | | | N5/I2C0SCL/SPI1MOSI/UART1RX/PWM3A/DMA_TRIG0/BT4O/T2I/T2O/CAN0RX/LCD_R3/SD_D5/ADC0_TRIG0 | | | | | [size=8.0000pt]N4/I2C0SDA/SPI1MISO/UART1RTS/PWM2AN/BT5O/T3I/T3O/CAN0TX/SD_D4/ADC1_TRIG0 | | | | | | | | | | | | | | | [size=11.0000pt]N1/SPI1SSEL/PWM2BN/BT6O/T0I/T0O/SD_D3 | | | | | [size=11.0000pt]N0/SPI1SCLK/PWM3AN/BT7O/T1I/T1O/LCDC_RD/SD_D2 | | | | [size=11.0000pt]M6/I2C1SCL/UART2RX/PWM1AN/T0I/T0O/SD_D1 | | | | [size=11.0000pt]M5/I2C1SDA/SPI0MOSI/UART3RX/PWM0BN/BT0O/T1I/T1O/SD_D0 | | | | [size=11.0000pt]M11/PWM2B/LCDC_RS | | | | | [size=11.0000pt]M10/PWM3A | | | | | [size=11.0000pt]M9/PWM2AN/CAN0RX | | | | | [size=11.0000pt]M8/PWM2BN/CAN0TX/LCDC_WNR | | | | | | | | | | [size=11.0000pt]D15/WAKEUP1 | | | | | [size=11.0000pt]EFLASH_VSS | | | | | [size=11.0000pt]EFLASH_VDD | | | | | | | | | | [size=11.0000pt]M15/T2I/T2O | | | | | | | | | | | | | | | [size=11.0000pt]M7/UART2TX | | | | | | | | | | [size=11.0000pt]M4/SPI0MISO/UART3TX/PWM0AN/BT1O/T2I/T2O/LCDC_CSN/SD_CMD | | | | | [size=11.0000pt]M3/SPI0SSEL/UART1TX/PWM1A/BT2O/T0I/T0O/SD_DETECT | | | | [size=11.0000pt]M2/SPI0SCLK/UART1RX/PWM0B/BT3O/T1I/T1O/SD_CLK | | | | [size=11.0000pt]M1/UART0TX/PWM0A/T2I/T2O/CAN1RX | | [size=11.0000pt]DBG_UART_TX0 | | | [size=11.0000pt]M0/UART0RX/PWM_BRK1/CAN1TX | | [size=11.0000pt]DBG_UART_RX0 | | [size=11.0000pt]D11/PWM_CLK0 | | | | | | | | | | | | | | | [size=11.0000pt]D9/PWM1B/T3I/T3O | | | | | [size=11.0000pt]D8/I2C1SCL/FSI/PWM1BN/T4I/T4O | | | | | [size=11.0000pt]D7/UPDN/I2C1SDA/FSO/BT8O | | | [size=11.0000pt]D6/FCSN/UART3RX/PWM_CLK0/BT9O/CAN0RX/WAKEUP0 | | | [size=11.0000pt]D5/FSCK/UART3TX/PWM_CLK1/B10O/CAN0TX | | | [size=11.0000pt]D4/QEA/FHOLD/UART1RX/HALL5/B11O/CAN1RX/ADC0_TRIG1 | | | [size=11.0000pt]D3/QEB/FWP/UART1TX/HALL4/CAN1TX/ADC1_TRIG1 | | | | | | | | [size=11.0000pt]D2/INDEX/HALL3/DAC_OUT | | | | | [size=11.0000pt]D1/LCD_R5/ADC1_CH0 | | | | | [size=11.0000pt]D0/I2C0SCL/T3I/T3O/LCD_R4/ADC1_CH1 | | | | | [size=11.0000pt]C13/I2C0SDA/UART0TX/BT3O/T4I/T4O/LCD_R7/ADC1_CH2 | | | | | [size=11.0000pt]C12/UART0RX/BT4O/LCD_R6/ADC1_CH3 | | | | | [size=11.0000pt]C11/BT5O/T0I/T0O/LCD_R5/ADC1_CH4 | | | | | [size=11.0000pt]C10/BT6O/T1I/T1O/LCD_R4/ADC1_CH5 | | | | | [size=11.0000pt]C7/SPI1SCLK | | | | | [size=11.0000pt]C6/SPI1MOSI/BT8O/ADC0_CH0 | | | | | [size=11.0000pt]D10/PWM_CLK1 | | | | | | | | | | | | | | | [size=11.0000pt]ADC1_REFP | | | | | | | | | | | | | | | [size=11.0000pt]C9/BT7O/T2I/T2O/LCD_R3/ADC1_CH6/OPAVP0 | | | | | [size=11.0000pt]C8/LCD_R2/OPAVP0 | | |
| 配完显示驱动后,不够6组PWM,需要复用SWC组成4B 4BN; 或DEBUG串口0A 0AN |
|
| | |
2.16、SWM34Sxxxx与ST7701驱动应用时的几种情况 --Yinfc 2023-11
当34S系列 MCU驱动RGB888接口的显示屏,其内部是ST7701S时,34SVE(100pin)的MCU,输出有RGB888的引线,可以直接和7701的RGB888对应连接,初始化为24bit;
当使用34SRE或34SCE来驱动显示屏时,可以有如下两种方式: MCU的R0—R2; B0—B2; G0—G1未引出来,可以按如下方案1或方案2连接: 方案1: 方案1 方案2
对于ST7701的按RGB888初始化的接口,在7701初始化为RGB888时,可以接R3---R7 G2--G7, B3--B7(方案1); 在7701初始化为RGB565时,接R0--R4 G0--G5 B0--B4(方案2) 在7701初始化为RGB666时,如果34SRE,可以按上图连接:R1—R5 G0--G5 B1—B5(方案2)
2.17、对于串行RGB(SRGB)显示屏接口,如下接口,显示屏分辨率一般为400x400圆屏,已调试好显示,可以给客户参考,在IO口数量上和8080的8BIT类似,但是驱动的速度上比8bit快很多,可以显示视频的效果,相关的接口方式如下:
对于以上的显示屏接口,在和SWM34S系列的MCU连接时,可以把DCLK DE HS VS 分别接MCU对应固定的IO,LCD_CS LCD_SDA LCD_SCL 接到MCU的除A8以外的任意IO模拟显示屏的初始化SPI口,接IO口到显示屏RESET对显示屏复位, D0----D7如果接RGB888可以接到34SVE的G0---G7, 分三次传输到显示屏;或使用34SCE/34SRE的G2---G7的接口,把显示屏的D0 D1通过1K电阻接地,接成RGB565的驱动显示方式。
软件方面的的配置参考如下:
|