CH9434 嵌入式Linux与安卓系统驱动移植和使用教程

关于CH9434、CH432、CH438串口扩展芯片的应用笔记 接口速度支持最高10MB的并口24MHz的SPI3.3V-5.3V(5V典型值)3.3V-5.3V(5V典型值)2.4V-3.6V(3.3V典型值) 阅读详情
AI摘要

本文介绍CH9434芯片在嵌入式Linux和安卓系统中的驱动移植方法,涵盖静态与动态编译、SPI通信验证、中断功能检测及串口收发、硬件流控、RS485等功能测试,适用于STM32等平台的串口扩展需求。

1 前言

CH9434是一款SPI转四串口转接芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式/安卓系统扩展异步串口。提供25路GPIO,以及支持RS485收发控制引脚TNOW。本篇基于STM32MP157处理器平台,介绍CH9434在嵌入式Linux系统/安卓系统的驱动移植和使用方法。

CH9434官方资料下载链接:

CH9434评估板设计原理图,单片机端操作例程,LINUX驱动及应用例程下载

Up-to-date Repo:GitHub - WCHSoftGroup/ch9434ser_linux

2 驱动移植流程

2.1 移植准备

1、配置系统SPI设备信息,若支持DTS设备树可以直接在DTS文件中直接定义此SPI结构体信息,如下所示:

&spi5 {
     pinctrl-names = "default","sleep";
     pinctrl-0 = <&spi5_pins_a>;
     pinctrl-1 = <&spi5_sleep_pins_a>;
     status = "okay";
     cs-gpios = <&gpioz 4 GPIO_ACTIVE_LOW>;
​
     ch9434: ch9434@1 {
     compatible = "wch,ch943x";
     reg = <0>;
     spi-max-frequency = <3000000>;
     interrupt-parent = <&gpiod>;
     interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
    };
};

对于不支持DTS设备树的系统,则需要在board源文件中定义spi0_board_info对象,如下所示:

static struct spi_board_info spi0_board_info[] __initdata = {
    {
        .modalias = "ch943x_spi",
        .platform_data = NULL,
        .max_speed_hz = 3000000,
        .bus_num = 0,
        .chip_select = 0,
        .mode = SPI_MODE_0,
        .controller_data = &spi0_csi[0],
        .irq = IRQ_EINT(8),
    }
};

2、配置IO中断引脚,确认CH9434芯片INT中断请求引脚所连接的CPU的IO口编号,此IO需支持中断功能。此编号可以直接在驱动源码ch9434.c中直接指定,也可以在如上SPI设备结构体中指定,如步骤1所示。

此外,注意有些平台上中断申请方式可能与驱动中默认实现方式不同,此时需修改ch9434.c文件中ch943x_spi_probe的相关代码

注:默认情况下请不要修改uart时钟,若确实需修改以支持部分非标波特率,可在ch943x_probe中修改:

    freq = 32 *1000000 *15 / clkdiv;

2.2 静态编译驱动

(1)将驱动程序拷贝到内核目录:$kernel_src\drivers\tty\serial

(2)向$kernel_src\drivers\tty\serial\Konfig 中添加:

config SERIAL_CH9434
tristate "SERIAL_CH9434 serial support"
depends on SPI
select SERIAL_CORE
help
    This selects support for ch9434 serial ports.

(3)向$kernel_src\drivers\tty\serial\Makefile 中添加:

obj-$(CONFIG_SERIAL_CH943X)+= ch9434.o

(4)运行make menuconfig,选择驱动/tty/serial下的ch9434 serial support,然后保存配置。

(5)重新编译系统

2.3 动态编译驱动—方式1

(1)拷贝驱动文件至用于添加驱动的package/kernel目录下

(2)新建模块目录,如:ch9434,然后添加相关的Makefile和Kconfig文件,通常可以从系统已有的其他驱动下拷贝然后修改

(3)运行“make menuconfig”然后选中“ ch9434 serial support”作为“modules”项

(4)单独编译模块,命令为:

make package/kernel/ch9434/compile V=s

2.4 动态编译驱动—方式2

