南京做网站南京乐识专注,东莞建网站公司排名,wordpress虚拟插件,怎么套模板做网站文章目录 一、无线模块开发测试准备二、开发板硬件三、开发板默认功能上电默认界面功能选择界面数据包发送界面数据包接收显示界面射频性能测试界面参数设置界面固件信息显示界面 四、软件开发软件SDK框图1、射频硬件驱动#xff08;详见./radio/myRadio_gpio.c#xff09;2、… 文章目录 一、无线模块开发测试准备二、开发板硬件三、开发板默认功能上电默认界面功能选择界面数据包发送界面数据包接收显示界面射频性能测试界面参数设置界面固件信息显示界面 四、软件开发软件SDK框图1、射频硬件驱动详见./radio/myRadio_gpio.c2、无线底层驱动API详见./radio/其他.c3、无线操作API详见./radio/myRadio.c 软件移植软件架构说明 一、无线模块开发测试准备
开发板2套包含主板、模块转接板、无线模块 用于做收发测试默认出厂烧录 adapterBoardDriver_xxxxxxxxxxxxxxx工程的固件 模块转接板模块转接板可以焊接不同型号的无线模块然后通过金手指与开发板连接开发软件包 adapterBoardDriver_xxxxxxxxxxxxxxx带屏幕显示的工程可以选择更多的功能操作VGKitBoard_xxxxxxx_easyDemo_V01不带屏幕显示收发测试有LED指示灯指示radio无线模块驱动库
二、开发板硬件
供电
支持3种供电方式可以通过拨动开关选择 3节5号电池USB数据线供电2.54端子外接
显示屏 JLX19296G-382
按键 5个功能操作按键1个主控复位按键
S1按键向上移动光标S3按键向下移动光标S2按键返回上一个界面S4按键预留S5按键进入下一个界面设置确定开始RST按键主控复位
金手指连接器P1 PCIE连接器52PINH5.2 可以通过主板上的排针选择输出到转接板的供电
USB座子P7 Micro-B座子
供电串口转USB连接电脑可通过串口进行无线数据收发、固件更新升级按住S5按键上电即可进入固件升级模式
SWD烧录接口P5 可以接J-link仿真器、DAP仿真器或其他烧录器
三、开发板默认功能 开发板出厂默认烧录带屏幕显示的工程的固件用户拿到开发板后可以进行无线模块的收发测试可以设置不同的频点信道、发射功率、无线波特率等。
上电默认界面
功能选择界面
数据包发送界面
数据包接收显示界面
射频性能测试界面
参数设置界面
固件信息显示界面
四、软件开发
软件SDK框图 根据框图可知与无线操作有关的软件主要集中在无线操作API、无线底层驱动API、射频硬件驱动只要熟悉了这3个部分无线应用的开发就可以如鱼得水了SDK里的其他部分都是为了项目的功能实现而来的需要根据不同的MCU平台和项目需求来实现和调用。 接下来详细介绍下这3部分的软件实现
1、射频硬件驱动详见./radio/myRadio_gpio.c 大部分的无线模块要想运行起来都是通过SPI接口驱动SPI接口又分3线和4线模块操作的时候基本是通过操作寄存器所以对于SPI接口只需要把SPI的字节操作接口封装好对于寄存器操作来说3线或者4线基本没有区别比如台湾笙科的A7169支持3线和4线SPI驱动如果有省IO口的需求可以在3线和4线SPI选择方面做优化。 射频硬件驱动操作一般包括SPI接口初始化、无线响应触发中断IRQ信号、辅助IO比如磐启的PAN3020有模式控制脚CECMOSTEK的CMT2300A有内存访问片选脚CSB和FCSB
SPI接口初始化 注意事项
数据长度DataSize一般是8bit极性Clock_Polarity极性是指SPI的时钟脚clk空闲时的电平是低电平还是高电平这个每个无线模块的要求可能会不一样边沿Clock_Phase即是在clk的上升沿还是下降沿收发数据片选Slave_Select_management一般如果是使用硬件SPI的时候要特别注意。由于SPI通讯是一种总线通讯即总线上可以并联多个SPI设备所以可以将多个无线模块的spi引脚并联接在一起然后通过片选脚选择不同的模块进行操作这时每个模块的片选择都要独立控制MISO、MOSI、CLK这三个脚可以都并联接一起。
无线响应触发中断IRQ信号 注意事项 一般的无线模块都有一个引脚用来做一些状态响应的中断信号虽然有些无线模块可以通过寄存器查询的方式查询状态响应但是这种做法是不够明智的特别是在接收模式下频繁操作SPI会影响无线的底噪对于无线通讯来说这是很致命的通讯距离会大打折扣。 这个信号可以通过外部中断来接收或者查看电平的方式。比如发送数据时发送完成或者发送出错模块都会通过这脚输出一个电平翻转信号出来知道用户操作了SPI或者清除相关中断寄存器。翻转为高电平或者低电平可查看对应的芯片引脚说明。
辅助IO 注意事项
2、无线底层驱动API详见./radio/其他.c 这部分代码一般是基于SPI驱动封装一些无线模块的寄存器操作比如寄存器的读写和一些无线模块的基本功能操作比如射频寄存器的初始化、PLL校准等这部分驱动基本是要射频芯片原厂来提供一颗无线模块性能的好坏7分看原厂提供的这部分SDK的优化程度。
3、无线操作API详见./radio/myRadio.c 这部分API是同时对接应用层和底层驱动层用的可以说是起到承上启下的作用更是为了方便应用层兼容不同厂家的射频芯片的驱动。因为每个芯片厂家提供驱动的封装都基本不一样所以封装这一层API是为了给用户提供更好的API操作统一应用层的无线操作API
软件移植 对于单片机嵌入式开发每个项目的开发环境都不尽相同这时要想模块在对应的项目平台上跑起来就需要将相应的驱动移植过来
软件架构说明
..\adapterBoardDriver_xxxxxxxxxxxxxxx_Vxx
├──app \\常用应用模块封装
| └──
├──core \\MCU内核文件
| └──
├──STM32F10x_FWLib \\MCU官方库函数└──
├──image \\md文件显示用的图片
| └──
├──keil_v5 \\keil编译器工程文件包含编译生成的HEX文件
| └──Object \\编译生成的HEX文件在此文件夹
├──peripheral \\项目用到的MCU外设
| └──
├──project \\项目的主函数和GPIO定义包含文件
| └──main.c
├──radio \\射频底层驱动文件
| ├──myRadio_gpio.c \\射频驱动接口硬件初始化
| └──myRadio.c \\为无线应用通用封装API
| └──其他.c \\为无线底层封装API