查看:
2125
|
回复:
0
|
GD32 MCU 开发板 Workshop 报告 - 315Mhz OOK RF 发射器
|
|
发表于2019-05-15 05:18:24
|
只看该作者
1#
电梯直达
1. 方案简介
本方案使用 GD32E231C8 为主控,负责读取按钮输入和生成 baseband 信号。Baseband 信号直接输出给有源震荡器 (SiT8008BIF21-33E-105.000000) 的 Output Enable Pin,控制震荡器的输出,实现简陋的 315Mhz OOK RF 发射器。 请注意,本方案没有使用 Bandpass Filter 在输出端上,所以会发射很多不必要的电磁辐射,不可能通过 FCC / CE 的合规性测试,所以请在有良好微波隔离的房间里使用本方案,不要给他人和自己造成不必要的麻烦。 2. GD32E23X MCU 产品的介绍 GD32E23X 系列使用的是 ARM 较为新设计的 Cortex M23 核心,它十分的节省能源,因为使用了很少的晶体管。这款处理器核心可以最高运行在 72Mhz 频率下。这款开发板使用的是 GD32E231C8,属于 GD32E23X 系列中最大的型号,它有 64KB 的 Flash 和 8KB 的 SRAM。Peripheral 方面,这款 MCU 集成了几乎所有常用的 Peripheral,如 Timer,Watchdog,RTC,USART,IIC,SPI。同时也集成了一些模电 Peripheral,如比较器,运算放大器,ADC。但是,这款 MCU 没有集成 USB / Ethernet / DAC 等。 这系列 MCU 拥有着和 AGC (Apollo Guidance Computer) 差不多的 ROM,一倍的 RAM,以及几十倍的频率提升。但是,我觉得它的使用场景确会局限在逻辑控制方面,如 电机控制,传感器数据采集,总线协议转换,电源管理 等等。 这系列 MCU 由于是使用的是新的核心,相对来说相关文档和软件支持就是十分欠缺的。截至到这篇文章发布前,GigaDevice 只提供了 Keil / IAR 的支持。开源工具链方面,GCC 已经支持 Cortex M23/M33,但是由于硬件官方没有提供 GCC 的 startup 文件,需要自己拿 ARM 的 CMSIS 包里的 startup 文件模板自己 Port 对这款 MCU 的支持(当然你要自己写也是可以的,反正也不是什么复杂的东西)。然后同时,硬件官方也没有提供 ld 文件的模板,需要自行编写或者修改 ARM 提供的模板。调试器来说,OpenOCD 完全不支持 M23/M33,同时也没有这款 MCU 的 Flash 驱动,所以要 Port 还是挺耗时间的(主要是读文档)。PyOCD 支持 M23/M33,同时也支持读取 .pack 文件里的 Flash 驱动,唯一的缺点是只支持 CMSIS-DAP 和 ST-Link。然后,FreeRTOS 的最新版本已经提供了 M23 和 M33 的 Port 文件,但是 M23 的文件有问题,需要手工 patch 几个地方。考虑到这是最近一个版本刚支持的,有 BUG 也是可以理解的。 3. 方案介绍+方案系统框图 3.1 物料列表 - GD32E231C-START - SiT8008BIF21-33E-105.000000 - 3225 Breakout Board - Antenna - Several Dupon Wire 3.2 系统框图 BTN =========> GD32E231C8 =========> SiT8008BIF21-33E-105.000000 =========> Antenna =========> Air 3.3 线程列表 - LED 线程:控制 1 个 LED 每 2 秒闪烁一次(开 1 秒 关 1 秒) - RF 线程:Poll 开发板上唯一的按钮,当按钮被按下去后执行 Baseband 生成动作,生成完毕后回到 Poll 按钮状态 4. 照片示例和功能的实现 4.1 首先翻出一片 SiT8008 FP 的裸片,使用 SiTime Time Machine 2 将其编程为 SiT8008BIF21-33E-105.000000 型号。
4.2 将 SiT8008 焊接到 3225 Breakout 板上,然后接上 3.3V 电源,并把 OE 拉到高,然后在 OUT PIN 上直接焊上天线。然后搬出示波器,端口改成 50Ohm 模式,插上一根天线。然后将 SiT8008 的天线放在示波器天线的边上,打开示波器的 FFT 功能,观测三次谐波的幅度。因为没有阻抗匹配网络和带通滤波器,通过空气传输能达到这样的效果令人满意。
4.3 编写代码,写入开发板,然后将 SiT8008 板通过杜邦线连接到开发板,SiT8008 的 OE PIN 连接到开发板的 PA1。然后把整个方案拿到示波器旁,设置成 Single Shot,按下按钮,可以清晰的看到传输出来的 OOK 调制后的信号。然后调整 timebase,看 carrier,打开 FFT,再次确认 315Mhz 的振幅。
5. 代码分享 5.1 本项目代码:GD32-Workshop.zip 5.2 打包好的供开源工具链(GCC+PyOCD+FreeRTOS)下使用的 GD32E23X 的项目模板:https://su.0v0.us/lty1993/gd32e23x-template |
|