板卡介绍
Teensy 4.1是一款功能强大的Arduino兼容开发板,搭载了恩智浦i.MX RT1062芯片,拥有高达600MHz的处理速度和1MB的RAM。它具备丰富的I/O功能,包括以太网、SD卡插槽和USB主机端口。支持动态时钟缩放和低功耗运行,适合工业和物联网项目。
恩智浦的i.MX RT1062芯片是一款基于ARM Cortex-M7内核的高性能微控制器,具备以下特性:
- 600 MHz的运行频率,提供强劲的计算能力。
- 支持64位和32位浮点运算,增强了数据处理能力。
- 拥有7936K闪存、1024K RAM,以及4K EEPROM,为应用程序提供充足的存储空间。
- 支持QSPI存储器扩展,可以连接额外的RAM或闪存芯片。
- 双USB端口,支持480 Mbps的传输速度。
- 55个数字I/O引脚,其中35个支持PWM输出,18个模拟输入引脚,提供丰富的接口选项。
- 8个串行端口、3个SPI端口、3个I2C端口,以及多种音频接口,满足多种通信需求。
- 支持3个CAN总线,包括一个支持CAN FD的总线。
- 包含SDIO接口的microSD卡插槽。
- 集成以太网控制器和PHY芯片,支持10/100 Mbit的速度。
- 32个通用DMA通道,提高数据传输效率。
- 加密加速器和随机数生成器,增强安全性。
- 内置RTC,用于日期和时间管理。
- 可编程FlexIO,提供灵活的I/O配置。
- 像素处理流水线,适合图形处理应用。
- 外设交叉触发功能,增强设备间的协同工作能力。
- 电源开关管理,支持低功耗运行。
- 支持超频,可超过600MHz的运行频率。
它还具备高性能的内核、高速缓存、全功能FPU、内存保护单元、紧密耦合的GPIO、片上存储空间、多种外部存储接口、通用2D图形引擎、多种显示和摄像头接口、音频接口、丰富的通信接口、多种定时器、模拟接口、系统调试功能和全面的电源管理功能。这些特性使得i.MX RT1062芯片非常适合用于工业控制、物联网设备、多媒体应用等多种高性能嵌入式系统。
官方也提供开发和应用的案例,使用起来非常方便,具体软件环境配置请查看https://www.pjrc.com/teensy/td_download.html
任务要求
任务1:点灯!从板子的以太网排针处引出接口,并通过网口通信,控制板子上的LED灯
设计思路
因为板卡自带网卡芯片,我们只需要将网口引出,板卡上的网口是使用PH2.0接口,官方虽然有网口的拓展套件,但价格还是比较贵的,毕竟是从海外运输过来。
简单的了解网口定义,我使用了HR911105A内部带有网口变压器,引脚定义直接看官网的原理图 一一对应即可。
我是用5050封装的RGB,可以实现独立点亮红绿蓝颜色的灯,控制的时候只需要将IO电平为0即可实现点灯,另外配置了两个用户按键实现切换颜色和信息上报的功能
软件部分使用官方推荐的Arduino开发框架,在网络通信方面使用的是QNEthernet库,使用起来也也是非常的简单,配置好网络参数,代码中监听指定的消息内容即可实现控制LED
我设计的软件思路如下
初始化网口配置,在循环中监听消息
收到指定的消息,使用 digitalToggle(灯的IO);来实现切换灯的亮/灭。
if (message == "000") {
digitalToggle(A0);
if(digitalRead(A0)==1)
{
sendRequest("BLUE LED OFF\r\n");
}else{
sendRequest("BLUE LED ON\r\n");
}
} else if (message == "001") {
digitalToggle(A1);
if(digitalRead(A1)==1)
{
sendRequest("RED LED OFF\r\n");
}else{
sendRequest("RED LED ON\r\n");
}
} else if (message == "002") {
digitalToggle(A2);
if(digitalRead(A2)==1)
{
sendRequest("GREEN LED OFF\r\n");
}else{
sendRequest("GREEN LED ON\r\n");
}
}
软件框图
活动心得
参加电子森林的FunPack第五期活动,我学习了如何通过以太网接口控制LED灯。这次经历让我对电子设计有了更深的认识,也提高了我的实践技能。同时感谢电子森林平台,每一期的FunPack活动都可以带来很多好玩的板卡,我会继续支持平台,共同学习进步。