拷贝驱动文件至宿主机工作目录,在driver目录下新增Makefile文件,如下所示:

KERN_DIR = /home/Linux-5.4 
all:
    make -C $(KERN_DIR) M=`pwd` modules 
    $(CROSS_COMPILE)gcc -o ch9434 ch9434.c 
clean:
    make -C $(KERN_DIR) M=`pwd` modules clean
    rm -rf modules.order
    rm -f ch9434
obj-m += ch9434.o

注意:此方式需系统下提前配置交叉编译工具链,在如上Makefile文件中修改KERN_DIR为已编译的内核目录。同时设置环境变量如下:

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf
export PATH=$PATH:/home/xxx/sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

在driver目录下直接执行make,成功时可生成ch9434.ko驱动模块。

3 加载驱动并验证

3.1 加载驱动

[root@100ask:/mnt/ch9434]# insmod ch9434.ko
[ 477.091787] ch9434: loading out-of-tree module taints kernel.
[ 477.096776] ch9434: module verification failed: signature and/or required key missing - tainting kernel
[ 477.109272] ch9434: SPI driver for spi to serial chip ch9434, etc.
[ 477.114026] ch9434: V1.00 On 2020.06.17
[ 477.123448] ch943x_spi spi0.1: change to SPI MODE 3!

3.2 查看串口节点

进入/dev目录,可以看到出现ttyWCH0、ttyWCH1、ttyWCH2和ttyWCH3设备节点,表示加载成功。

[root@100ask:/dev]# ls ttyWCH*
ttyWCH0  ttyWCH1  ttyWCH2  ttyWCH3

3.3 验证SPI通讯

ch943x_probe中会自动调用ch943x_scr_test接口,向4个串口的SPR寄存器分别写入0x55和0x66并读取寄存器值,若读取与写入的数值相匹配,则SPI接口通讯正常。

static int ch943x_scr_test(struct uart_port *port)
{
	struct ch943x_port *s = dev_get_drvdata(port->dev);

	dev_vdbg(&s->spi_dev->dev,"******Uart %d SPR Test Start******\n", port->line);	
    ch943x_port_write(port, CH943X_SPR_REG,0x55);
	ch943x_port_read(port, CH943X_SPR_REG);
	ch943x_port_write(port, CH943X_SPR_REG,0x66);
	ch943x_port_read(port, CH943X_SPR_REG);
	dev_vdbg(&s->spi_dev->dev,"******Uart %d SPR Test End******\n", port->line);	
	
	return 0;
}

使用前需在驱动程序中定义宏:

#define DEBUG
#define VERBOSE_DEBUG

以及修改printk内核打印等级:

[root@100ask:~]# echo 8 4 1 7 > /proc/sys/kernel/printk

加载驱动后查看内核打印信息:

