Tidak Ada Deskripsi

dropLin d0a01deb45 修复循环发送 1 Minggu lalu
STM32F10x_FWLib 71ce01b7b0 first commit 3 bulan lalu
app 71ce01b7b0 first commit 3 bulan lalu
core 71ce01b7b0 first commit 3 bulan lalu
keil_v5 71ce01b7b0 first commit 3 bulan lalu
peripheral 71ce01b7b0 first commit 3 bulan lalu
project d0a01deb45 修复循环发送 1 Minggu lalu
radio 71ce01b7b0 first commit 3 bulan lalu
.gitignore 71ce01b7b0 first commit 3 bulan lalu
README.md 71ce01b7b0 first commit 3 bulan lalu
keilkilll.bat 71ce01b7b0 first commit 3 bulan lalu

README.md

一、项目名称

adapterBoardDriver

二、产品类型

演示板

三、应用场景

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

四、传感器及驱动接口

五、按键

6个

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

dfsdfsdfsd dsdfsd

六、LED指示灯

2个

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

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

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

    八、功耗要求

    九、供电方式

    支持三种供电

  3. USB的MICRO-B插头供电

  4. 3*5号电池供电

  5. 2pin的PH座子供电,注意电压不能超过5V

    十一、尺寸

    87mm*131.5mm

    十二、射频频段

    2400MHz

    十三、射频芯片方案

    NRF24L01PSi24R1

    十四、主控芯片方案

    AT32F413RCT7该MCU与STM32F103RCT6软硬件兼容

    十五、认证要求

    十六、外部连接接口

  6. P7串口转USB

  7. J1J2MCU的GPIO口

  8. P1microBIT插槽,用于无线模块转接板连接

  9. P7MICRO-B类型USB座子,供电

  10. P6外部供电

  11. P5仿真烧录接口

    十七、编译器

    MDK-ARM Standard Version: 5.14.0.0

    十八、编程语言

    C99标准

    十九、SDK版本

    STM32F10x_StdPeriph_Lib_V3.5.0

    二十、功能描述

数据包收发测试

发送测试

主界面-->按键S5-->功能选择Enter RF Transmiter-->按键S5-->进入Packet Tx-->按键S5-->开始发送,同时START会闪烁显示 发送完成后,6S内收到ACK,会立即触发重新发送,同时会重新设置重发超时时间(从开始发送到接收到ACK的时间),超时后自动重发,超时重发10次后,重发超时时间自动切换回6S。 发送成功D5蓝色LED灯闪烁一下。

如图

  1. 413ms为从开始发送到无线收到对方回复的应答所消耗的时间,若该处显示OUT,则表示接收等待ACK超时。
  2. 100%为统计的丢包率,重新按下按键S5重新计数
  3. hello world?为无线收到的数据包,其中的?位置的字符每次都会不一样
  4. -004dBm为最新一次无线收到的数据包的信号强度

    接收测试

    主界面-->按键S5-->功能选择Enter RF Receiver-->按键S5-->进入Packet Rx-->按键S5-->开始接收,同时START会闪烁显示 收到数据后D4红色LED灯闪烁一下

如图

  1. 11.67mA为当前无线模组的工作电流
  2. -13dBm为最新一次无线收到的数据包的信号强度
  3. hello world2hello world3hello world4为无线收到的3个数据包,收到新的数据包时显示会向上滚动

功能参数设置

