XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)

作者 : admin 本文共2552个字,预计阅读时间需要7分钟 发布时间: 2024-06-16 共1人阅读

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)插图

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.ch9344按usb转串口芯片介绍
    • 🌻3.解决方案
      • 🐓3.1 官网下载驱动代码
      • 🐓3.2 解压、修改代码
        • .解压
        • .修改代码
      • 🐓3.3 编译与安装
      • 🐓3.4 遗留问题

🌻1.前言

本篇目的:XUbuntu24.04之ch9344按usb转串口driver

🌻2.ch9344按usb转串口芯片介绍

  • CH9344是一款USB转串口芯片,由南京沁恒微电子股份有限公司研发。该芯片将USB接口转换为串口,具有高度集成、稳定性强、兼容性好等特点,广泛应用于工业控制、数据采集、通信设备等领域。
  • CH9344芯片的主要特点如下:
  1. 高度集成:CH9344内置了USB收发器、串口收发器、电压转换器等模块,只需外接几个元件即可实现USB转串口的功能。这大大简化了电路设计,降低了系统成本。
  2. 兼容性好:CH9344支持USB 1.1协议,能与各种操作系统和USB设备兼容。在Windows、Linux、Mac OS等系统中,无需安装驱动程序即可识别和使用。
  3. 串口参数可编程:CH9344支持通过软件设置串口的波特率、数据位、停止位、校验位等参数,以满足不同应用场景的需求。
  4. 丰富的串口功能:CH9344支持硬件流控制(RTS/CTS)、软件流控制(XON/XOFF)、发送/接收缓冲区等串口功能,保证了数据传输的稳定性和可靠性。
  5. 灵活的供电方式:CH9344支持从USB接口和外部电源两种方式供电,方便用户在不同场景下使用。
  6. 小型化封装:CH9344采用QFN封装,体积小巧,便于在空间受限的场合中使用。
  7. 工作温度范围宽:CH9344的工作温度范围为-40℃至+85℃,能满足各种恶劣环境下的使用需求。
  8. 低功耗:CH9344在正常工作状态下的功耗仅为120mW,待机功耗小于1mW,有利于降低整体系统的能耗。
  9. 抗干扰性能强:CH9344具备良好的抗电磁干扰能力,能在复杂的电磁环境下稳定工作。
  10. 完善的售后服务:南京沁恒微电子提供完善的售后服务,包括技术支持、样品申请、产品维修等,确保用户无后顾之忧。
  • CH9344是一款性能优异、应用广泛的USB转串口芯片,能为用户提供稳定、可靠的串口通信解决方案。随着物联网、工业互联网等领域的不断发展,CH9344的市场需求将持续增长,成为串口通信领域的重要选择。

🌻3.解决方案

🐓3.1 官网下载驱动代码

9344芯片驱动代码下载:
https://www.wch.cn/downloads/file/386.html?time=2024-06-09%2014:48:19&code=tPIw19Z80Kn3RhVD1I1X2qrYLxv7xVeOFDFqQT7h

🐓3.2 解压、修改代码

.解压
# unzip CH9344SER_LINUX.ZIP
# cd LINUX/driver
.修改代码
  • 1.修改一
# cd LINUX/driver
# emacs cd LINUX/driver
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0))
+ static ssize_t ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, size_t count);
+ #else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count);
+ #endif
  • 2.修改二:
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0))
+ static ssize_t ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, size_t count)
+ #else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
+ #endif
{
    struct ch9344 *ch9344 = tty->driver_data;
	int stat;
	unsigned long flags;
	int wbn;
	struct ch9344_wb *wb;
	int portnum = ch9344_get_portnum(tty->index);
	int timeout;
	int maxep = ch9344->writesize / 20;
	int packnum, maxpacknum;
	int packlen, total_len, sendlen;
}

🐓3.3 编译与安装

1.编译
# make 

2.安装到/lib/modules/$(uname -r)/kernel/drivers/usb/serial目录下
# sudo make install

3.查看是否安装到指定目录
# ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch9344.ko
/lib/modules/6.8.0-35-generic/kernel/drivers/usb/serial/ch9344.ko
已经安装到指定目录

4.查看ch9344.ko是否已经加载到系统
# lsmod |grep -i ch9344
ch9344     61440  0

5.查看串口设备
# ls /dev/ttyCHxxxUSB

注意:
可以看到有dev/ttyCHxxxUSBx四个usb转串口设备,一般使用第一个tyCHxxxUSB0就行.

🐓3.4 遗留问题

  • 开机重启后,发现/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch9344.ko驱动没有自动加载,我们下一篇再说。
本站无任何商业行为
个人在线分享 » XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)
E-->