[root@100ask:/mnt/ch9434]# insmod ch9434.ko
[ 477.091787] ch9434: loading out-of-tree module taints kernel.
[ 477.096776] ch9434: module verification failed: signature and/or required key missing - tainting kernel
[ 477.109272] ch9434: SPI driver for spi to serial chip ch9434, etc.
[ 477.114026] ch9434: V1.00 On 2020.06.17
[ 477.123448] ch943x_spi spi0.1: change to SPI MODE 3!
[ 477.129197] ch943x_spi spi0.1: ch943x_port_write - reg:0x81, val:0x 0
[ 477.135149] ch943x_spi spi0.1: ch943x_port_write - reg:0x84, val:0x 0
[ 477.141604] ch943x_spi spi0.1: ch943x_port_read - reg:0x 6, val:0x 0
[ 477.148458] ch943x_spi spi0.1: ******Uart 0 SPR Test Start******
[ 477.154347] ch943x_spi spi0.1: ch943x_port_write - reg:0x87, val:0x55
[ 477.160705] ch943x_spi spi0.1: ch943x_port_read - reg:0x 7, val:0x55
[ 477.166982] ch943x_spi spi0.1: ch943x_port_write - reg:0x87, val:0x66
[ 477.173556] ch943x_spi spi0.1: ch943x_port_read - reg:0x 7, val:0x66
[ 477.179305] ch943x_spi spi0.1: ******Uart 0 SPR Test End******
[ 477.185633] ch943x_spi spi0.1: ch943x_port_write - reg:0x91, val:0x 0
[ 477.192274] ch943x_spi spi0.1: ch943x_port_write - reg:0x94, val:0x 0
[ 477.198463] ch943x_spi spi0.1: ch943x_port_read - reg:0x16, val:0x 0
[ 477.209156] ch943x_spi spi0.1: ******Uart 1 SPR Test Start******
[ 477.214381] ch943x_spi spi0.1: ch943x_port_write - reg:0x97, val:0x55
[ 477.225183] ch943x_spi spi0.1: ch943x_port_read - reg:0x17, val:0x55
[ 477.232922] ch943x_spi spi0.1: ch943x_port_write - reg:0x97, val:0x66
[ 477.241444] ch943x_spi spi0.1: ch943x_port_read - reg:0x17, val:0x66
[ 477.246359] ch943x_spi spi0.1: ******Uart 1 SPR Test End******
[ 477.252862] ch943x_spi spi0.1: ch943x_port_write - reg:0xa1, val:0x 0
[ 477.259188] ch943x_spi spi0.1: ch943x_port_write - reg:0xa4, val:0x 0
[ 477.265396] ch943x_spi spi0.1: ch943x_port_read - reg:0x26, val:0x 0
[ 477.272512] ch943x_spi spi0.1: ******Uart 2 SPR Test Start******
[ 477.277949] ch943x_spi spi0.1: ch943x_port_write - reg:0xa7, val:0x55
[ 477.284520] ch943x_spi spi0.1: ch943x_port_read - reg:0x27, val:0x55
[ 477.290761] ch943x_spi spi0.1: ch943x_port_write - reg:0xa7, val:0x66
[ 477.297358] ch943x_spi spi0.1: ch943x_port_read - reg:0x27, val:0x66
[ 477.303202] ch943x_spi spi0.1: ******Uart 2 SPR Test End******
[ 477.309544] ch943x_spi spi0.1: ch943x_port_write - reg:0xb1, val:0x 0
[ 477.315969] ch943x_spi spi0.1: ch943x_port_write - reg:0xb4, val:0x 0
[ 477.322556] ch943x_spi spi0.1: ch943x_port_read - reg:0x36, val:0x 0
[ 477.329200] ch943x_spi spi0.1: ******Uart 3 SPR Test Start******
[ 477.334860] ch943x_spi spi0.1: ch943x_port_write - reg:0xb7, val:0x55
[ 477.341359] ch943x_spi spi0.1: ch943x_port_read - reg:0x37, val:0x55
[ 477.347567] ch943x_spi spi0.1: ch943x_port_write - reg:0xb7, val:0x66
[ 477.354204] ch943x_spi spi0.1: ch943x_port_read - reg:0x37, val:0x66
[ 477.360005] ch943x_spi spi0.1: ******Uart 3 SPR Test End******
[ 477.366257] ch943x_spi spi0.1: ch943x_port_write - reg:0xc8, val:0xcd
[ 477.372805] ch943x_spi spi0.1: ch943x_port_read - reg:0x48, val:0xcd
[ 477.382495] ch943x_spi spi0.1: ch943x_probe - devm_request_threaded_irq =84 result:0
[ 477.392463] cpu cpu0: Looking up cpu-supply from device tree

3.4 验证IO中断功能

驱动程序处理串口数据的发送,接收以及Modem输入中断事件均是在中断服务函数中进行,因此当SPI接口正常串口功能不正常,需检查中断功能是否正常,当执行串口发送时,驱动会自动打开串口发送中断(IETHRE),芯片的INT引脚会输出低电平请求CPU中断。在打开调试开关时,正常情况下可观察到中断服务函数运行的打印信息。此外,也可以手动给CPU的IO口拉高/拉低,测试中断是否能正常应。

4 功能测试

编译demo目录下tty_test_ch9434.c得到可执行目标程序app,运行演示:

