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      // 获取串口设备信息

猜你喜欢

转载自blog.csdn.net/WCH_TechGroup/article/details/127552663