找回密码
 立即注册
查看: 1211|回复: 14

浅说漫话为实验箱(板)配置显示屏

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-19 21:57:40 | 显示全部楼层 |阅读模式
浅说漫话为实验箱(实验板)配置显示屏

日前淘了三块TFT显示屏,
其中一块是专用于AI8051U实验箱的触摸屏, 现已收到,
这样就可以在AI8051U实验箱做做关于触摸屏的实验了。

在淘屏的过程中,有一点经历、体会和思考,聊一聊,
供也想为实验箱或实验板选配彩屏的坛友同学参考。

初入论坛不久,本人有幸申请到了32G12K128_V9.62实验箱,
当时看到此彩屏的引脚排列,就想到了是配Arduino触摸显示屏的,
网上一查,2.4寸的Arduino触摸显示屏,遍地都是,
而且价格不贵...(Arduino的生态策略)
很随意地花了大约20元出头,淘了一块,是ILI9341的,还配了一支笔。

由于32G实验箱的官方例程中关于触摸屏的实验,
是针对ILI9325驱动的,故一直没有在32G实验箱上做这方面的实验。
总体感觉,显示屏使用正常,而且在Arduino开发板上也能用,比较满意。
看一下Arduino触摸显示屏的正反面:

红屏正面.jpg    红屏背面.jpg 正面与反面


这是5V供电的屏,5V电源引脚进入后经U1(1117)降压为3.3V,U2、U3驱动集成电路及IO口等实际都工作在3.3V。

3.3V的引脚悬空,无连接。板上有SD(TTF)卡座,除了支持触摸屏外还支持SD卡读写功能。
正面上部的按钮,是复位按钮,用在Arduino开发板上起复位作用。

最近,又很荣幸地获赠了AI8051U_V1.2实验箱,
经神管及时提醒:可能要配一块3.3V供电的触摸屏。
这才使我认真考虑了:为什么?
仔细观察分析了两个实验箱的差异,感觉存在两个问题:供电触摸
原Arduino屏(5V供电的)如何在AI8051U实验箱屏供电是3.3V的情况下使用?
这个问题经思考和摸索,已经解决。
可参见我的另外一帖:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11527
无论从理论分析和实践体验,都是可正常使用的,
而且修改操作方法很简单,非常容易操作。

接下来就是研究触摸问题了。

为什么Arduino开发板上能正常触摸使用,而到AI8051U实验箱上就不能用?
显然,引脚定义不同, AI8051U实验箱上在此位置上的引脚是指向TP_...触摸屏接口的,
而Arduino屏的相同位置的引脚指向SD_...存储卡的,答案就在这里了。
那么可以想象,专门用于AI8051U实验箱,带触摸功能的屏,一定是没有SD卡的,
购买专用屏之前,一直想先了解一下专用屏的反面是怎样的,但是一直没有机会。
直到屏到手,才得见其真面貌,也证实了之前的猜想。请看:

绿屏正面.jpg    绿屏背面.jpg 正面与反面

情况就很清楚了:
这是3.3V供电的屏,3.3V电源经引脚进入后直接供显示屏及各IO使用,
板上无SD卡模块位置,即显示屏不附加SD(TTF)卡功能
专用屏是利用了Arduino屏原来用于SD卡的引脚,
增加了XPT2046芯片,经芯片再连接四线电阻触摸屏,
从而实现触摸功能,同时也放弃了屏模块支持SD卡的功能。
省却了1117降压模块,其位置空余,使得5V引脚悬空。
顶部无复位按钮,也暗示了虽引用了Arduino的引脚布局,
但与Arduino无关的,并不承担其复位功能。

而Arduino屏在支持SD卡的同时,又能支持触摸功能,
能不引起一点点对此的思考吗?
经过调查思考和研究,发现Arduino屏,居然是不经过芯片,
直接控制四线电阻触摸屏,CPU直接承担ADC转换计算,实现触摸功能。
在此先感叹一下Arduino在这里的巧妙构思和程序微妙,后另题再作学习研究了。

专用屏,在AI8051U实验上的测试,
使用官方的测试代码,是正常的。

专用屏2.4''TFT320x240_ILI9431测试OK.jpg
由于是3.3V供电,对比之前用5V供电的Arduino屏,感觉亮度是低了一些。

如果把专用屏插回到Arduino开发板上,则是一片白色亮屏,
   原Arduino程序,对专用屏是不支持的。
如果把专用屏插回到32G实验箱上,也是一片白色亮屏,测量引脚电压,3.3V是到位的。
   初步思考,可能是改制后与原实验箱的引脚使用有所冲突,
   导致原32G实验箱相关彩屏的实验程序,均无法使专用屏正常显示。(还有待研究)

从而真正明确了,这确实是一块专门用于AI8051U实验箱的屏,
网上卖家极少,也就物以稀为贵了。

也曾搜寻过32G实验箱例程38所说,驱动是ILI9325的并支持触摸的屏,但毫无踪影。

