• 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速度设置

    1. 通过CH347I2C_Set()对I2C接口速度进行设置:
    2. 支持低速/20KHz,标准/100KHz(默认值),快速/400KHz,高速/750KHz

    I2C读写函数

            可使用原CH341操作函数以及设备检测函数

    SPI操作函数

    SPI速度设置

    1. 通过CH347SPI_Init()对SPI模式和速率等进行设置:
    2. 支持模式:SPI Mode 0/1/2/3
    3. 支持速度:60MHz,30MHz,15MHz,7.5MHz,3.75MHz,1.875MHz,937.5KHz,468.75KHz

    SPI读写函数

    1. (此处控制协议CH347与CH341不同,此处对硬件接口进行判断处理,硬件接口信息可通过CH347GetDeviceInfor函数获取)
    2. CH347SPI_Write()
    3. CH347SPI_Read()
    4. CH347SPI_WriteRead()
    5. CH347StreamSPI4()

    UART操作函数

            CH347的串口可通过Windows通用API进行操作,也可调用CH347DLL接口库中的串口操作函数进行,函数接口如下

    1. CH347Uart_Open // 打开串口
    2. CH347Uart_Close // 关闭串口
    3. CH347Uart_SetDeviceNotify // 设置串口插拔检测
    4. CH347Uart_GetCfg // 获取UART硬件配置
    5. CH347Uart_Init // UART参数配置
    6. CH347Uart_SetTimeout // 设置串口读写超时
    7. CH347Uart_Read // 读取串口数据
    8. CH347Uart_Write // 写入串口数据
    9. CH347Uart_QueryBufUpload // 查询读缓冲区可读数据量
    10. CH347Uart_GetDeviceInfor // 获取串口设备信息

  • 相关阅读:
    【JMeter】JMeter压测过程中遇到Non HTTP response code错误解决方案
    【笔者感悟】笔者的学习感悟【四】
    STM32笔记之 SDRAM
    基于Java+SpringBoot+Thymeleaf+Mysql新冠疫苗预约系统设计与实现
    day17正则表达式作业
    应用层基础 —— 认识URL
    HTML5期末大作业:美妆网页主题网站设计——清新的手工肥皂网站展示(4页)HTML+CSS+JavaScript
    springboot的配置变量
    拼多多API接口(附上我的可用API)
    Swift 其他
  • 原文地址:https://blog.csdn.net/WCH_TechGroup/article/details/127552663