主界面-->按键S5-->功能选择Enter RF Setting-->按键S5-->进入Setting,按下S1或者S3切换设置项目,确定需要设置的项目后,按下S5进行参数设置,该项的光标会闪烁显示,此时可通过按键S1或者S3上下调节参数。再按下S5退出设置,即可选择其他选项设置。

  1. Type,设置选择对应的模组型号,当前demo板的固件可能会兼容多个型号的模组,比如以下型号的模组可以共用一套驱动固件

    1. VG3512S240N0M1
    2. VG35R2S240N0M1
    3. VG3512S240X0M1
    4. VG35R2S240X0M1
  2. Chnl,设置当前模组的无线信道,信道对应的无线率会根据Type类型和Step信道间隔的设置而改变

  3. Step,信道间隔,即每个信道之间的频率带宽,该设置需根据实际情况而定,不宜太小,过小的间隔可能会造成不同信道的设备串频造成干扰。

  4. TxPower,无线发射功率。发射功率越大,功耗越高,相应的通讯距离也会越远

  5. RfBr,无线波特率。无线波特率的大小即传输速率的大小,无线波特率越大,传输消耗时间越小,相应的传输距离越短,反之则越远。最终的通讯距离,在排除外在因素的情况下,可以从无线发射功率和无线波特率这两个参数评估

    二十一、备注说明

    射频驱动移植

  6. 需要将文件夹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中对应的宏定义即可。

  7. 本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见radio/myRadio.c,无线应用开发,可以参考借鉴。

    射频芯片驱动IO口说明

    驱动IO口均定义在project/board.h

    1. BOARD_GPIO_SPI_CLK
    2. BOARD_GPIO_SPI_MISO
    3. BOARD_GPIO_SPI_MOSI
    4. BOARD_GPIO_SPI_CSN
    5. BOARD_GPIO_SPI_GPIOA -> 直连射频芯片的RST引脚,上电初始化需要用到
    6. BOARD_GPIO_SPI_GPIOB -> 直连射频芯片的IO1引脚,用于接收芯片操作的中断响应输出指示,本工程该引脚用于做发送接收中断响应指示,用户可以配置中断映射功能
    7. BOARD_GPIO_SPI_GPIOC -> 直连射频芯片的IO3引脚,用于接收芯片操作的中断响应输出指示,本工程该引脚未使用,用户可以配置中断映射功能
    8. BOARD_GPIO_SPI_GPIOD -> 直连射频芯片的busy引脚,用于检测射频芯片工作状态是否忙状态,
    9. 其他IO口未使用,可根据实际情况移植

      无线应用开发注意事项

      无线频率

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

    驱动调试

  9. 首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析

  10. SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了

    通讯距离

    影响无线传输距离的因素

  11. 无线电频谱,包括使用的无线频段和无线波特率

  12. 发射功率

  13. 天线增益,不同增益的天线对无线信号的接收效果影响很大

  14. 路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡

  15. 其他的无线信号干扰

    二十二、软件开发

    template Version

    V04

    工程文件架构

    ..\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

  16. 初始化-void myRadio_init(int agr0, void *agr1_ptr) 射频芯片驱动IO口初始化-myRadio_gpio_init() 射频基本参数初始化

  17. 射频运行底层执行API-void myRadio_process(void) 放在while循环中执行

  18. 射频进入休眠API-void myRadio_abort(void)

  19. 获取无线中心频率-uint32_t myRadio_getFrequency(void)

  20. 设置无线中心频率-void myRadio_setFrequency(uint32_t freq)

  21. 获取发射功率-int8_t myRadio_getTxPower(void)

  22. 设置发射功率-void myRadio_setTxPower(int8_t power)

  23. 获取无线波特率-uint8_t myRadio_getBaudrate(void)

  24. 设置无线波特率-void myRadio_setBaudrate(uint8_t br)

  25. 进入数据包发射模式-void myRadio_transmit(rfTxPacket_ts *packet)

  26. 进入数据包接收模式-void myRadio_receiver(void)

  27. 无线特殊模式功能-void myRadio_setCtrl(controlMode_te mode, uint32_t value) 单载波发射功能,预留 进入direct模式,预留 连续调制波,预留

  28. 射频中断回调函数void myRadio_gpioCallback(uint8_t index) 外部中断检测定义在myRadio_gpio.c

  29. 其他,官方未定义,属于第三方定义的常用API,不同厂家的射频方案不一定都能用

    版本更新

    V04

二十三、免责说明

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