前言

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软硬件注意事项相关推荐

  1. 基于 Openzeppelin 的可升级合约解决方案的注意事项

    基于 Openzeppelin 的可升级合约解决方案的注意事项 注意事项 构造函数 在编写可升级合约时请不要使用构造函数contructor(),我们知道可升级合约运行时逻辑与数据分离的,合约数据保存 ...

  2. MySQL5.1升级到5.5注意事项

    升级MySQL 一条规则: 不能跳过中间的几个版本. 从5.1到5.5 升级前的准备: 1.备份全部的数据 2.通过手册熟知 其中哪些是不兼容的或者说是哪些功能在新版本中已经实现. 3.执行mysql ...

  3. 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 ...

  4. 【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. 升级前的注 ...

  5. Django从1.8升级到2.0注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 我公司从2015年开发自动化部署平台,当时选用的开发框架是Django1.8版本.这两年多来,基于其上,很好的满足了我们的开发 ...

  6. gradle tool升级到3.0注意事项

    Gradle版本升级 其实当AS升级到3.0之后,Gradle Plugin和Gradle不升级也是可以继续使用的,但很多新的特性如:Java8支持.新的依赖匹配机制.AAPT2等新功能都无法正常使用 ...

  7. Flutter升级空安全版本注意事项

    FlutterBoost发布了3.0,试着把Flutter升级到了2.5空安全版本,升级的过程几乎是逐行更改代码,对项目影响很大,遇到的一些坑分享给大家 空类型 ○ 声明时可为空的变量需要加? Use ...

  8. win11怎么升级_win11系统升级更新注意事项

    Win11系统预览版已经发布了,可谓一代版本一代神,是鬼是神先睹为快,好多小伙伴已经陆续开始升级,符合升级条件的朋友可以直接在线升级到Win11预览版系统,而且安装完后已经是中文系统了,不过还有很多不 ...

  9. U821升级到U810.1注意事项

    1.找到客户在2011年1月份的导出记录.BA_和.lst文件,导出索引文件为UFErpYer.lst 2.修改UFErpYer.lst为UFErpAct.lst,修改文件内容: Type=Year  ...

  10. python2.7升级到python3.6注意事项

    python3.6下载地址:https://www.python.org/downloads/source/ 1.安装依赖包:gcc   openssl-devel.zlib-devel.readli ...

最新文章

  1. Python 代码规范
  2. 罗马数字转阿拉伯数字
  3. JAVA之获取JavaSwing单选框JRadioButton选中的值(内容)
  4. c语言 在txt文件中搜索关键词_网络推广外包—网络推广外包如何在搜索引擎中体现关键词优化效果...
  5. Linux启动tomcat命令行关闭后服务会停止
  6. 开始使用Google Analytics 示例
  7. Rendering Path
  8. 推断一个图片是不是伪造的方法
  9. mysql 锁怎么使用_MySQL锁的用法之行级锁
  10. [Objective C] 获取类和对象的运行时状态
  11. java实现word转pdf
  12. EASY CHM使用
  13. JavaSE知识框架
  14. 万里汇WorldFirst支持从PayPal提现美元(实战教程)
  15. idea如何做到多模块开发项目
  16. 1、SONIX单片机新建工程与烧录流程
  17. arm+linux+usb驱动开发,Linux+ARM下的USB驱动开发
  18. 【朝花夕拾】Android编码风格拾遗
  19. ThinkPhp5.0.24 JWT报错 ‘“kid“ empty, unable to lookup correct key‘解决办法
  20. 设计模式 -- 面向对象设计原则、黑箱/白箱复用

热门文章

  1. 运维日志审计是什么意思?用什么工具好?
  2. 计算机win7设置用户密码,怎么给win7电脑设置开机密码_w7电脑开机密码怎么设置...
  3. 自制hdmi线一头改vga图_破拆电脑VGA电缆以制作收音机天线零件:双目铁氧体磁芯...
  4. oracle lpad nvl,Oracle的Lpad函数
  5. js根据身份证获取年龄
  6. 推荐算法之DeepFM
  7. 英语魔法师之语法俱乐部阅读笔记
  8. MATLAB -plotyy函数
  9. 什么是知识库,怎么制作知识库?
  10. Exception loading sessions from persistent storage+ClassNotFoundException