Ei kuvausta

dropLin 896438f443 更新reamde 9 kuukautta sitten
STM32F10x_FWLib 5ccd9513b5 第一次提交 10 kuukautta sitten
app 5ccd9513b5 第一次提交 10 kuukautta sitten
core 5ccd9513b5 第一次提交 10 kuukautta sitten
keil_v5 5ccd9513b5 第一次提交 10 kuukautta sitten
peripheral 5ccd9513b5 第一次提交 10 kuukautta sitten
project 5ccd9513b5 第一次提交 10 kuukautta sitten
radio 5ccd9513b5 第一次提交 10 kuukautta sitten
.gitignore e866243a44 删除图片 10 kuukautta sitten
README.md 896438f443 更新reamde 9 kuukautta sitten
keilkilll.bat 5ccd9513b5 第一次提交 10 kuukautta sitten

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

十三、射频芯片方案

SX1268SX1262LLCC68

十四、主控芯片方案

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

    射频驱动

    V3.2.1

    二十、功能描述

数据包收发测试

发送测试

主界面-->按键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. VG2379S433N0S1
    2. VG2379S490N0S1
    3. VG2373S868N0S1
    4. VG2373S915N0S1
    5. VGdd79S170N0S1
    6. VGdd79S433N0S1
    7. VGdd79S490N0S1
    8. VGdd79S868N0S1
    9. VGdd79S915N0S1
  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,所以也需要将board.h中的定义移植过来。如果MCU平台也是相近的,只需修改project/board.h中对应的宏定义即可。

  7. 本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见app/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. 其他的无线信号干扰

    二十二、软件开发

    工程文件架构

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

    无线应用通用封装API-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,不同厂家的射频方案不一定都能用

二十三、免责说明

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