ESP32-TFT屏幕SPI驱动板
别名:屏幕讯息驱动板
验证成功
规划 | 进度 | 更新时间 |
---|---|---|
PCB打板、元器件暂未到货 | 暂未结束 | 2023-06-26 |
其他功能OK可搜无法连WIFI重新打板设计 | 重新打板 | 2023-06-28 |
耗材到货,焊接验证成功 | 焊接验证成功 | 2023-07-06 |
验证成功 | 硬件结束 | 2023-07-07 |
1. 前言
我有很多捡垃圾掏来的各种TFT屏幕有SPI还有并口驱动的,打算用这些屏幕做一些小制作,不然我买这么多的小屏幕吃灰不就浪费了它的价值。本项目此版本仅支持SPI串口驱动的屏幕
2. 设计规划
这是一款万能驱动板,核心思想是可以驱动所有支持SPI的屏幕,兼容三线和四线。
兼容的方式我的想法是,驱动板不设置连接器直接连接屏幕,而是暴露出 CLK、CS、MOSI、MISO、DC、RST、BLK(背光)、VCC、GND 这些焊盘,各在顶层和底层对称放置通过 过孔打通连接。那么这样的做的话就需要设计为每一款屏幕设计连接器转接板。
这个转接板可以是很小,甚至只是可以焊上屏幕或者板对板连接器尺寸那么大就好。
到时候组装的时候只需要将转接板贴片焊接上去即可。
MCU我计划采用ESP32-C3非集成Flash的版本,后期可随意扩容默认:W25Q64JVSSIQ 8Mbyte大小很足。我已经实验使用LVGL可以运行。 这里我不采用先有模组去做,因为那样成本会比较高,到时自己焊接芯片即可。
根据ESP32-C3的引脚,在分配给屏幕引脚后,还剩下一些引脚。那么这些我将利用剩下的引脚,在继承其他的一些外设。
2.1 用户按键组
使用ADC1_CH3 引脚配合电阻组成的按键网络实现按键功能
通过分压电阻,当不同的按键按下时,IO39采集到的电压不同,我们可以限制每个按键的电压范围然后判断当某个按键被按下时电压是否落入对应的范围内来判断是否被按下;通过适当的电阻值设定还可以实现组合按键。 实现原理就是通过采样周期(50ms)采样IO39的电压,如果电压值在某个按键的电压范围内,例如PLAY按键,理论电压为1.57V,我们可以设定一个1.35-1.75的范围,如果某个时刻电压属于这个范围(可以两次采样比较),就认为PLAY按钮被按下。
2.2 使用ESP32的ADC 时应该注意几个问题
启用 WiFi 时无法使用:使能 Wi-Fi 时无法使用 ADC2 引脚。由于很有可能在设计用于WiFi的微控制器上使用WiFi,因此只能使用ADC1。模数转换器输入范围:ESP32 的 ADC 只能测量 0 到 3.3V 的电压。不能直接测量 0 到 5V 之间的模拟电压。模数转换器精度:ESP32 上的 ADC 转换器本质上是非线性的。 ESP32 无法区分 3.2V 和 3.3V测量值将相同 (4095)。同样,它无法区分0V和0.13V信号测量值将相同 (0)。电气噪声:ADC的电噪声意味着测量值略有波动。这时可以通过在输出端增加一个电容和过采样来纠正。
这里我们项目要采用ADC1_CH0通道 对应 GPIO0 获取锂电池电压
锂电池将采用3.7V 满电4.2V,我们设计分压电路后利用ADC1_CH2通道进行检测 对应的引脚为GPIO1
2.3 充电与状态检测
既然使用了锂电池可以作为供电那么这里也设计了一款充电电路,并且我们将充电状态反馈到ESP32这样我们可以通过程序可知是否充电完成状态。
2.4 传感器外设
ESP32在经过上面的引脚分配后剩余引脚还可以再添加I2C通讯的器件,来增加我们的可玩性。
温湿度传感器: AHT21;
EEPROM(AT24C256C 256Kbit - 32Kbyte)(可以保存下WIFI信息、天气信息、位置、个性签名等)
2.5 SPI屏幕接口
屏幕接口找一些显示效果还可以的屏幕定制化做了定制设计的操作,如果朋友们想要复刻,可以自行修改下SPI接口的座子单独做一个适配然后拼接到PCB中可以使用过孔连接方便可以直接用手掰开。
2.6 电源供电
电源供电的选择是个比较重要的一项,其中常见的方案大多是LDO稳压与DCDC开关芯片,这两个方案各有优势。
使用的供电方案LDO和DCDC芯片,他们的各自的优势和缺点是:
LDO(低压差线性稳压器)是一种线性的稳压器,只能用于降压应用,即输出电压必须小于输入电压
LDO的优点是:稳定性好,负载响应快,输出纹波小,噪声低,静态电流小,外围器件少,成本低。
LDO的缺点是:效率低,输入输出压差不能太大,否则会导致发热严重,输出电流受限。
DCDC(直流-直流变换器)是一种开关电源,可以实现升压、降压或升降压的功能,即输出电压可以大于或小于输入电压。
DCDC的优点是:效率高,输入电压范围宽泛,可以输出大电流。
DCDC的缺点是:负载响应比LDO差,输出纹波大,噪声大,外围器件多,成本高
在ESP32-使用WIFI的时候瞬时电流其实还是蛮大的,还需要考虑给TFT屏幕供电,如果tft屏幕对亮度有要求那么也需要一定的电流。
ams1117-3.3其实也够用,介于它的体积太大。 最后我还是选择DCDC方案,实测输出电压3.3V非常准,如果是ams1117可能3.1 3.2V了。
接下里介绍下项目中使用的这款低功耗DCDC芯片
SY8088AAC是一款高效的同步降压DC/DC稳压器芯片,由矽力杰 (Silergy)公司推出
输入电压范围为2.5V到5.5V,适用于多种电源场景。
输出电流可达1A,满足大部分负载需求。
开关频率为1.5MHz,减小了外部电感和电容的尺寸,节省了空间和成本。
集成了低导通电阻的MOSFET,提高了效率和可靠性。
具有使能控制功能,可以通过外部信号关闭或开启输出。
具有超低功耗(低静态电流)的特性,只有40uA(典型值),适合低功耗应用。
具有轻负载高效率技术,可以在轻负载时自动降低开关频率,进一步提高效率。
具有内部软启动机制,防止启动时的浪涌电流。
具有最高100%的占空比,可以在输入电压很低时仍然保持输出电压。
符合RoHS标准,环保无卤素
3. 开发板计划功能
我将此板定义为开发板,因为上面说了它并不是针对某一款型号的屏幕而设计。 板载外设可以实现显示特定的功能信息。
那么初步计划我们可以后期制作lib库文件,封装一些外设代码等。
V1.1 初版规划 (代码编写中....)
WIFI配网 (AP模式WEB配网) √
天气信息 √
日期时间 √
室内温湿度信息 √
GUI小摆件 GIF动图 (暂定吧)
4. 实物展示
有需要PCB打板文件的请联系在下发留言,或加入我们的交流群。
5.程序
程序初步完成,需要的请入群获取
加入微信交流群可免费索取全部资料与打板文件! ->上方->关于->微信扫码入群
评论区