适用于笙科的A7169射频芯片以及相关射频模块

dropLin 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
STM32F10x_FWLib 0602c78617 第一次提交 5 bulan lalu
app 0602c78617 第一次提交 5 bulan lalu
core 0602c78617 第一次提交 5 bulan lalu
keil_v5 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
peripheral 0602c78617 第一次提交 5 bulan lalu
project 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
radio 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
.gitignore 9b5ae23730 删除图片 5 bulan lalu
README.md 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
datasheet.md 980cdd8f73 增加无线寄存器设置,修改readme 3 minggu lalu
keilkilll.bat 0602c78617 第一次提交 5 bulan lalu

README.md

一、项目名称

adapterBoardDriver

二、产品类型

演示板

三、应用场景

无线数据收发、测试通讯距离

四、传感器及驱动接口

五、按键

6个

  1. S1按键可以移动光标(选择的项会反显)向上选择设置项,或向上设置数值,可以循环移动选择
  2. S2按键可以返回上一个界面
  3. S3按键可以移动光标(选择的项会反显)向下选择设置项,或向上设置数值,可以循环移动选择
  4. S4按键功能待定
  5. S5按键,功能1:开机界面时,按下进入功能选择界面。功能2:确定选择项目。功能3:退出设置状态

六、LED指示灯

2个

  1. D5蓝色LED,发送成功指示灯灯
  2. D4红色LED,接收成功指示灯灯

七、显示器类型及驱动接口

深圳市晶联讯电子的液晶模块JLX19296G-382-PN 该液晶模块支持4线SPI串行接口和IIC接口,本项目使用IIC接口驱动,显示大小192*96 点阵

八、功耗要求

九、供电方式

支持三种供电

  1. USB的MICRO-B插头供电
  2. 3*5号电池供电
  3. 2pin的PH座子供电,注意电压不能超过5V

十一、尺寸

87mm*131.5mm

十二、射频频段

433MHz、490MHz、868MHz、915MHz

十三、射频芯片方案

A7169

十四、主控芯片方案

AT32F413RCT7该MCU与STM32F103RCT6软硬件兼容

十五、认证要求

十六、外部连接接口

  1. P7串口转USB
  2. J1J2MCU的GPIO口
  3. P1microBIT插槽,用于无线模块转接板连接
  4. P7MICRO-B类型USB座子,供电
  5. P6外部供电
  6. P5仿真烧录接口

十七、编译器

MDK-ARM Standard Version: 5.14.0.0

十八、编程语言

C99标准

十九、SDK版本

STM32F10x_StdPeriph_Lib_V3.5.0

二十、功能描述

数据包收发测试

发送测试

接收测试

功能参数设置

二十一、备注说明

射频驱动移植

  1. 需要将文件夹radio中的API全部移植,与硬件相关的已全部定义在radio/myRadio_gpio.c中,若目标平台也是C语言环境,将文件夹radio中的文件拷贝过来后,只需对应的修改radio/myRadio_gpio.c文件中的GPIO定义既可,由于myRadio_gpio.c中用到的GPIO是宏定义在project/board.h,所以也需要将radio/board.h中的定义移植过来。如果MCU平台也是相近的,只需修改project/board.h中对应的宏定义即可。
  2. 本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见radio/myRadio.c,无线应用开发,可以参考借鉴。

射频芯片驱动IO口说明

无线应用开发注意事项

无线频率

  1. 避免使用中心频率为射频芯片使用的晶体频率整数倍的,比如晶体频率为32MHz,就需要避免使用448MHz的中心频点

驱动调试

  1. 首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析
  2. SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了

通讯距离

影响无线传输距离的因素

  1. 无线电频谱,包括使用的无线频段和无线波特率
  2. 发射功率
  3. 天线增益,不同增益的天线对无线信号的接收效果影响很大
  4. 路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡
  5. 其他的无线信号干扰

二十二、软件开发

template Version

V04

A7169寄存器解释

规格书的章节9.1 Control Register Table的寄存器分为3部分,

  1. 基础寄存器,地址:0x00~0x0f,Systemclock--
  2. PAGEA寄存器,地址:0x00~0x0f
  3. PAGEB寄存器,地址:0x00~0x34
  4. A739电流功耗

  5. SLEEP:1.5uA

  6. DEEP SLEEP:0.5uA

  7. Stand:0.45mA

  8. RX:3.8mA

  9. TX:xmA

  10. SPI

    RF芯片在下降沿的时候改变数据状态 MCU可以在上升沿后读取spi数据

RF在上升沿的时候读取SDIO的状态

工程文件架构

..\adapterBoardDriver_xxxxxxxxxxxxxxx_Vxx
├──app \\常用应用模块封装
|  └──
├──core    \\MCU内核文件
|  └──
├──STM32F10x_FWLib \\MCU官方库函数
   └──
├──image   \\md文件显示用的图片
|  └──
├──keil_v5 \\keil编译器工程文件,包含编译生成的HEX文件
|  └──Object  \\编译生成的HEX文件在此文件夹
├──peripheral  \\项目用到的MCU外设
|  └──
├──project \\项目的主函数和GPIO定义包含文件
|  └──
├──radio   \\射频底层驱动文件
|  ├──myRadio_gpio.c  \\射频驱动接口硬件初始化
|  └──myRadio.c   \\为无线应用通用封装API

无线应用通用封装API-radio/myRadio.c

  1. 初始化-void myRadio_init(int agr0, void *agr1_ptr) 射频芯片驱动IO口初始化-myRadio_gpio_init() 射频基本参数初始化
  2. 射频运行底层执行API-void myRadio_process(void) 放在while循环中执行
  3. 射频进入休眠API-void myRadio_abort(void)
  4. 获取无线中心频率-uint32_t myRadio_getFrequency(void)
  5. 设置无线中心频率-void myRadio_setFrequency(uint32_t freq)
  6. 获取发射功率-int8_t myRadio_getTxPower(void)
  7. 设置发射功率-void myRadio_setTxPower(int8_t power)
  8. 获取无线波特率-uint8_t myRadio_getBaudrate(void)
  9. 设置无线波特率-void myRadio_setBaudrate(uint8_t br)
  10. 进入数据包发射模式-void myRadio_transmit(rfTxPacket_ts *packet)
  11. 进入数据包接收模式-void myRadio_receiver(void)
  12. 无线特殊模式功能-void myRadio_setCtrl(controlMode_te mode, uint32_t value) 单载波发射功能,预留 进入direct模式,预留 连续调制波,预留
  13. 射频中断回调函数void myRadio_gpioCallback(uint8_t index) 外部中断检测定义在myRadio_gpio.c
  14. 其他,官方未定义,属于第三方定义的常用API,不同厂家的射频方案不一定都能用

版本更新

V01

  1. 初始版本

V02

  1. 修复中心频点设置myRadio_setFrequency,适配868,915频段设置

V03

  1. 增加无线寄存器设置

二十三、免责说明

1、本工程驱动软件只提供做演示项目使用,未经过大批量项目验证,客户需谨慎使用,如果使用在正式项目中引发的所有问题,本司概不负责。使用过程若发现任何问题,可及时与本司相关人员联系。 2、本工程所有文件可以用于商业性项目移植,无需向本司申请。