./app -D /dev/ttyWCH0 -S 115200 -v
//参数含义
-D --device  tty device to use
-S --speed  uart speed
-v --verbose  verbose (show rx buffer)
-f --hardflow  open hardware flowcontrol
-R --rs485  enable rs485 function
-s --savefile  save rx data to file

4.1 串口收发

(1)串口发送数据流程为:应用软件调用write方法—>驱动接收请求并将数据拷贝至串口circ_buf,打开串口发送空中断(IER寄存器IETHRE位)->执行中断服务函数->判断为发送空中断时执行ch943x_handle_tx函数,从circ_buf中拷贝数据,通过SPI发送函数,将数据写入到串口发送FIFO寄存器->发送完成再次触发空中断,当circ_buf仍有数据则继续发送,否则关闭发送空中断。

(2)串口接收数据流程为:芯片RXD引脚收到串口数据后->执行中断服务函数->判断IIR中断类型为接收数据超时或接收数据可用时执行ch943x_handle_rx函数->读取FIFO长度,通过SPI读取函数,从串口接收FIFO寄存器读取数据并拷贝至串口circ_buf->退出中断->通过应用层有数据可读,应用软件调用read方法读数据。

串口收发流程图:

通过串口向PC收发数据测试:

串口发送0x00~0xFF/接收0x61~0x64

4.2 使用MODEM功能

引脚介绍:

 MODEM输出测试方法: 程序中设置MODEM信号输出后,可以直接用万用表测试信号电压,也可以将9434评估板串口的输出引脚连接USB转串口模块(如CH342)的MODEM输入引脚,CH342的USB端连接PC;打开串口调试工具,通断发送端连接,接收端可观察数据变化。

MODEM输入测试方法:

进入开发板系统,由PC端串口输出,调试工具中开启DTR和RTS,CH9434串口输入:

 接收端运行应用程序,输入“g”获取modem状态:

[root@100ask:/mnt/ch9434/demo]# ./app -D /dev/ttyWCH0 -S 115200 -v
press s to set modem, z to clear modem, g to get modem,b to send break, w to write, r to read, q for quit.
g
DSR Active!
CTS Active!
press s to set modem, z to clear modem, g to get modem,b to send break, w to write, r to read, q for quit.

4.3 硬件流控

串口流控功能使能是将 MCR寄存器的AFE位置1,CH9434 将自动进行硬件流控。芯片将自动根据 FIFO 大小对流控引脚进行操作。启用自动流控后,CTS 有效时芯片串口将连续发送数据,CTS 引脚无效时,串口最多发送8 字节数据后停止发送。RTS 在触发 FIFO 达到设定的流控字节数目后自动失效。

FCR 寄存器的 RECVTG1 和 RECVTG0 位用于设置接收 FIFO 的中断和硬件流控制的触发点,00 对应256 个字节,即接收满256 个字节产生接收数据可用的中断,并在使能硬件流控制时自动无效 RTS 引脚,01 对应512 个字节,10 对应1024 个字节,11 对应1285 个字节。

PC发送端串口工具设置开启流控制:

 接收端运行应用程序:

4.4 GPIO测试

CH9434 支持部分引脚复用为 GPIO 功能,最多支持25 路,每个 IO 都可以独立设置方向、上拉电阻和下拉电阻配置。启用 GPIO 功能后,将自动失效该 IO 其他复用功能。GPIO 功能在设置时需要注意该 IO 原来功能的模式,设置时需要注意 DIR、PD、PU 等 IO 寄存器的顺序防止 IO 出现“抖动”。

GPIO输出测试:

测试方法:以GPIO0为例,该IO默认复用为CTS0;将该IO配置输出高/低电平,此时默认功能将失效。 添加代码:

/* gpio test */
ret = libtty_gpioenable(fd, 0, 1);
	if (ret != 0) {
	printf("libtty_gpioenable error.\n");
	exit(0);
}

ret = libtty_gpiopullup(fd, 0, 1);
	if (ret != 0) {
	printf("libtty_gpiopullup error.\n");
	exit(0);
}

ret = libtty_gpiodir(fd, 0, 1);
	if (ret != 0) {
	printf("libtty_gpiodir error.\n");
	exit(0);
}

