CH341应用升级为CH347软硬件注意事项
前言
CH341是一款USB总线的转接芯片,支持转接为串口、并口、SPI和I2C接口等,但其串口和其他接口模式是独立分开的,不能在同一模式下使用串口和其他接口,此时,则可使用CH347进行替换。
CH347是一款高速USB2.0转接芯片,可转接出UART、SPI、I2C、JTAG、GPIO等接口,且支持厂商驱动或者系统自带的HID驱动来实现接口功能。
其中UART最高支持到9Mbps通讯速率,SPI和JTAG速率最高支持到60MHz,其频率可通过接口API进行配置。
CH347简介
如下为模式说明,CH347芯片在复位时,会根据DTR1(CFG0)和RTS1(CFG1)引脚的电平状态配置其工作模式,各工作模式及功能说明如下
工作模式 |
模式说明 |
CFG0 |
CFG1 |
Mode0 |
480Mbps高速USB转双UART(Baudrate最高9Mbps) |
1 |
1 |
Mode1 |
480Mbps高速USB转UART+SPI+I2C(厂商驱动模式) |
0 |
1 |
Mode2 |
480Mbps高速USB转UART+SPI+I2C(系统HID驱动模式) |
1 |
0 |
Mode3 |
480Mbps高速USB转UART+JTAG(厂商驱动模式) |
0 |
0 |
硬件替代
使用CH347不能直接引脚替换掉CH341,需要重新进行硬件设计,但CH347外围电路简单,设计难度并不困难
开发板原理图
参考链接:CH347EVT.ZIP - 南京沁恒微电子股份有限公司
原理图路径:CH347EVT\EVT\PCB\CH347SCH.PDF
软件替代
驱动更换
串口驱动
CH347的串口支持CDC+VCP两种驱动模式,其串口驱动地址:CH343SER.EXE - 南京沁恒微电子股份有限公司
SPI&I2C等其他接口
CH347与CH341则可使用同一驱动:CH341PAR.EXE - 南京沁恒微电子股份有限公司
开发工程中所需调用的DLL文件与头文件可从此处获取:CH341PAR.ZIP - 南京沁恒微电子股份有限公司
驱动特点
从WCH官网下载CH347转SPI/I2C/JTAG/GPIO驱动:CH341PAR.EXE - 南京沁恒微电子股份有限公司
驱动下载后进行一次安装,后续即可实现系统“免驱”效果无需二次安装。未插入设备时安装会显示“驱动预安装成功”,此时驱动已经正常安装,硬件即插即用。
Windows驱动通过微软数字签名认证,支持32/64位 Windows 11/10/8.1/8/7/VISTA/XP/2000,SERVER 2019/2016/2012/2008/2003等系统,无需担心Windows不同系统兼容性问题。
官方同时提供驱动资源包CH341PAR.ZIP - 南京沁恒微电子股份有限公司,可将驱动安装文件打包至成熟产品一齐发布,且支持无界面安装操作,可通过软件编程调用命令行操作,只需执行“SETUP /S”命令即可静默驱动安装。
点击安装之后,等待弹出安装成功窗口后点击确定即可。
应用程序API替代
I2C操作函数
I2C速度设置
通过CH347I2C_Set()对I2C接口速度进行设置:
支持低速/20KHz,标准/100KHz(默认值),快速/400KHz,高速/750KHz
I2C读写函数
可使用原CH341操作函数以及设备检测函数
SPI操作函数
SPI速度设置
通过CH347SPI_Init()对SPI模式和速率等进行设置:
支持模式:SPI Mode 0/1/2/3
支持速度:60MHz,30MHz,15MHz,7.5MHz,3.75MHz,1.875MHz,937.5KHz,468.75KHz
SPI读写函数
(此处控制协议CH347与CH341不同,此处对硬件接口进行判断处理,硬件接口信息可通过CH347GetDeviceInfor函数获取)
CH347SPI_Write()
CH347SPI_Read()
CH347SPI_WriteRead()
CH347StreamSPI4()
UART操作函数
CH347的串口可通过Windows通用API进行操作,也可调用CH347DLL接口库中的串口操作函数进行,函数接口如下
CH347Uart_Open // 打开串口
CH347Uart_Close // 关闭串口
CH347Uart_SetDeviceNotify // 设置串口插拔检测
CH347Uart_GetCfg // 获取UART硬件配置
CH347Uart_Init // UART参数配置
CH347Uart_SetTimeout // 设置串口读写超时
CH347Uart_Read // 读取串口数据
CH347Uart_Write // 写入串口数据
CH347Uart_QueryBufUpload // 查询读缓冲区可读数据量
CH347Uart_GetDeviceInfor // 获取串口设备信息
CH341应用升级为CH347软硬件注意事项相关推荐
- 基于 Openzeppelin 的可升级合约解决方案的注意事项
基于 Openzeppelin 的可升级合约解决方案的注意事项 注意事项 构造函数 在编写可升级合约时请不要使用构造函数contructor(),我们知道可升级合约运行时逻辑与数据分离的,合约数据保存 ...
- MySQL5.1升级到5.5注意事项
升级MySQL 一条规则: 不能跳过中间的几个版本. 从5.1到5.5 升级前的准备: 1.备份全部的数据 2.通过手册熟知 其中哪些是不兼容的或者说是哪些功能在新版本中已经实现. 3.执行mysql ...
- 127.0.0.1 myz.php,附录 – 1.0升级到2.0注意事项 - GatewayWorker 2.x 3.x 手册
如何知道自己使用的版本是1.0还是2.0 打开文件 GatewayWorker/Gateway.php,查看是否有常量VERSION,并且常量值大于等于2.0.0 class Gateway exte ...
- 【ESXi 6.X升级7.X】ESXi 升级 —— 升级前准备工作,注意事项以及示例 — 使用 vSphere Lifecycle Manager升级 ESXi 6.5 到 7.0.3
目录 1. 升级前的准备工作 1.1 确认 vCenter Server 与 ESXi 的互操作性 1.2 查看 ESXi 是否能直接升级到高版本 1.3 硬件,驱动,固件兼容性确认 2. 升级前的注 ...
- Django从1.8升级到2.0注意事项
2019独角兽企业重金招聘Python工程师标准>>> 我公司从2015年开发自动化部署平台,当时选用的开发框架是Django1.8版本.这两年多来,基于其上,很好的满足了我们的开发 ...
- gradle tool升级到3.0注意事项
Gradle版本升级 其实当AS升级到3.0之后,Gradle Plugin和Gradle不升级也是可以继续使用的,但很多新的特性如:Java8支持.新的依赖匹配机制.AAPT2等新功能都无法正常使用 ...
- Flutter升级空安全版本注意事项
FlutterBoost发布了3.0,试着把Flutter升级到了2.5空安全版本,升级的过程几乎是逐行更改代码,对项目影响很大,遇到的一些坑分享给大家 空类型 ○ 声明时可为空的变量需要加? Use ...
- win11怎么升级_win11系统升级更新注意事项
Win11系统预览版已经发布了,可谓一代版本一代神,是鬼是神先睹为快,好多小伙伴已经陆续开始升级,符合升级条件的朋友可以直接在线升级到Win11预览版系统,而且安装完后已经是中文系统了,不过还有很多不 ...
- U821升级到U810.1注意事项
1.找到客户在2011年1月份的导出记录.BA_和.lst文件,导出索引文件为UFErpYer.lst 2.修改UFErpYer.lst为UFErpAct.lst,修改文件内容: Type=Year ...
- python2.7升级到python3.6注意事项
python3.6下载地址:https://www.python.org/downloads/source/ 1.安装依赖包:gcc openssl-devel.zlib-devel.readli ...
最新文章
- Python 代码规范
- 罗马数字转阿拉伯数字
- JAVA之获取JavaSwing单选框JRadioButton选中的值(内容)
- c语言 在txt文件中搜索关键词_网络推广外包—网络推广外包如何在搜索引擎中体现关键词优化效果...
- Linux启动tomcat命令行关闭后服务会停止
- 开始使用Google Analytics 示例
- Rendering Path
- 推断一个图片是不是伪造的方法
- mysql 锁怎么使用_MySQL锁的用法之行级锁
- [Objective C] 获取类和对象的运行时状态
- java实现word转pdf
- EASY CHM使用
- JavaSE知识框架
- 万里汇WorldFirst支持从PayPal提现美元(实战教程)
- idea如何做到多模块开发项目
- 1、SONIX单片机新建工程与烧录流程
- arm+linux+usb驱动开发,Linux+ARM下的USB驱动开发
- 【朝花夕拾】Android编码风格拾遗
- ThinkPhp5.0.24 JWT报错 ‘“kid“ empty, unable to lookup correct key‘解决办法
- 设计模式 -- 面向对象设计原则、黑箱/白箱复用
热门文章
- 运维日志审计是什么意思?用什么工具好?
- 计算机win7设置用户密码,怎么给win7电脑设置开机密码_w7电脑开机密码怎么设置...
- 自制hdmi线一头改vga图_破拆电脑VGA电缆以制作收音机天线零件:双目铁氧体磁芯...
- oracle lpad nvl,Oracle的Lpad函数
- js根据身份证获取年龄
- 推荐算法之DeepFM
- 英语魔法师之语法俱乐部阅读笔记
- MATLAB -plotyy函数
- 什么是知识库,怎么制作知识库?
- Exception loading sessions from persistent storage+ClassNotFoundException