## 一、项目名称 adapterBoardDriver ## 二、产品类型 演示板 ## 三、应用场景 无线数据收发、测试通讯距离 ## 四、传感器及驱动接口 无 ## 五、按键 6个 1. `S1`按键可以移动光标(选择的项会反显)向上选择设置项,或向上设置数值,可以循环移动选择 1. `S2`按键可以返回上一个界面 1. `S3`按键可以移动光标(选择的项会反显)向下选择设置项,或向上设置数值,可以循环移动选择 1. `S4`按键功能待定 1. `S5`按键,功能1:开机界面时,按下进入功能选择界面。功能2:确定选择项目。功能3:退出设置状态 ## 六、LED指示灯 2个 1. `D5`蓝色LED,发送成功指示灯灯 2. `D4`红色LED,接收成功指示灯灯 3. ## 七、显示器类型及驱动接口 深圳市晶联讯电子的液晶模块`JLX19296G-382-PN` 该液晶模块支持4线SPI串行接口和IIC接口,本项目使用IIC接口驱动,显示大小192*96 点阵 ## 八、功耗要求 无 ## 九、供电方式 支持三种供电 1. USB的MICRO-B插头供电 1. 3*5号电池供电 1. 2pin的PH座子供电,注意电压不能超过5V ## 十一、尺寸 87mm*131.5mm ## 十二、射频频段 ## 十三、射频芯片方案 ## 十四、主控芯片方案 `AT32F413RCT7`该MCU与`STM32F103RCT6`软硬件兼容 ## 十五、认证要求 无 ## 十六、外部连接接口 1. `P7`串口转USB 1. `J1``J2`MCU的GPIO口 1. `P1`microBIT插槽,用于无线模块转接板连接 1. `P7`MICRO-B类型USB座子,供电 1. `P6`外部供电 1. `P5`仿真烧录接口 ## 十七、编译器 `MDK-ARM Standard Version: 5.14.0.0` ## 十八、编程语言 C99标准 ## 十九、SDK版本 `STM32F10x_StdPeriph_Lib_V3.5.0` ## 二十、功能描述 ### 数据包收发测试 #### 发送测试 #### 接收测试 ### 数据收发软件实现 #### 周期性发送流程 ### 功能参数设置 ## 二十一、备注说明 ### 射频驱动移植 1. 需要将文件夹`radio`中的API全部移植,与硬件相关的已全部定义在`radio/spi.c`中,若目标平台也是C语言环境,将文件夹`radio`中的文件拷贝过来后,只需对应的修改`radio/spi.c`文件中的GPIO定义既可,由于`spi.c`中用到的GPIO是宏定义在`project/board.h`,所以也需要将`radio/board.h`中的定义移植过来。如果MCU平台也是相近的,只需修改`project/board.h`中对应的宏定义即可。 2. 本公司为了统一demo程序,将射频相关的操作重新定义了一层,详见`radio/myRadio.c`,无线应用开发,可以参考借鉴。 ### 射频芯片驱动IO口说明 驱动IO口均定义在`project/board.h`中 ### 无线应用开发注意事项 #### 无线频率 #### 驱动调试 1. 首先保证SPI通讯正常,具体SPI时序需根据射频芯片要求设置,可通过示波器或者逻辑分析仪进行硬件分析 2. SPI通讯正常后,进一步调试查看寄存器操作,读写寄存器,若能正常操作,基本可判定移植成功了 #### 通讯距离 影响无线传输距离的因素 1. 无线电频谱,包括使用的无线频段和无线波特率 2. 发射功率 3. 天线增益,不同增益的天线对无线信号的接收效果影响很大 4. 路径损耗,主要是包括无线使用的周围环境,比如楼宇、树木山峰遮挡 5. 其他的无线信号干扰 ## 二十二、软件开发 ### 开发注意事项 ### 工程文件架构 ```c ..\adapterBoardDriver_xxxxxxxxxxxxxxx_Vxx ├──app \\常用应用模块封装 | └── ├──core \\MCU内核文件 | └── ├──STM32F10x_FWLib \\MCU官方库函数 └── ├──image \\md文件显示用的图片 | └── ├──keil_v5 \\keil编译器工程文件,包含编译生成的HEX文件 | └──Object \\编译生成的HEX文件在此文件夹 ├──peripheral \\项目用到的MCU外设 | └── ├──project \\项目的主函数和GPIO定义包含文件 | └── ├──radio \\射频底层驱动文件 | └──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. 其他,官方未定义,属于第三方定义的常用API,不同厂家的射频方案不一定都能用 ### 版本更新 #### V09 - 简化`./radio/spi.c`的spi操作接口 #### V11 2024年10月15日 - 增加发射功率设置 #### V12 #### V13 2024年11月26日 - 优化射频驱动,RF_TxData增加1ms延时 #### V14 2024年11月28日 - 修复发送数据fifo不更新,发送的是上一次的数据,调整`RF.c`的`RF_TxData`和`RF_TxData` ## 二十三、免责说明 1、本工程驱动软件只提供做演示项目使用,未经过大批量项目验证,客户需谨慎使用,如果使用在正式项目中引发的所有问题,本司概不负责。使用过程若发现任何问题,可及时与本司相关人员联系。 2、本工程所有文件可以用于商业性项目移植,无需向本司申请。