前面《ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-2-01:芯科的硬件解决方案EFR32》一文中有提到,Silicon Labs提供可用作ZigBee开发方案在官网上可以查到,具体如下图(查询时间为2023.01.11)所示:
总的来说,由近及远Silicon Labs依次有:
- EFR32MG24(最新的方案)
- EFR32MG22
- EFR32MG21
- EFR32MG13
- EFR32MG12
- EM359x
- EM358x
- EM35x(最老的方案)
由此可见,Silicon Labs在供货的ZigBee方案目前还是有很多的,但大家现在关注比较多的还是第二代EFR32MG2x处理器(即上图中标红的3个系列)。接下来以其中的EFR32MG21(Silicon Labs当前实际出货量最大的ZigBee SoC)为例,简要说明其片上资源的详情。在Silicon Labs的官网上可以看到关于EFR32MG21系列处理器的选型表,如下图所示:
从上图中可以看出,EFR32MG21系列处理器拥有非常丰富的外设,下面选择其中最常用的部分外设进行简要介绍。
一、GPIO
从上图中可以看出,EFR32MG21系列处理器总共有12个子型号(加密方式、最大发射功率和存储大小的不同),但有且仅有一种QFN32的封装(其他系列处理器可能会有多种封装形式),如下图所示:
从上图中可以总结出如下图所示的GPIO分组情况:
由此可见,EFR32MG21系列处理器,共有20个GPIO。并且EFR32MG21的Datasheet中有描述到,EFR32MG21的每一个GPIO均带有输出状态保持和异步中断的功能。
二、串口
(注:如上内容部分截取自EFR32MG21的Datasheet中的“Table 6.4. DBUS Routing Table”。)
由上图可见,EFR32MG21总共有USART0、USART1、USART2这3个串口,具体GPIO的映射情况如下:
- USART0:相关引脚可以映射到PA、PB、PC和PD总共4组GPIO的任意一个GPIO上;
- USART1:相关引脚可以映射到PA和PB总共2组GPIO的任意一个GPIO上;
- USART2:相关引脚可以映射到PC和PD总共2组GPIO的任意一个GPIO上。
EFR32MG21 的 USART 是一个灵活的串行输入输出模块。它支持带硬流控的全双工异步 UART 通信以及 RS-485、SPI、MicroWire和3线通信。它还可以与支持 ISO7816 智能卡、IrDA 和 I2S 等协议。
三、定时器
EmberZnet其实提供了非常完善且易用的定时事件机制,一般的定时任务都可以非常方便的实现,具体请参考前面《ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-4-05:定时事件机制》一文。
但是当需要使用定时器实现类似PWM输出等功能时,就需要开发者自己专门去操作硬件定时器了。
四、ADC
五、IIC
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)