ret = libtty_gpioset(fd, 0, 1);
	if (ret != 0) {
	printf("libtty_gpioset error.\n");
	exit(0);
}

使用万用表查看GPIO0输出电平 输出低电平:

 输出高电平:

GPIO输入测试:

测试方法:以GPIO11为例,配置为输入模式,gpioval表示IO值,1个字节表示8个IO,将对应IO交替接地和3.3V引脚,运行应用程序查看输入值。

测试代码:

ret = libtty_gpioenable(fd, 1, 1);
if (ret != 0) 
    exit(0);

ret = libtty_gpiopullup(fd, 1, 0);
if (ret != 0) 
    exit(0);

ret = libtty_gpiodir(fd, 1, 0);
if (ret != 0) 
    exit(0);

ret = libtty_gpioget(fd, 1, &gpioval);
if (ret != 0) 
    exit(0);
else 
    printf("gpioval = 0x%02x \n", gpioval);

GPIO11即GPIO1_4,输入高电平时,gpioval应等于11111111B;输入低电平时,gpioval应等于11110111B 。

测试结果:

GPIO11接地:gpioval = 0xf7

GPIO11接3.3V:gpioval = 0xff

4.5 RS485串口测试

CH9434 串口提供 RS485 切换引脚 TNOW,引脚功能与其他功能复用,当启用 TNOW 功能后,将自动失效原 MODEM 信号功能。TNOW 还支持极性调节,以适应不同的极性使用场景。

添加代码:

char rs485 = 1;

ret = libtty_rs485set(fd, rs485);
if (ret != 0) {
	printf("libtty_rs485set %s error.\n", rs485 ? "enable": "disable");
	exit(0);
}

测试方法: 连接CH9434评估板P2和P4(参照原理图),使用RS485传输;连接串口0和串口1对应的RS485引脚(P9和P15),串口0发送0x00~0x0FF,串口1接收显示:

CH9434 SPI转多串口芯片在嵌入式Linux/安卓平台的驱动集成与实战应用指南 本文详细介绍了CH9434 SPI转多串口芯片在嵌入式Linux/安卓平台上的驱动集成与实战应用。针对嵌入式开发中串口资源不足的痛点,提供了从硬件连接到驱动移植、编译(静态与动态模块两种方式)、加载验证到串口、MODEM信号、硬件流控、GPIO扩展及RS485通信等核心功能测试的完整指南。文章重点阐述了驱动在嵌入式Linux/安卓系统上的集成过程,帮助开发者高效扩展串口与IO资源。 阅读详情

相关推荐

linux5.4移植ch9434驱动

imx6ull linux5.4移植ch9434驱动

yeamon的博客 1381

SPI转四串口芯片CH9434的设计

是一款转接芯片,提供,用于单片机/嵌入式系统扩展异步串口。。1.工作电压:3.3V。2.支持通讯波特率设置,波特率范围1200-4000000bps。3. 串口每个方向独立FIFO缓存,发送1536字节,接收2048字节。4.完全独立四个异步串口,兼容16C550并且有所增强。5. 串口支持5/6/7/8个数据位以及1/2个停止位。6.串口支持奇、偶、无校验、空白0、标志1等校验方式。7.支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。

weixin_46158019的博客 5045

Linux(6)CH9434 SPI调试笔记

Linux(6)CH9434 SPI调试笔记

我其实什么都不会 5789

【CH9434】使用CH9434移植到32单片机扩展4串口

CH9434是一款串口扩展芯片,功能是通过SPI接口可以扩展4路串口出来,通过相应的232串口、485串口芯片,可以扩展相应的接口。 该项目通过STM32的SPI接口扩展4路串口出来,通过串口收发数据。 目录 一、硬件准备 二、资料准备 三、CODE 四、硬件连接 五、测试&结果 一、硬件准备 主控板一个,这里选择的是STM32F103评估板 CH9434评估板 杜邦线若干 二、资料准备 使用沁恒提供的CH9434数据手册一份http://www.wch.cn/downloa

weixin_41984295的博客 6943

基于STM32、HAL库的CH9434总线转UART驱动程序设计

