【经验】EFR32MG21 ZigBee无线芯片作为频率信号发生器为其他设备提供定时器功能
EFR32MG21的定时器功能特别强大和复杂,也可以用来给其他设备提供时钟,为了降低设备对时钟晶振和芯片的需要,也可以直接使用它给其他设备提供时钟。一个稍为复杂的设备可能会用到多个时钟,如果对时钟的要求不是十分严格,则可参考本法。
频率范围
首先要说明的是时钟的频率是有限制的,而且不会十分的精准,我们在使用zigbee协议之后,EFR32MG21的高频时钟也就是38.4MHZ的晶振,本文的时钟信号发生器也会是在这个时钟基础上进行分频所得。
EFR32MG21定时器频率计算公式为:
因此在不改变分频数prescale的条件下,可以配置的频率为 292.96Hz~19.2Mhz。每个定时器还可以通过对时钟进行最高1024次分频,从面得到频率0.2861Hz的信号,这相当于一个周期的时间为3.495秒的信号。这里是用于时钟信号,因此可以认为理论都是50%占空比的方波,但实际上会略有偏差,实测也有可能会是52%。
测试工具和方法
经过理论上的计算之后,我们可以对开发板进行编码测试,测试时可以使用示波器,也可以使用梦源制作的USB逻辑分析仪(型号DSLogic Plus)。用它可以进行测试信号,然后在电脑软件上可以直接显示出信号的数字波型。 它的最大采样速率为400MHz,所以也满足了这次的测量的要求。
图1 DSLogic Plus
为了能够测试结果是否可行,我还们还要让EFR32MG21输出信号,使用一个开发板,在任何一个Zigbee工程当中,增加代码让他输出信号到指定的引脚,(注意避开协议栈默认会占用的引脚),将逻辑分析仪的表笔接到开发板对应引脚上,即可开始测量。开发板可以选择官方的SLWSTK6006A或者我们公司新一信息的NEWBIT-ZDK-2。以官方的为例,接线如下:
图2 逻辑分析与ZigBee开发板的连接方法
测量的结果
下载程序并测量信号,所目标设置为1M时,得到的图3的波形。结果显示是1.01MHz, 计算其误差在1%。对寄存器进行修改,经过测试大致得到如下的规律:
表1
上表反映的测量的读数,与理论值并没有完全相符,但差别非常小,对于时钟精准度要求不那么高的话,可以直接使用。
图3 定时器输出设置为1MHz的输出波形
测试的代码
定时器的代码不多,而且也不需要Simplicity studio v4进行配置,为方便大家的测试和使用,我们将所用的代码开源于https://gitee.com/newbitcode/efr32mg_peri。部分代码如下:
// timer configuration void nb_timer_init(void) { uint32_t timerFreq = 0; // Initialize the timer TIMER_Init_TypeDef timerInit = TIMER_INIT_DEFAULT; // Configure TIMER0 Compare/Capture for output compare TIMER_InitCC_TypeDef timerCCInit = TIMER_INITCC_DEFAULT;
timerInit.prescale = timerPrescale1; timerInit.enable = false; timerCCInit.mode = timerCCModeCompare; timerCCInit.cmoa = timerOutputActionToggle;
// configure, but do not start timer TIMER_Init(TIMER0, &timerInit);
// Route Timer0 CC0 output to PC3 GPIO->TIMERROUTE[0].ROUTEEN = GPIO_TIMER_ROUTEEN_CC0PEN;
GPIO->TIMERROUTE[0].CC0ROUTE = (TIMER0_GPIO_PORT << _GPIO_TIMER_CC0ROUTE_PORT_SHIFT) | (TIMER0_GPIO_PIN << _GPIO_TIMER_CC0ROUTE_PIN_SHIFT);
TIMER_InitCC(TIMER0, 0, &timerCCInit);
// Set Top value // Note each overflow event constitutes 1/2 the signal period timerFreq = CMU_ClockFreqGet(cmuClock_TIMER0)/(timerInit.prescale + 1); int topValue = timerFreq / (2*OUT_FREQ) - 1; TIMER_TopSet (TIMER0, topValue);
/* Start the timer */ TIMER_Enable(TIMER0, true); } |
在开发和测试的过程中,感谢世强元件的工程师给予的支持。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由Newbit Iot提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】多协议无线 SOC EFR32MG实现ZigBee的OTA操作指南
EFR32MG系列是Silicon Labs公司推出支持多协议无线 SOC,可以单芯片支持私有协议、BLE5.0、BLE MESH、ZigBee和Thread协议,并且可以单芯片支持Sub-GHz和2.4GHz的频段。由于其超低功耗、高射频性能以及高集成度等特点被广泛应用于智能家居、安防、智能工业等市场。在ZigBee的实际应用中,OTA是必不可少的功能,由于选择的型号不同,配置OT
【经验】Simplicity Studio v5软件创建ZigBee Z3Gateway Host工程的方法
本文主要介绍如何使用Simplicity Studio v5软件创建ZigBee Z3Gateway Host工程的方法,以Silicon Labs的无线SoC芯片EFR32MG21为例。
【经验】EFR32MG21系列芯片zigbee射频性能测试
本文介绍使用CMW100测试Silicon Labs EFR32MG21系列芯片zigbee射频性能,从测试硬件、软件准备,测试环境搭建,测试zigbee射频TX和RX射频指标步骤进行详细描述,并描述了测试中的遇到的问题和解决方法。
SILICON LABS ZIGBEE 无线 Gecko SoC选型表
EFR32MG无线 Gecko SoC 是在 IoT 设备上实现节能多协议连网的理想之选。芯片解决方案结合了 76.8MHz ARM和高性能 2.4GHz 无线电,旨在为 IoT连接应用提供行业领先的节无线 SoC。
产品型号
|
品类
|
Protocol Stack
|
Frequency Band @ Max TX Power(GHz@dBm)
|
Flash(kB)
|
RAM(kB)
|
GPIO(个数)
|
Operating Temperature(℃)
|
Storage Temperature(℃)
|
Pin Count
|
AVDD Supply Voltage(V)
|
EFR32MG12P433F1024GL125-C
|
Gecko Multi-Protocol Wireless SoC
|
Bluetooth LE Zigbee Thread Proprietary, Wi-SUN
|
2.4GHz @ 19dBm, Sub-GHz @ 20dBm
|
1024kB
|
256kB
|
65
|
-40℃~85℃
|
-50℃~150℃
|
BGA125
|
1.8V~3.8V
|
选型表 - SILICON LABS 立即选型
芯科科技BG27/MG27 SoC系列产品荣获2023年维科杯芯片技术突破奖,专为尺寸极小的物联网设备设计
Silicon Labs的BG27蓝牙SoC以及支持Zigbee及其他专有协议的MG27 SoC系列产品获颁“维科杯OFweek 2023物联网行业创新技术产品奖-芯片技术突破奖殊荣”。
【经验】无线SoC芯片EFR32MG21程序中MFG_SECURITY_CONFIG参数的设置与功能
在无线SoC芯片EFR32MG21的ZigBee默认Z3Light程序运行时我们可以通过keys print这个CLI命令打印NWK key与TC Link Key等密钥参数,打印的效果如下,那我们是否可以隐藏这些密钥无法打印呢?
【经验】配置迈斯威志WizPro200EFM烧录器实现脱机烧录无线SoC芯片EFR32MG21固件的方法
Silicon Labs的EFR32MG21无线SoC芯片,主要用于ZigBee和Matter设备。本文主要介绍如何配置迈斯威志WizPro200EFM烧录器,实现脱机烧录EFR32MG21无线SoC芯片固件的方法。
【经验】创建ZigBee的无线SOC网关工程操作步骤
Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。
【经验】无线SoC芯片EFR32MG21手动生成OTA文件的方法与注意事项
在使用SILICON LABS无线SoC芯片EFR32MG21芯片设计ZigBee产品时,我们会用到OTA功能,这就要产生OTA文件。EmberZNet 6.x版本的项目中会自动为启用了OTA客户端插件的项目创建OTA文件,需要我们手动去创建OTA文件。
【经验】如何创建 Z3GatewayHost 网关?
EFR32MG多协议SoC芯片是 Silicon Labs 专门针对 IOT 推出的 ZigBee 方案,高达19.5dbm的发射功率,-102.7dbm的接收灵敏度,在业界内拥有最佳的RF射频性能,具有最全的Zigbee网络协议,被广泛应用在智能家居,工业控制等行业。在开发 Zigbee 产品时网关是重要的一个部分,本文详细介绍了创建一个 GatewayHost 的方法。
【经验】如何在windows平台搭建Zigbee网关开发环境cygwin?
Silicon Labs 的EFR32MG多协议SoC芯片是 Silicon Labs 专门针对 IOT 推出的 ZigBee 方案,在开发 Zigbee 产品时网关是重要的一个部分,本文详细介绍了如何在Windows平台上搭建Silicon Labs提供的Zigbee网关开发环境cygwin。
【经验】ZigBee程序中NVM3基地址的重新定义
我们在使用无线SoC芯片EFR32MG21做ZigBee程序时,程序中会用到NVM3保存一些参数,但NVM3的存储地址我们在程序中很难找到设置的地方,如果想修改NVM3的存储地址要如何处理?
【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程
EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。Token是用来存储非易失性数据的即掉电后也能保存,本文档指导大家如何在EmberZNet PRO应用程序中自定义Token来存储非易失性数据。
【经验】如何制作自己的 Zigbee NCP程序?
Silicon labs 的EFR32MG多协议SoC芯片是 Silicon Labs 专门针对 IOT 推出的 ZigBee 方案,在开发 Zigbee 产品时网关是重要的一个部分,本文详细介绍了Silicon Labs提供的网关的参考设计中NCP工程的创建方法。
【经验】Simplicity Studio v5软件配置ZigBee调试打印信息的方法
在调试EFR32MG21无线SoC芯片的ZigBee程序时,需要EFR32MG21芯片使用串口打印ZigBee的调试信息。本文以EFR32MG21芯片的Z3Light工程为例,介绍Simplicity Studio v5软件配置ZigBee调试打印信息方法。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,128
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供电子电气产品的辐射骚扰测试、辐射抗干扰测试,以及RFID,SRD,2G,3G,4G等无线产品的辐射骚扰测试、辐射杂散测试、辐射功率测试以及辐射抗干扰测试。测试频率可覆盖9KHz-26.5GHz。
实验室地址: 深圳 提交需求>
可定制4G PCB内置天线的尺寸、连接器种类、电缆类型;支持频率700-960 MHz/1710-2700 MHz;支持协议4G;电压驻波比:860 MHz≦1.5;1710-2700MHz≦2.5。
最小起订量: 500 提交需求>
登录 | 立即注册
提交评论