可编程 usb 转串口适配器开发板 usb 转 uart i2c 应用
可编程usb转 uart/i2c /smbuss/spi/can/1 -wire适配器usb2s usb 转 uart 应用
1.1驱动安装
usb2s 内置了 usb 转uart 芯片,可使用ch340/ch341 驱动程序。驱动安装步骤如下: 双击运行“ch341ser\setup.exe”,打开驱动安装窗口。
点击【安装】按钮,稍后会提示“驱动安装成功”。如下图示。
可编程 usb 转串口适配器开发板 驱动安装 驱动安装成功后,若将 usb2s 插入计算机 usb 接口,在“设备管理器”中会发现新的 com 接口, 如下图示。
可编程 usb 转串口适配器开发板驱动安装后 1.2 usb 转uart 原理
驱动程序安装后,计算机通过 comx 与 mcu 进行通讯,当 usb2s 的 uart 透明传输功能为开启状态时(默认),mcu 可将 uart1 与uart2 的双向数据进行透明转发,即:实现了计算机的comx 端口与 usb2s 的对外 uart2 端口的双向数据传输。工作原理示意图如下:
可编程 usb 转串口适配器开发板 usb 转 uart 原理 上面的方法是通过 mcu 固件程序实现uart1 与 uart2 之间数据透明传输。
下面的连接方法可实现真正的 usb 转 uart 功能,方法是通过跳线禁用 mcu,外部uart 设备直接连接到 uart1 接口。
可编程 usb 转串口适配器开发板 usb 转 uart 原理 对于绝大部分应用,第一种连接方法即可。
可编程usb转 uart/i2c /smbuss/spi/can/1 -wire适配器usb2s uart 转 i2c 应用
1.1 at24cxxeeprom 芯片
1.1.1 芯片介绍
at24cxx 是可擦写 eeprom 存储芯片,xx 表示容量,单位为 kbits。usb2s 板上已有 1 片 at24cxx
(默认为 at24c02),设备地址为 0xa0。
通过 at24cxx 的数据手册可知,读写时序如下: 写时序:
(1) 向 iic 总线发送开始信号
(2) 向 iic 总线发送芯片写地址(0xa0)
(3) 向 iic 总线发送要操作的 eeprom 地址
(4) 向 iic 总线连续发送多个要写入的字节数据
(5) 向 iic 总线发送停止信号,结束本次通讯读时序:
(1) 向 iic 总线发送开始信号
(2) 向 iic 总线发送芯片写地址(0xa0)
(3) 向 iic 总线发送要操作的 eeprom 地址
(4) 向 iic 总线发送开始信号
(5) 向 iic 总线发送芯片读地址(0xa1)
(6) 从 iic 总线连续读取芯片输出的数据
(7) 向 iic 总线发送停止信号,结束本次通讯
1.1.2 向 at24c02 写入数据
向 at24c02 的地址 0~3 写入 4 个字节(30 31 32 33)
向 uart1 发送字符串:[iic][start][wt6h]a0 00 30 31 32 33[stop]
[iic] 数据帧的目标是 iic 接口
[start] 从目标接口输出开始信号
[wt6h] 从目标接口输出 6 个字节,后续数据类型为 16 进制。
a0 00 2 字节数据,at24c02 芯片地址+要操作的eeprom 地址
00 01 02 03 向 at24c02 写入的 4 个字节数据[stop] 从目标接口输出停止信号,结束本次通讯
1.1.3 从 at24c02 读取数据
从 at24c02 读取 4 个字节数据,数据起始地址为 0。
向 uart1 发送字符串:[iic][start][wt2h]a0 00[start][wt1h]a1[rd4n][stop]
从 uart1 返回 4 个字节(16 进制):30 31 32 33 [iic] 数据帧的目标是 iic 接口
[start] 从目标接口输出开始信号
[wt2h] 从目标接口输出 2 个字节,后续数据类型为 16 进制。
a0 00 2 字节数据,at24c02 芯片地址+要操作的eeprom 地址
[start] 从目标接口输出开始信号
[wt1h] 从目标接口输出 1 个字节,后续数据类型为 16 进制。
a1 at24c02 芯片的读地址
[rd4n] 从目标接口连续读取 4 个字节数据 [stop] 从目标接口输出停止信号,结束本次通讯
1.1.4 跨页写入数据
at24c02 每页为 8 字节,eeprom 地址 0~7 为第 1 页、8~15 为第 2 页,以此类推。当向芯片连续写入数据时,在写完每页最后 1 个字节后必须向其发送停止信号,以使芯片对当前页进行存储,继续写入后续数据时需要重新开始写入时序。
芯片存储数据需要一定时间,向其发起新的通讯前应有适当延时。也可以直接向其继续写入若返回了[errxxx]表示芯片正忙,重新发送直到无错误返回。
例如:从 eeprom 地址 0 开始写入 10 个字节数据,则应先写入 0~7,延时,再写入 8~9。
[iic][start][wt10h]a0 00 00 01 02 03 04 05 06 07[stop][delay50][iic][start][wt4h]a0 08 08 09[stop]
例如:直接向芯片写入字符串数据
[iic][start][wt2h]a0 00[wt8s]87654321[stop][delay50][iic][start][wt4h]a0 08 38 39[stop]
零跑发布首款量产车 引领智能座舱光潮流
怎样做好区块链的“应用题”
WCDMA网络规划及部署原则
换电将会是新能源出租车的解决方案吗
为加大电改力度打赢蓝天保卫战,国家电网组建26家省级综合能源服务公司
可编程USB转串口适配器开发板转UART I2C应用
“下一个百亿规模AIGC产品”揭晓,墨芯人工智能上榜
北斗的定位系统,相比以往的GPS会有哪些变化呢?
谷歌云目标2023年超越微软Azure和亚马逊AWS
FPC覆铜布线有哪些需要关注的点
华宇电子亮相2022世界集成电路大会
华为mate9和p9的区别,16nm工艺处理器给力升级但mate9曲屏版或跳票
C语言零基础项目:生命游戏!详细思路+源码分享
基于PLC的机器人伺服运动控制系统设计详解
用MDaemon搭建邮件服务器-设置篇
松下进一步增强加码动力电池业务的决心
谷歌发布第三季度财报,总营收461.73亿美元
华为 P20在上海发布 还有全球首款全面屏笔记本
怎么应对刘海屏机型的海报设计
相控阵雷达性能的基石:宽禁带半导体