平台介绍
Teensy 4.1搭载了i.MX RT1062处理器,该处理器基于ARM Cortex-M7内核,运行频率高达600MHz,配备了7936K闪存和1024K RAM,以及4K EEPROM,提供了充足的存储空间。支持多种连接接口,如UART、SPI、I2C、USB等,以及2个10/100M以太网控制器和3个CAN接口,为开发者提供了丰富的连接选项。具备高速GPIO、CAN FD和同步并行NAND/NOR/PSRAM控制器等实时应用功能,以及2D图形、摄像头和各种存储器接口。编程环境具有完整的Arduino开发环境,易于开发。开发者可以使用Arduino IDE、Visual Micro、PlatformIO、CircuitPython或命令行工具进行编程,还支持MicroPython。它拥有一个活跃的社区,开发者可以在社区中分享经验、解决问题和获取支持。
官方资料:Teensy® 4.1
编译环境
根据官方推荐,安装 Arduino ide
设置外部包的地址,首选项,配置地址:https://www.pjrc.com/teensy/package_teensy_index.json
开发包管理器里搜索teensy,点击安装。
--------------------------------------------------------------------------------------
配置编译环境
简单的测试代码
void setup() {
// put your setup code here, to run once:
Keyboard.print("Hello World");
}
void loop() {
// put your main code here, to run repeatedly:
delay(2000); // 暂停2秒
Keyboard.print("Hello World");
}
效果是两次模拟键盘,输出 Hello World。
gpio的使用
配置引脚
pinMode(13,OUTPUT);
控制引脚亮灭 一秒周期
while(1){
delay(1000);
digitalWrite(13,!digitalRead(13));
Serial.println("9999999999999");
}
硬件介绍
前面
背面
背面的flash焊盘可选,原理图如下:
led 位置,连接引脚为b0_03:
设计思路
teensy4.1通过有线实现网络连接,创建客户端,连接主机上的服务器,接收主机发过来的指令。
解析指令,并实现对led的控制。
led
打板一个rgb灯,增加一些效果,好看一点。
pcb如下图,led共阳。
主要代码
项目是基于官方例程 :TelnetClient
网络通了
创建客户端,并连接服务器,服务器使用端口 10002.
Ethernet.begin(mac, ip);
while (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
delay(500);
}
if (client.connect(server, 10002)) {
Serial.println("connected");
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
接收 服务器发过来的数据
if (client.available()) {
char c = client.read();
//Serial.println(c);
//Serial.println(c,DEC);
OpsLed(c);
}
解析数据,并显示不同的灯,三个rgb引脚,使用编号 0 1 2引脚。
设计8位二进制,高四位用于标志点亮灯,第四位用于设置亮灭时间,实际效果中,第四位暂不用实现。
void OpsLed(char opsId)
{
uint8_t r,g,b;
Serial.println(opsId,HEX);
Serial.println(opsId,DEC);
r= !(opsId & 0x10);
g= !(opsId & 0x20);
b= !(opsId & 0x40);
digitalWrite(0,r);
digitalWrite(1,g);
digitalWrite(2,b);
}
效果:
疑难问题
ardunio中,引脚使用了一个整数标识,如下图:
官方的引脚名字是字母加数字,不太理解如何完成的转换。
活动总结与未来计划
非常感谢电子森林的活动,触摸了nxp的高性能mcu,学习到了很多知识。对有线网络的硬件软件的结构设计,以及phy与mac的关系有了初步了解。
希望咱们电子森林越来越好,卡片选择也越来越全面,培养更多的嵌入式开发人才。