打印
[其他芯片]

SPI转四串口芯片CH9434应用笔记

[复制链接]
3984|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WCHTech2|  楼主 | 2020-10-23 16:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
SPI转四串口芯片CH9434应用笔记

概述:
CH9434 是一款SPI 转四串口转接芯片,提供四组全双工的9 线异步串口,用于单片机/嵌入式系统扩展异步串口。CH9434 包含四个兼容16C550的异步串口,最高支持4Mbps 波特率通讯。最多支持25 路GPIO,提供半双工收发自动切换引脚TNOW。


特点:
● 工作电压:3.3V。
● 支持通讯波特率设置,波特率范围1200-4000000bps。
● 串口每个方向独立FIFO 缓存,发送1536 字节,接收2048 字节。
● 完全独立四个异步串口,兼容16C550并且有所增强。
● 串口支持5/6/7/8个数据位以及1/2个停止位。
● 串口支持奇、偶、无校验、空白0、标志1 等校验方式。
● 支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。
● 提供半双工RS485收发使能引脚。
● SPI 最高速率为16Mbit/s。
● 支持低功耗睡眠模式,可通过SPI 接口唤醒。
● 芯片内置时钟,可选外部晶振提供时钟。
● 芯片提供可配置GPIO 功能。
● QFN48_5X5无铅封装,兼容RoHS。


SPI通信格式:
A.发送数据格式第一个字节为操作地址,第二个字节为写入的数据或者读取的数据。
B.操作地址的最高位为操作位,操作位为1则为写入数据,为0则为读取数据。
C.当写入数据时,地址和数据两个字节间需要1uS延时,发送完数据后需要延时3uS才可以进行下一次操作。
D.当读取数据时,地址和数据需要延时3uS,即发送完地址后延时3uS进行数据读取。

例如:要设置“时钟电源寄存器”的值为0x4D,那么就需要先向CH9434发送一个0xC8(时钟电源寄存器的地址+最高位为1表示写入数据),接着再向CH9434发送数据0x4D。

软件控制:
程序设计流程:初始化接口配置->初始化CH9434->初始化串口0到串口3->数据收发。


(1)初始化接口配置
初始化SPI:GPIO的设置以及外设SPI的配置。
复位CH9434的RST引脚:每次单片机重启都进行一次CH9434的复位。
初始化CH9434:开启CH9434的外部晶振,设置倍频系数。

(2)初始化CH9434,四个串口按需求设置相应的寄存器。
串口参数设置:串口的波特率、数据位、停止位、校验位。设置LCR寄存器,将DLAB置位才能操作DLM和DLL寄存器。
串口FIFO设置:FIFO触发等级。FIFO触发等级越高,数据接受中断触发需要的数据越多。
流控设置:开启流控时,仅在检测到CTS引脚输入有效(低电平有效)时串口才继续发送下一个数据,否则暂停串口发送。
串口中断设置:线路状态中断、发送中断、接收中断
开启中断
设置串口RTS、DTR引脚状态

(3)发送数据或接受数据
接收数据函数CH9434UARTxGetRxFIFOData()
发送数据函数CH9434UARTxSetTxFIFOData()
通过这两个函数读取RBR寄存器和向THR寄存器写入数据。






使用特权

评论回复
沙发
yangxiaor520| | 2020-10-30 07:57 | 只看该作者
内置时钟精度满足要求吗?

使用特权

评论回复
板凳
WCHTech2|  楼主 | 2020-10-30 09:41 | 只看该作者
yangxiaor520 发表于 2020-10-30 07:57
内置时钟精度满足要求吗?

在-40~85摄氏度的工作温度范围里,使用内部晶振可正常工作

使用特权

评论回复
地板
正圆椭圆| | 2020-10-30 23:02 | 只看该作者
可以通过SPI唤醒睡眠不错

使用特权

评论回复
5
人的发个哈哈| | 2020-10-31 21:05 | 只看该作者
程序设计流程:初始化接口配置->初始化CH9434->初始化串口0到串口3->数据收发。

使用特权

评论回复
6
人的发个哈哈| | 2020-10-31 21:06 | 只看该作者
串口参数设置:串口的波特率、数据位、停止位、校验位

使用特权

评论回复
7
人的发个哈哈| | 2020-10-31 21:14 | 只看该作者
精度能达到多少?》

使用特权

评论回复
8
WCHTech2|  楼主 | 2020-11-2 11:26 | 只看该作者

在-40~85摄氏度的工作温度范围里,使用内部晶振可正常工作

使用特权

评论回复
9
liu11372650| | 2020-11-2 15:21 | 只看该作者
什么时候量产,还有价格

使用特权

评论回复
10
WCHTech2|  楼主 | 2020-11-2 19:21 | 只看该作者
liu11372650 发表于 2020-11-2 15:21
什么时候量产,还有价格

已量产,价格和样品申请可联系销售:025-52638388

使用特权

评论回复
11
天道酬勤007| | 2020-11-9 10:55 | 只看该作者
这个芯片是单芯片,还是MCU+cos的方式实现的那?

使用特权

评论回复
12
WCHTech2|  楼主 | 2020-11-9 11:01 | 只看该作者
天道酬勤007 发表于 2020-11-9 10:55
这个芯片是单芯片,还是MCU+cos的方式实现的那?

单芯片

使用特权

评论回复
13
zeshoufx| | 2020-11-10 08:44 | 只看该作者
谢谢分享【SPI转四串口芯片CH9434应用笔记】

使用特权

评论回复
14
liangshuang95| | 2020-12-10 07:50 | 只看该作者
好像没有收发指示LED信号驱动管脚

使用特权

评论回复
15
麻花油条| | 2020-12-10 09:55 | 只看该作者
有没有啥BUG

使用特权

评论回复
16
daichaodai| | 2020-12-12 14:22 | 只看该作者
不错,单看参数确实比某厂的要强。

使用特权

评论回复
17
fuqinyyy| | 2020-12-13 17:33 | 只看该作者
这个和FTDI得很像啊

使用特权

评论回复
18
jcky001| | 2020-12-17 11:12 | 只看该作者

可以通过SPI唤醒睡眠不错

使用特权

评论回复
19
明天真的好| | 2020-12-17 20:15 | 只看该作者
串口使用的时候,fifo的使用该怎么设置呢?

使用特权

评论回复
20
天道酬勤007| | 2020-12-22 10:49 | 只看该作者
目前我们试用了一下这个芯片。感觉有些问题,想请教一下。目前我们是4个串口同时接收测试。子串口波特兰115200。每包数据256字节,发送间隔是50ms。这个时候数据就会出现溢出或者其他错误。如果把间隔加大100ms,那么还是可以正常接收的。我个人感觉是芯片内部处理不过来。特别是在spi接口和扩展串口同时工作的时候,这个现象会非常严重。理论上来看spi10M的速率,缓存空间也是够大的,不应该溢出才对。 不知道你们有没有做过这方面的压力测试。还是说这个芯片本身在设计上有什么bug。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

1142

帖子

8

粉丝