一、前言
项目介绍:2.4寸 SPI 串口 TFT 显示屏是一种广泛使用的小型液晶屏,通常应用于嵌入式系统、数据采集、控制界面等场合。在这些显示屏中,ILI9341 是一种常见的驱动芯片,用于控制显示内容。2.4寸 SPI 串口 TFT 显示屏是一个功能强大且灵活的显示解决方案,搭载 ILI9341 驱动芯片,可用于多种应用场景。在选择和使用时,需关注接口连接、驱动软件以及供电要求,以确保最佳的使用体验。在FastBond3基础部分中,已经绘制了整个项目的方案框图和器件介绍,这次在FastBond3挑战部分中我将进行PCB打板、程序介绍和实物演示视频。
设计思路:使用ILI9341的TFT屏加上简单外围电路替代市面上的成品模块。
框图介绍:
二、原理图及PCB介绍
背光控制电路:
这个电路通常用来控制TFT显示屏的背光,可以通过PWM信号或简单的开关控制背光的开启与关闭。 三极管Q1的基极通过电阻连接到控制信号,当控制信号为高时,Q1导通,使得背光电路闭合,背光灯亮起。Q1 是一个NPN三极管S8050,在电路中用于控制显示屏的背光或者重置逻辑。 R3、R4、R5 和 R6 是偏置电阻,分别连接到三极管的基极和集电极。PFC1是TFT显示屏的连接器,是一个20针的FPC连接器,用于将显示屏与主板电路连接,连接包括电源、地、控制信号、数据线等。
S8050:
S8050 是一种常见的NPN型低功率三极管,广泛应用于电子电路中。以下是关于S8050三极管的基本介绍:
1. 基本参数
- 极性: NPN型
- 集电极-发射极电压 (V_CEO): 20V
- 集电极-基极电压 (V_CBO): 40V
- 发射极-基极电压 (V_EBO): 5V
- 集电极电流 (I_C): 最大800mA
- 功率耗散 (P_C): 最大625mW
- 直流电流增益 (h_FE): 85 - 300(依照工作条件而变化)
- 封装形式: TO-92
2. 工作原理
- S8050是NPN型三极管,当基极电流流入时,集电极与发射极之间会导通,允许较大电流通过。
- 它通常用于放大或开关应用。在开关应用中,基极电流的存在与否控制着集电极与发射极之间的电流通断。
3. 注意事项
- 在设计电路时,应确保基极电阻合适,以防止过大的基极电流损坏三极管。
- 由于S8050的功率和电压等级较低,使用时需要注意不要超出其额定值,以防止损坏。
MAX78000EXG+
采用超低功耗卷积神经网络加速度计的人工智能微控制器,一款新型AI微控制器,能够使神经网络以超低功耗运行
- 神经网络加速器
- 针对深度卷积神经网络进行了高度优化
- 442k 8位权重容量,具有1、2、4、8位权重
- 高达1024 x 1024像素的可编程输入图像尺寸
- 多达64层的可编程网络深度
- 多达1024个通道的可编程网络每层通道宽度
- 一维和二维卷积处理
- 流模式
- 灵活支持其他网络类型,包括MLP和循环神经网络
MAX20303BEWN+:
MAX20303为高度集成、可编程电源管理方案,设计用于超低功耗可穿戴应用。器件针对尺寸和效率进行优化,通过延长电池寿命和缩小方案总尺寸,增强最终产品的价值。一组灵活的电源优化电压调节器,包括多个降压、升压、升/降压和线性调节器,提供高度集成,并且能够组成完全优化的电源架构。每个调节器的静态电流特别优化到1µA (典型值),以延长随时就绪应用中的电池寿命。
- 延长电池充电间隔
- 2个微小IQ Buck调节器(每个小于1µA IQ (典型值))
- 220mA输出
- Buck1:0.8V至2.375V,25mV步长
- Buck2:0.8V至3.95V,50mV步长
- 微小IQ LV LDO/负载开关(1µA IQ (典型值))
- 1.16V至2.0V输入电压
- 50mA输出
- 0.5V至1.95V输出,25mV步长
- 微小IQ LDO/负载开关(1µA IQ (典型值))
- 1.71V至5.5V输入电压
- 100mA输出
- 0.9V至4V,100mV步长
- 微小IQ 升/降压调节器(1.3µA IQ (典型值))
- 250mW输出
- 2.5V至5V,100mV步长
- 易于实现的Li+电池充电
- 较宽的快充电流范围:5mA至500mA
- 智能电源选择器
- 28V/-5.5V容限输入
- 可编程JEITA电流/电压特性
三、成品功能测试
在这里PFC接口的焊接有一点困难,间隙很小,使用电烙铁会比较难操作,另外就是R3的电阻值要稍微大一些,R3 是连接到三极管 S8050 基极的电阻,这个电阻的作用是限流,控制基极电流的大小。如果R3的电阻值较小的话,S8050会发热严重甚至会被击穿。
关键代码及说明:
int main(void)
{
Max78000_Init();
mxc_gpio_cfg_t gpio_led_t = {0};
MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_GPIO0);
MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_GPIO1);
MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_GPIO2);
gpio_led_t.port = MXC_GPIO2;
gpio_led_t.mask = MXC_GPIO_PIN_0;
gpio_led_t.func = MXC_GPIO_FUNC_OUT;
gpio_led_t.pad = MXC_GPIO_PAD_NONE;
gpio_led_t.vssel = MXC_GPIO_VSSEL_VDDIOH;
gpio_led_t.drvstr = MXC_GPIO_DRVSTR_0;
MXC_GPIO_Config(&gpio_led_t);
mxc_gpio_cfg_t tft_reset_pin = {MXC_GPIO0, MXC_GPIO_PIN_19, MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};
mxc_gpio_cfg_t tft_led_pin = {MXC_GPIO0, MXC_GPIO_PIN_9, MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};
MXC_TFT_Init(MXC_SPI0, 1, &tft_reset_pin, &tft_led_pin);
MXC_TFT_SetRotation(3);
MXC_TFT_ShowImage(0, 0, image_bitmap_1);
while (1)
{
MXC_GPIO_OutToggle(gpio_led_t.port, gpio_led_t.mask);
MXC_Delay(500000);
}
}
这段代码的主要功能是,初始化 MAX78000 微控制器和 TFT 显示器。 配置 LED 和 TFT 显示器的 GPIO 引脚。 在 TFT 显示器上显示一幅图像,并使 LED 灯周期性闪烁。 通过这种方式,代码实现了一个简单的 LED 闪烁和图像显示的示例。
四、活动总结
这一次画了个简单的TFT模块,借助于这个小项目的实践,我希望能够掌握从原材料选择、PCB设计到最后的调试和软件编程的每一个环节,提升我的动手能力和技术水平,将为我的学习过程增添更多的可能性和创新空间。 在此,我也非常感谢活动的举办方,感谢提供这样的机会来学习和探索新技术。这次活动不仅让我获得了额外的知识,还激发了我对电子技术和边缘AI的浓厚兴趣。我期待在未来的项目中,将所学知识应用到实际中,探索更多有趣的电子产品和应用。