至此,大概可以这样小结一下:
如果你仅拥有AI8051U实验箱,
   可选用这块专用屏,可以实验需要带有触摸屏功能的程序;
如果你仅拥有32G实验箱,
   可选用Arduino的屏,或者再继续搜寻一下当初设计实验箱时、例程38所指的那块带触摸的屏;
如果你既拥有32G实验箱,又拥有AI8051U实验箱,
   并且一块屏也没配,而又需要在AI8051U实验箱实验触摸屏的话,
   那么,可以配一块Arduino屏,用于32G实验箱,
   再配一块专用屏,专用于AI8051U实验箱。(基于目前的市场状况)
   如果你已经配了一块Arduino的5V的屏了,而且并不考虑在AI8051U实验箱做触摸屏实验的话,
   那么,你完全可以将那块Arduino屏用于AI8051U实验箱(经5V小改)。

然而,同样引脚排列的Arduino屏,
已经看到有3.5寸、分辨率是480*320的了...



话说这3.5寸的Arduino屏,分辨率比原来2.4寸的翻了倍, 其价格却与2.4寸专用屏相仿,可见其性价比还是较高的。
观其外形尺寸,引脚分布,在AI8051U实验箱还是能插上即用的。
3.5寸320x480显示屏-正面.jpg    3.5寸320x480显示屏-反面.jpg

不过,它还是属于一块不带专用触摸芯片的触摸屏。
尽管有文献已表明,通过内部ADC直接对触摸屏转换,是可以实现触摸功能的。
但是触摸精度、灵敏度以及要频繁切换从而增加CPU负担等特点,说明其并不是一块十分完美理想的屏。


以上所说,不管是2.4寸的Arduino屏,还是3.5寸的Arduino屏,还都是属于8位数据的并口屏。
为什么要用并口屏?因为其传输数据的速度比串口屏要高。
那么既然要追求较高的传输速度,为什么不用16位数据的并口屏呢?
因为其占用的IO口太多了。
对于AI8051U其IO端口并不是非常充足的芯片而言,是要权衡一下的。
然而, 事实上,Arduino已经在 Arduino Mega 2560 的开发板上使用16位并口屏了。

试问一下, 如果让你设计一个产品,并为此产品配置显示屏的话,
你会选用Arduino屏吗? 你会拘泥于这样的引脚排列吗? 大概率可能是不会的。
那么, 是否可以关注一下,一字排列14针引脚的TFT_SPI接口的触摸屏呢?
这就是接下来要说的,文首提及的三块屏中的第二块屏了。
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=12078&extra=page%3D1
这是一块2.4寸SPI接口的,分辨率为240*320的带有专用触摸片的触摸屏。
而且价格比较亲民,非常适合爱好者们实验选用。
2.4寸SPI_ILI9341_触摸屏_背面0.jpg

SPI接口的特点是相对并口占用IO端口数量较少,从上图中可见:
除了电源,触摸屏占用5个IO口,SPI通讯口只用了7针,包括了数据写入读出以及背光控制。
实验也已经表明,AI8051U驱动这块显示屏是没有问题的。是比较好用的。

2.4寸SPI_ILI9341_触摸屏_实验.jpg
这是Ai8051U驱动2.4寸SPI_240*320_触摸屏实验的留影。
触摸笔所到之处,显示不同的色块。

再来网上浏览,发现同类的显示屏,还真不少。
2.4寸SPI_触摸屏.jpg 2.4寸

2.8寸SPI_触摸屏.jpg 2.8寸

3.2寸SPI_触摸屏.jpg 3.2寸

3.5寸320x480_SPI_触摸屏.jpg 3.5寸

4.0寸320x480显示屏.jpg 4.0寸

诸位是否发现?这些显示屏,虽然尺寸不同,分辨率不同,但是它们的接口排列定义,却是相同的。
似乎已经约定俗成,形成了一种标准,这样很有利于用户的选用和互换。
。。。。。。

继续聊聊,关于为单片机配置显示屏的话题....
随着智能手机的普及,人们已经越来越熟悉和习惯那种图形界面的便捷操作。
当你用单片机开发做带有显示屏的项目时,用户已不满足简单的字符型菜单界面了。
然而要做彩色图片页面切换、图标菜单、动态曲线、滑屏过渡显示等类似手机的华丽操作,并非轻而易举能实现的,那是要消耗大量硬、软件资源的。
尽管AI8051U这样高性能的MCU,具有QSPI+DMA+LCM的机制,但是真正用于做图形界面项目的,还是十分费劲的。
其实现今的市面上,已经存在着这样的一种屏,可以让你事半功倍。
这就是本文一开头所说的第三块屏了。。。
这是淘到的“迪文DMG48320C035”一款入门级的智能串口屏:
3.5英寸,分辨率为480*320, RMB 16.5元(不含路费)。
屏正反面

