USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块

        一款支持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字节,高字节在前。

数据       :用来存放需要写入的数据,读取的时候用不到。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/410989.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gin+gorm增删改查目录框架

从网上找资料,发现,很多都是直接的结构 路由,后端的controller层,还有model层,都是放在了同一个main.go文件中,如果写项目的话,还得自己去拆文件,拆代码,经过查询和自己总结,下面放…

Numpy的学习 第一课 了解以及使用

1.输入模式 1.编辑模式 绿色2.命令模式 蓝色 2.运行 直接输入jupyter notebook 3.文档注释 查看函数帮助文档命令 help(函数) 单问号与多问号 单问号显示文档 多问号显示文档代码 3.shifttab 显示参数 4.运行外部文件 %run 路径,可绝对可相对 这里运行了就相当于方法了,或者…

【已解决】fatal: Authentication failed for ‘https://github.com/.../‘

文章目录 异常原因解决方法 异常原因 在 Linux 服务器上使用git push命令,输入用户名和密码之后,总会显示一个报错: fatal: Authentication failed for https://github.com/TianJiaQi-Code/Linux.git/ # 致命:无法通过验证访问起…

虚拟机 以及 Centos 7的 安装全过程

目录 安装VMwere Workstion 虚拟机的操作过程 CentOS 7 安装过程 install CentOS 7 安装操作系统 安装VMwere Workstion 虚拟机的操作过程 更改安装位置 到下面图片中的这一个步骤,可以点击许可证,输入密钥就可以使用了, 密钥可以去某度或…

【征服redis8】Redis的AOF持久化

Redis 支持多种持久化方式来保证数据的可靠性和持久性。前面我们介绍了RDB方式。我们我们介绍第二种方式——AOF(Append Only File)机制是一种常用的持久化方式,它记录了所有对 Redis 数据库进行修改的命令,在 Redis 重启时可以使…

Python实战 -- PySide6 制作天气查询软件

一、环境准备 开发环境:Python 3.9.2 pycharm PySide6 申请天气情况 API :https://console.amap.com/dev/key/app designer 设计 ui 目录下 Weather.ui 转换为 Weather.py 结果显示 二、完整代码 import sysfrom PySide6 import QtWidgetsimport…

【Docker】Docker基础教程

🦖我是Sam9029,一个前端 🐱‍🐉🐱‍🐉恭喜你,若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍 基…

unity SqLite读取行和列

项目文件 链接:https://pan.baidu.com/s/1BabHvQ-y0kX_w15r7UvIGQ 提取码:emsg –来自百度网盘超级会员V6的分享 using System.Collections; using System.Collections.Generic; using UnityEngine; using Mono.Data.Sqlite; using System; using Syste…

华为设备VRRP配置

核心代码: 需要对所有虚拟路由器设置(要进入到对应的端口) vrrp vrid 38 virtual-ip 192.168.10.254 vrrp vrid 38 priority 120 vrrp vrid 38 track int g0/0/1 reduced 30①mac由vrid生成 ②指定虚拟ip ③虚拟ip作为内部主机的网关&#x…

c语言嵌套循环

c语言嵌套循环 c语言嵌套循环 c语言嵌套循环一、c语言嵌套循环格式二、嵌套循环案例九九惩罚口诀 一、c语言嵌套循环格式 for(初始值;表达式;表达式) {for(初始值;表达式;表达式){代码} }int main() {for (…

2023年的年度总结PPT不一样了?

添加图片注释,不超过 140 字(可选) 到了年终,需要撰写年度总结和制定计划了吗? 找不到合适的 PPT 模板? 感到缺乏灵感? 为做 PPT 绞尽脑汁? 为何不试试 AI 写 PPT 呢&#xff1f…

【SpringBoot篇】添加富文本编辑器操作

文章目录 &#x1f354;使用步骤⭐首先我们需要安装富文本编辑器⭐在<script>中引入富文本编辑器⭐富文本图片上传接口⭐初始化富文本编辑器⭐调用 初始化富文本编辑器的方法&#x1f388;新增&#x1f388;编辑&#x1f388;保存 ⭐添加按钮⭐实现viewEditor函数&#x…