CH9434是一款USB转4串口控制芯片,可以将单个USB接口扩展为4个独立的串口(UART)。支持多种数据格式(数据位5-8,停止位1/1.5/2,奇偶校验或无校验)// 读取接收到的数据。// 重新启动接收中断。// 向所有4个串口发送数据。// UART初始化函数示例(USART1)// 其他UART初始化函数类似...// 初始化CH9434。// 初始化UART1。// 初始化UART2。// 初始化UART3。// 初始化UART4。工作电压:3.3V/5V兼容。

corlin6688的博客 990

STM32 SPI驱动 CH9434串口拓展芯片

CH9434是一款SPI转四串口控制芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式系统扩展异步串口。CH9434包含四个兼容16C550的异步串口,最高支持4Mbps波特率通讯。支持GPIO,支持半双工收发自动切换引脚TNOW。 特点: 工作电压:3.3V。 支持通讯波特率设置,波特率范围1200-4000000bps。 串口每个方向独立FIFO缓存1.5K。 独立四个异步串口,兼容16C550并且有所增强。 串口支持5/6/7/8个数据位以及1/2个停止位。 串口支持奇、偶、无校验、空白0、标志1等校验方式。 支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。 提供半双工RS485收发使能引脚。 SPI最高速率为16MHz。 支持多种睡眠方式以及电源控制,可通过SPI接口唤醒。 芯片内置时钟,可选外部晶振提供时钟。 芯片提供可配置GPIO功能。 提供QFN48_5X5无铅封装,兼容RoHS。 应用领域: MCU/DSP/嵌入式系统。 工业自动化RS-485通讯。 串口服务器、多串口卡。 与蓝牙、4G、WiFi等串口模块通讯实现无线传输。

CH9432/CH9434/CH9437/CH9438系列芯片Linux系统应用指南

CH9434DS1.PDF - 南京沁恒微电子股份有限公司CH9432DS1.PDF - 南京沁恒微电子股份有限公司CH9438DS1.PDF - 南京沁恒微电子股份有限公司CH9437DS1.PDF - 南京沁恒微电子股份有限公司Linux驱动下载链接:此资料包包含以下部分: Linux系统SPI/I2C/UART控制接口转SERIAL/CAN/GPIO设备驱动程序、GPIO应用库与演示程序.型号控制接口转换接口CH9434DSPI/I2C4路UART/4路GPIO/1路CAN。

weixin_45775669的博客 1073

CH9434是一款SPI转四串口转接芯片

ch9434驱动

CH9434不止于串口扩展:在安卓工控板上玩转GPIO与RS485的完整指南

本文深入探讨了CH9434芯片在安卓工控板上的高级应用,包括GPIO控制与RS485总线优化。通过详细的代码示例和配置指南,展示了如何解锁CH9434的25路GPIO功能,实现多路继电器控制和数字输入采集,同时优化RS485工业总线的自动方向控制与阻抗匹配。文章还提供了安卓NDK环境下的驱动移植和HAL层实现技巧,助力开发者充分发挥这颗SPI转四串口芯片的工业级潜力。

weixin_30550081的博客 126

30秒精准解析论文PDF:PyMuPDF4LLM+Qwen2本地Agent实战指南

PDF文献解析是科研信息处理的基础能力,其本质是将非结构化文档转化为可计算的语义结构。传统OCR方案在原生PDF(如LaTeX导出)上精度低、容错差;而基于PDF对象树的解析技术,能精准定位文本、公式、图表锚点与参考文献区块,为后续结构化提取提供高质量输入。结合轻量级领域微调模型(如Qwen2-1.5B-Instruct)与强约束提示词工程,可实现研究目标、方法框架、核心结果等五大要素的高保真蒸馏。该技术路径兼顾隐私安全、零成本复现与离线鲁棒性,特别适用于高校实验室、研究生课题组及AI初学者构建个人文献处理

weixin_33509203的博客 286

HDLbits练习11 - Counter 1-12 ( Exam/ece241 2014 q7a )

