Không có mô tả

dropLin d59a124244 修复keil的配置 1 tháng trước cách đây
STM32F10x_FWLib c0f6add953 sdfsd 11 tháng trước cách đây
app c0f6add953 sdfsd 11 tháng trước cách đây
core c0f6add953 sdfsd 11 tháng trước cách đây
keil_v5 d59a124244 修复keil的配置 1 tháng trước cách đây
peripheral c0f6add953 sdfsd 11 tháng trước cách đây
project b10d4de11a 增加1W模块支持 1 tháng trước cách đây
radio b10d4de11a 增加1W模块支持 1 tháng trước cách đây
.gitignore c0f6add953 sdfsd 11 tháng trước cách đây
README.md 66fa0261b3 更新readme 1 tháng trước cách đây
gitFocePushRemote.bat b10d4de11a 增加1W模块支持 1 tháng trước cách đây
keilkilll.bat c0f6add953 sdfsd 11 tháng trước cách đây

README.md

一、项目名称

adapterBoardDriver

二、产品类型

演示板

三、应用场景

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

四、传感器及驱动接口

五、按键

6个

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

    六、LED指示灯

    2个

  6. D5蓝色LED,发送成功指示灯灯

  7. D4红色LED,接收成功指示灯灯

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

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

    八、功耗要求

    九、供电方式

    支持三种供电

  8. USB的MICRO-B插头供电

  9. 3*5号电池供电

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

    十一、尺寸

    87mm*131.5mm

    十二、射频频段

    433MHz、490MHz、510MHz、868MHz、915MHz

    十三、射频芯片方案

    CMT2300A

    十四、主控芯片方案

    AT32F413RCT7该MCU与STM32F103RCT6软硬件兼容

    十五、认证要求

    十六、外部连接接口

  11. P7串口转USB

  12. J1J2MCU的GPIO口

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

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

  15. P6外部供电

  16. P5仿真烧录接口

    十七、编译器

    MDK-ARM Standard Version: 5.14.0.0

    十八、编程语言

    C99标准

    十九、SDK版本

    STM32F10x_StdPeriph_Lib_V3.5.0

    二十、功能描述

无线通讯开发注意事项

  • 无线频率
    1. 避免使用中心频率为射频芯片使用的晶体频率整数倍的,比如晶体频率为32MHz,就需要避免使用448MHz的中心频点
  • SPI驱动调试
    1. 首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析
    2. SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了
    3. 直观判断可以看射频初始化的时候ret = rf_init();这个返回值是否等于OK
  • 通讯距离 影响无线传输距离的因素
    1. 无线电频谱,包括使用的无线频段和无线波特率,原则上无线波特率越低,无线信号传播距离越远,但是时间延迟也越大
    2. 发射功率,原则上发射功率越大,无线信号传播距离越远
    3. 天线增益,不同增益的天线对无线信号的接收效果影响很大
    4. 路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡
    5. 其他的无线信号干扰

编译软件工具KEIL篇

编译参数选择

keil工程已经设置了4个选项:

  • projecet_AT:表示该工程的MCU型号选择的是雅特力AT32F413RCT7单片机,不带自定义boot功能,即不设置偏移地址
  • projecet_ST:表示该工程的MCU型号选择的是ST意法半导体STM32F103RCT6单片机,不带自定义boot功能,即不设置偏移地址
  • projecet_AT_APP:表示该工程的MCU型号选择的是雅特力AT32F413RCT7单片机,带自定义boot功能,设置偏移地址为0x000C800
  • projecet_ST_APP:表示该工程的MCU型号选择的是ST意法半导体STM32F103RCT6单片机,带自定义boot功能,设置偏移地址为0x000C800

模块演示板出厂默认烧录project_ST_APP工程,该工程是带boot功能的,默认选择的Debug工具是CMSIS-DAP Debugger工具,在Option->Debug->Setting->Flash Download->Programming Algorithm->Start中设置了起始地址,如果更换了Debug工具,起始地址会恢复默认,需要重新设置起始地址。

二十一、备注说明

射频驱动移植

  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口说明

    驱动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口未使用,可根据实际情况移植

      无线应用开发注意事项

      无线频率

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

    驱动调试

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

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

    通讯距离

    影响无线传输距离的因素

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

  7. 发射功率

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

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

  10. 其他的无线信号干扰

    二十二、软件开发

    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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    版本更新

    V04

二十三、免责说明

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