查看: 2164  |  回复: 0
GD32 MCU 开发板 Workshop 报告 - 315Mhz OOK RF 发射器
LTYLTY
3
主题
9
回复
发表于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

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部