(如这题用于当复位信号为高或者计数器递增至12时,该信号置1使计数器的输入信号 ’ d ’ 变为 ’ 4’b0001 ’ ,再加载到 ’ Q ’ 中。当 ’ load ’ 信号为高时,在时钟的上升沿,计数器会将 ’ d ’ 输入的值加载到 ’ Q ’ (计数器的输出)中,而不是递增当前值。用途:在时钟上升沿触发的情况下,如果 ’ enable ’ 信号为高,计数器的值会递增,如果 ’ load ’ 信号为高,计数器将加载 ’ d ’ 信号的值。作用: ’ Q ’ 是计数器的当前值,也是模块的主要输出。

weixin_62830176的博客 473

CH9434调试笔记

CH9434 是一款SPI 转四串口转接芯片,提供四组全双工的9 线异步串口,用于单片机/嵌入式系 统扩展异步串口。CH9434 包含四个兼容16C550 的异步串口,最高支持4Mbps 波特率通讯。最多支持25 路GPIO,提供半双工收发自动切换引脚TNOW。●工作电压:3.3V ● 支持通讯波特率设置,波特率范围1200-4000000bps ● 串口每个方向独立FIFO 缓存,发送1536 字节,接收2048 字节 ● 完全独立四个异步串口,兼容16C550 并且有所增强 ● 串口支持5/6/7/8

m0_61852620的博客 1848

深入解析AutoConfigURL劫持:从注册表权限到一键修复

本文深入解析了AutoConfigURL劫持的原理,揭示其通过篡改注册表权限锁定浏览器设置的机制。文章提供了从手动修复注册表权限到使用一键修复工具的详细解决方案,并指导用户进行DNS检查与病毒查杀,以彻底根除此类顽固劫持问题。

weixin_29229989的博客 767

CH432,CH438,CH9434串口扩展芯片常见问题

目前WCH有三款串口扩展芯片CH432,CH438以及CH9434。 型号 CH432 CH438 CH9434 扩展串口数量 2 8 4 通讯接口 并口/SPI(具体需要看芯片封装) 并口 SPI 接口速度 支持最高

二进制模----细微行动改变影响世界 5593

UE4打包为Framework库嵌入iOS原生工程

UE4打包为Framework库嵌入iOS原生工程

tangfuling1991的博客 1294

Android Binder——数据传递载体(二十一)

同一进程间的对象传递都是通过引用来做的,因而本质上就是传递了一个内存地址。而跨进程采用了虚拟内存机制,两个进程都有自己独立的内存地址空间,所以跨进程传递的地址值是无效的。进程间的数据传递是 Binder 机制中的重要一环,Android 系统中担负这一重任的就是 Parcel。Parcel 是一种数据的载体,用于承载希望通过 IBinder 发送的相关信息(包括数据和对象引用)。正是基于 Parcel 这种跨进程传输数据的能力,进程间的 IPC 通信才能更加平滑可靠。

小旭的专栏 576

【亲测免费】 探索无限可能:STM32 SPI驱动CH9434串口拓展芯片

探索无限可能:STM32 SPI驱动CH9434串口拓展芯片 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在嵌入式系统开发中,串口通信是不可或缺的一部分。然而,许多单片机或嵌入式系统受限于有限的串口资源,难以满足复杂应用的需求。为了解决这一问题,我们推出了基于STM32的SPI驱动程序,用于控制CH9434串口拓展芯片。CH9434是一款强大的SPI转四串口控制芯片...

gitblog_09816的博客 1987

C#与倍福TwinCAT3通信实战:ADS协议封装与设备变量读写完整源码

倍福(Beckhoff)TwinCAT3 作为工业自动化领域主流的软PLC系统,其内置的ADS(Automation Device Specification)协议是实现上位机与TwinCAT3通信的核心标准。传统ADS通信开发存在门槛高(协议细节复杂)、稳定性差(缺乏统一异常处理)、复用性低(重复编码)等问题。本文基于 C# 技术栈,聚焦“协议封装标准化、变量读写易用化、通信稳定工业化”核心需求,提供一套完整的 ADS 协议封装方案与设备变量读写源码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1987

单片机/Linux/安卓的SPI转4串口扩展芯片资料CH9434

1、概述 CH9434 是一款 SPI 转四串口转接芯片,提供四组全双工的 9 线异步串口,用于单片机/嵌入式系统扩展异步串口。CH9434 包含四个兼容 16C550 的异步串口,最高支持 4Mbps 波特率通讯。最多支持25 路 GPIO,提供半双工收发自动切换引脚 TNOW。 2、特点 ● 工作电压:3.3V。 ● 支持通讯波特率设置,波特率范围 1200-4000000bps。 ● 串口每个方向独立 FIFO 缓存,发送 1536 字节,接收 2048 字节。 ● 完全独立四个异步串口,兼容 16

骑猪看夕阳~的博客 3545

信奥赛C++提高组csp-s之线段树详解

信奥赛C++提高组csp-s之线段树详解

王老师青少年编程 925

AI智能体丨使用Coze一键生成中式养生视频,39 条作品涨粉 37.9 万!(附保姆级教程)

本文介绍如何利用扣子(Coze)AI智能体工作流高效制作中式养生短视频。该方案通过AI自动生成养生文案、古风插画素材、语音合成和视频剪辑,将传统制作流程从2-3小时缩短至1-2分钟。工作流包含文案创作、音频生成、图片素材制作和视频合成四大模块,采用大模型处理各环节内容,最终输出可直接导入剪映的草稿文件。特别适合希望快速批量制作文化氛围感强、兼具干货与视觉效果的养生内容创作者,效率提升近百倍。

李同学Lino的博客 3028

麒麟系统stty测试串口

1.背景 在对arm架构系统串口测试时候发现,常用的测试cudecom等工具无法识别PCIE转出来的串口,最后退而求其次,使用stty命令方式对串口进行回环测试 注意自己实际要测试串口的映射表(/dev/tty*所对应的实际物理串口) 2.Stty指令语法 stty [-F DEVICE] [--file=DEVICE] [SETTING]... or: stty [-F DEVICE] [--file=DEVICE] [-a|--all] or: ...

qq_41619571的博客 3826

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何把android系统,【教程】如何移植安卓系统

该楼层疑似违规已被系统折叠隐藏此楼查看此楼1.首先先清楚的了解本机型的硬件配置,也就是主板平台方案,分辨率等。通常同系列的CPU不同机型的ROM拼包移植成功率较高。2.挑选合适的底包和移植包,底包和移植包尽量同源。3.找出底包和移植包两者的不同之处,目的是让我们了解需要改动什么才可以让别的机型ROM能在我们的机型上面使用,在底包、原生包、移植包上进行交叉对比。卡刷ROM条件:1、机器必须先ROO...

weixin_30273263的博客 4019

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ESP32 S3 使用 CH9434 扩展串口和IO口(附IDF工程文件和对应电路图设计)

最近在工作中由于ESP32S3只只有3个串口资源,在无法更改MCU的情况下,才有了沁恒微电子的CH9434A这款芯片,通过SPI扩展了了四路串口和多个IO资源。但实际测试中发现,沁恒提供的驱动代码对STM32等芯片比较友好,但是对于ESP32的硬件SPI存在时序匹配的不上的问题,故针对这个问题,整理了这篇文章。有问题大家可以留言,不定时更新完善该文章。(略) 有问题可以留言,

u012868722的博客 1473

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

使用CH9434实现SPI转四串口

使用CH9434实现SPI转四串口CH9434芯片概述技术手册及开发资料特点SPI通信格式软件控制 CH9434芯片概述 CH9434 是一款SPI 转四串口转接芯片,提供四组全双工的9 线异步串口,用于单片机/嵌入式系统扩展异步串口。CH9434 包含四个兼容16C550的异步串口,最高支持4Mbps 波特率通讯。最多支持25 路GPIO,提供半双工收发自动切换引脚TNOW。 技术手册及开发资料 CH9434技术手册 CH9434评估板设计原理图,单片机端操作例程,LINUX驱动及应用例程 特点 ● 工作

Amateur6的博客 5777
上一篇: CH36X系列接口芯片Linux系统开发库说明
下一篇: Linux串口出厂测试工具与使用说明
PC技术小能手
博客等级 码龄7年 1万+粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值