一款支持USB转SPI、USB转I2C、USB转GPIO、USB转PWM、USB转ADC的模块。提供上位机工具,开发协议。
资料下载,链接:https://pan.baidu.com/s/1sw3RCMwjhrMO4qzUBq9bjA 提取码:qzjp
-
概述
串口转多协议模组为了客户调试一些功能简单化,目前有串口转GPIO、串口转PWM、串口转ADC、串口转I2C、串口转SPI等功能。未来会根据客户反馈需求做升级。提供简易的上位机开发测试,帮助客户快速使用然后实现自己开发。提供协议文档,客户可以根据协议实现自己控制,并将模块融入自己的设备中。
串口采用固定的921600波特率、8位数据格式、1停止位、无奇偶效验位的配置。模组采用DMA接收结合串口空闲中断方式接收数据包,所以不要多包控制指令一起发出,包之间发送间隔大于10us延时。
-
硬件接口
功能 |
数量 |
UART转GPIO |
8 |
UART转PWM |
2 |
UART转ADC |
4 |
UART转I2C |
1 |
UART转SPI |
1 |
- 协议组成
协议总体分成两个包,一级包和二级包,二级数据包是以及数据包的子包。一级数据包分为:数据头(4字节)、长度(2字节)、操作功能(1字节)、效验位(1字节)、data包(二级包,最大10340字节)。协议都是针对上位机到下位机的数据。
1.一级协议包,十六进制格式
数据头 |
长度 |
操作功能 |
效验位 |
数据(二级包) |
0xFACEFACE |
0x0004 |
0x00:OTA 0x01:GPIO 0x02:I2C 0x03:SPI 0x04:PWM 0x05:ADC |
crc8 |
data[10340] |
数据头 :固定0xFACEFACE,四字节。
长度 :除去数据头,所有数据的长度。高字节在前,固定2字节。
操作功能:确定包的功能,固定1字节。
效验位 :自身为0时,除去数据头所有数据的效验和,固定1字节。
数据 :二级数据包数据,根据操作功能有不同的协议。最大10340字节。
2.二级数据包,十六进制格式
2.1 GPIO协议,2字节
引脚号 |
状态设置 |
0x00:GPIO_0 0x01:GPIO_1 0x02:GPIO_2 0x03:GPIO_3 0x04:GPIO_4 0x05:GPIO_4 0x06:GPIO_4 0x07:GPIO_4 0xFF:所有引脚 |
0x00:低电平 0x01:高电平 0x02:电平反转 |
应答
ok |
操作成功 |
例:FA CE FA CE 00 06 01 09 02 00
数据头 : FACEFACE
长度 : 00 06
操作功能: 01
效验位 : 09
数据 : 02(GPIO_2) 00(低电平)
2.2 PWM协议,3字节
PWM为20KHZ,占空比参数为0~1000
通道号 |
占空比 |
0x00:PWM0 0x01:PWM1 |
0x0000:高电平占比0% 0x03E8:高电平占比100% |
应答
ok |
操作成功 |
例:FA CE FA CE 00 07 04 00 00 01 F4
数据头 : FACEFACE
长度 : 00 07
操作功能: 04
效验位 : 00
数据 : 00(PWM0) 01F4(高电平占比50%)
2.3 ADC协议,1字节
通道号 |
0x00:ADC0 0x01:ADC1 0x02:ADC2 0x03:ADC3 |
应答
浮点型数据 |
操作成功 |
例:FA CE FA CE 00 05 05 0C 02
数据头 : FACEFACE
长度 : 00 05
操作功能: 05
效验位 : 0C
数据 : 02(ADC2)
2.4 I2C协议
I2C速率 |
设备地址 |
寄存器地址 |
读/写 |
数据长度 |
数据 |
0x00:10K 0x01:20K 0x02:50K 0x03:100K 0x00:400K |
7位地址 |
1字节寄存器 |
0x00:写数据 0x01:读数据 0x02:寻地址 |
2字节长度 |
最大10240字节 |
应答
读取数据时,如果读取正常则直接返回读取到的数据。 |
寻址时会直接返回扫描到的设备地址,期间大概耗时2秒。 |
I2C速率 :固定1字节,用来控制I2C速率。
设备地址 :固定1字节,设备的7位地址。
寄存器地址 :固定1字节,适用8位寄存器地址的设备。
读写 :固定1字节,读写操作,额外增加寻找总线上从设备地址功能。
数据长度 :固定2字节,高字节在前。
数据 :写数据时,存放的数据。
例:FA CE FA CE 00 0A 02 EB 00 68 75 01 00 01
数据头 : FACEFACE
长度 : 00 0A
操作功能: 02
效验位 : EB
数据 : 00(10K) 68(设备地址) 75(寄存器地址) 01(读) 00 01(1字节长度)
2.5 SPI协议
基本配置(1字节) |
速率 |
读写 |
数据长度 |
数据 |
|||||
片选 |
片选 极性 |
SCK空闲电平 |
采样边沿 |
数据宽 度 |
数据顺序 |
||||
000:通道0 001:预留 010:预留 011:预留 |
0:低有效 1:高有效 |
0:低 1:高 |
0:第一个 1:第二个 |
0:8位 1:预留 |
0:MSB 1:LSB |
00:60M 01:30M 02:15M 03:7.5M 04: 05: 06: 07 : |
00:写 01:读 02:写读 |
高字节在前 |
存放需要写入的数据 |
3bit |
1bit |
1bit |
1bit |
1bit |
1bit |
1字节 |
1字节 |
(2字节) |
最大10240字节 |
应答
读取数据时,如果读取正常则直接返回读取到的数据。 |
基本配置:占用1字节,可以配置片选、片选极性、SCK空闲电平、采样边沿、数据宽度、
数据顺序功能,配置是通过位来实现。例:0x0A (0000 1100):000(通道0)
0(片选低有效)1(SCK空闲高)1(第二个跳变沿采样)0(8位)0(MSB)。
速率 :固定1字节,用来控制SPI的速率。
读写 :固定1字节,用来控制读写功能。
数据长度:固定2字节,高字节在前。
数据 :用来存放需要写入的数据,读取的时候用不到。文章来源:https://www.toymoban.com/news/detail-801070.html
文章来源地址https://www.toymoban.com/news/detail-801070.html
到了这里,关于USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!