
多协议高频头(STM32_NRF24L01)
简介
多协议高频头(STM32_NRF24L01)
简介:多协议高频头(STM32_NRF24L01)开源协议
:GPL 3.0
描述
项目简介
之前做了一个使用atm32主控的nrf24l01高频头,苦于主控闪存不够,无法支持所有的nrf24l01协议,现经某闲鱼神秘大佬的帮助,终于将主控升级为了STM32。能够满血支持所有nrf24l01协议,并切硬件上自带反向器,可以更进一步提高闪存利用率。
项目功能
目前经验证可以正常使用欧兰斯v761协议,且之前使用atm32时的死机bug似乎也一并消失。其他协议因为手里没有对应的接收机,所以暂时无法验证。不过理论上来说,所有nrf24l01的协议都能支持。
项目参数
- 主控采用STM32f103cbt6,闪存128k。
- 升级了type-c接口,程序上传更容易,但type-c焊接难度非常大,也可选择不焊接。上传程序使用usb-ttl工具即可,更为经济方便。(!!!注意 使用usb功能上传程序前仍需先用usb-ttl工具烧录引导程序)
硬件说明
jp1和jp2为跳线,不用焊接元件。根据个人需求短接即可。
JP1:有的遥控器内置了反相器,所以可以不焊接高频头上的反相器,焊接470欧姆电阻并将jp1短接即可。
此为反相器电路
JP2:单片机与射频模块ce引脚预留接口。按理说射频模块的ce引脚应与单片机引脚相连,方便寄存器的写入(泽耀文档说的)?官方的原理图上射频模块的ce引脚也是与单片机相连。但是连上之后,射频模块不工作,一番检查才发现,程序代码中已经删除了ce引脚,在github上也看到有人反应了这个问题,官方给的回复是,直接将ce引脚通过1k或者2.2k电阻接到3.3v即可(丝印2.2k)。但是设计上我仍然保留了,方便一些大佬对协议的调试。
程序烧录
准备!!!
请提前下好arduino1.8.9(不要下最新版,最新版不支持!!!),并根据官方文档添加板子。此为链接
如果提示添加不了请跳到最后一步。
烧录上传
进入multiprotol官方文档
右下角选择realease
下载源代码
解压打开,双击Multiprotocol文件,用arduino打开Multiprotocol.ino
点击右上角小箭头,往下滑找到_config.h,双击
下滑找到这,添加下划线注释这三个射频模块
继续下滑,取消这个注释
最后再注释掉ppm
按丝印接上串口工具,按住boot键并插上电脑,设备应只亮红灯。
接下来右上角选择工具→编程器→stm32flash(FTDI)并烧录引导程序
然后选择开发版→stm32f103cb(128k)
焊接了type_c的选择USB Support:enable
端口根据自己的情况选择,连上了usb的选usb端口号,使用串口工具的选串口工具的端口号。
最后选择项目→验证编译,不报错,再选择→上传
以下内容为离线添加板子过程,板子成功添加的可跳过
文件下载解压缩→打开选择Bootloaders
将package_multi_4in1_board_index.json文件复制并添加到以下路径
C:\Users\用户名\AppData\Local\Arduino15
注意事项
-
!!!注意 通电前一定一定要接天线。
-
!!!注意 使用串口工具请选择3.3v给设备供电,不然会烧毁模块
-
!!!注意 两个22uf电容必须为胆电容,二极管和胆电容焊接请注意极性
-
板子丝印上已预留二维码位置,大小为5×5mm,下单时请选择5×5mm二维码,并选择“在指定位置添加二维码”
-
使用usb功能需先用串口工具烧录好引导程序,烧录好后不按boot插上usb上机,此时电脑应该识别设备为libusb设备,选择程序直接烧录后(不用管端口选择),电脑应该就能正常显示设备的端口号。需先烧录好程序,电脑才能正常显示设备的端口号。
组装流程
焊接!烧录!组装!爽飞!
实物图
特别鸣谢
闲鱼神秘大佬
Multiprotocol
vinvaa & xi0n9Fpv
设计图

BOM


评论