迪文屏01.jpg 迪文屏02.jpg

几乎可以说,她是占用单片机的引脚接口最少的屏了(仅GND VCC RXD TXD 四针接口), 适用于任何型号的单片机。

只要用简单的串口指令控制,就能轻松驾驭,实现各种文本、图片、图标、进度、动画....显示。
展示一个简单的实例:这是用擎天柱核心板驱动的。
擎天柱驱动迪文屏.jpg



若套用一句话:“用 DMA 解放 CPU, 让 CPU 去干更重要的事。”
那么是否可以: 用“智能串口屏”解放 CPU, 让 CPU 去干更重要的事。

(本文完)

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-19 23:29:59 | 显示全部楼层
冲哥(电子DIY小家)的屏?

点评

是的. 搜索到目前为止,就此一家,别无分店。 我曾试图寻找当年设计32G实验箱时,所选用的ILI9325驱动的触摸屏,无果。  详情 回复 发表于 2024-11-20 08:43
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-19 23:32:12 | 显示全部楼层
XT2046专用触摸屏芯片速度和精度好一些,
直接用单片机的ADC要反复切换通道,
浪费大量资源,精度也差一些

点评

若有“直接用单片机的ADC要反复切换...浪费...精度也差”的例程代码,发过来看看, 学习研究,看能否优化?人家Arduino敢为天下先,咱国芯AI8051U,性能优越,何以惧之?  详情 回复 发表于 2024-11-21 21:00
所言极是。 谢谢超版的留言。 这也正是上面本贴还要继续讲述的。 研究了Arduino的程序,是需要四线电阻屏的两个引脚接单片机具有ADC输入功能的引脚, 这就说明了是在利用单片机ADC功能,加以算法,实现了免芯片转换  详情 回复 发表于 2024-11-20 09:09
DebugLab
回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-20 08:43:09 | 显示全部楼层
Debu*** 发表于 2024-11-19 23:29
冲哥(电子DIY小家)的屏?

是的.  搜索到目前为止,就此一家,别无分店。

我曾试图寻找当年设计32G实验箱时,所选用的ILI9325驱动的触摸屏,无果。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-20 09:09:51 | 显示全部楼层
Debu*** 发表于 2024-11-19 23:32
XT2046专用触摸屏芯片速度和精度好一些,
直接用单片机的ADC要反复切换通道,
浪费大量资源,精度也差一些

所言极是。
谢谢超版的留言。

这也正是上面本贴还要继续讲述的。
研究了Arduino的程序,是需要四线电阻屏的两个引脚接单片机具有ADC输入功能的引脚,
这就说明了是在利用单片机ADC功能,加以算法,实现了免芯片转换的触摸功能。
从理论上讲,Arduino能实现的,Ai8051U也应该能实现的。
至于反复切换通道和占用资源及精度问题,现在先说能不能用,以后再说好不好用。
“反复切换”这一点, Ai8051U的性能速度远超 Arduino_UNO所用芯片了。
“精度”问题,是一个算法优化问题。用XPT2046如果不加滤波和多重求均算法,也是一塌糊涂的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2024-11-20 09:24:43 | 显示全部楼层
遇到相同的问题,看了下和Ai8051U实验箱pin脚关系如图,还没研究它这个控制原理
截图202411200923355339.jpg

点评

看看xpt2046手册就明白了  详情 回复 发表于 2024-11-20 09:34
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-20 09:34:35 | 显示全部楼层
erci*** 发表于 2024-11-20 09:24
遇到相同的问题,看了下和Ai8051U实验箱pin脚关系如图,还没研究它这个控制原理
...

看看xpt2046手册就明白了

点评

收到  详情 回复 发表于 2024-11-20 09:36
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 2024-11-20 09:36:37 | 显示全部楼层
Debu*** 发表于 2024-11-20 09:34
看看xpt2046手册就明白了

{:5_300:}收到
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

积分
3476
发表于 2024-11-21 21:00:27 | 显示全部楼层
Debu*** 发表于 2024-11-19 23:32
XT2046专用触摸屏芯片速度和精度好一些,
直接用单片机的ADC要反复切换通道,
浪费大量资源,精度也差一些

若有“直接用单片机的ADC要反复切换...浪费...精度也差”的例程代码,发过来看看,
学习研究,看能否优化?人家Arduino敢为天下先,咱国芯AI8051U,性能优越,何以惧之?

点评

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11264  详情 回复 发表于 2024-11-21 22:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-21 22:05:50 | 显示全部楼层
浦江*** 发表于 2024-11-21 21:00
若有“直接用单片机的ADC要反复切换...浪费...精度也差”的例程代码,发过来看看,
学习研究,看能否优化 ...

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11264

点评

谢谢超版的回复。 原来论坛的前辈们,对此已有较深入的研究了。 拜读学习了。  详情 回复 发表于 2024-11-22 08:43
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 23:50 , Processed in 0.126367 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表