打印
[其它应用]

中颖TWI 模块概述以及配置

[复制链接]
1416|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TWI(Two-wire Serial Interface)接口是对 I2C 总线接口的继承和发展,完全兼容 I2C 总线。
TWI 由一根时钟线和一根数据线组成,以字节为单位进行传输,可兼容 SMBus 总线规范,自动对字节传
输进行处理,并对串行通信进行跟踪。

SCL/SDA 是 TWI 总线的信号线。 SDA 是双向数据线,SCL 是时钟线。在 TWI 总线上传送数据,首先
送最高位(MSB),由主机发出起始信号,然后由主机发送一个或多个字节的数据,数据传送完毕,由主机发
出停止信号,完成一次最简单的 TWI 传输。


TWI 总线配置


1、I/O 口配置
TWI 总线要求配置为开漏输出,注意开漏输出时外部上拉限制为 VDD 或略超 VDD。
GPIOA_CFG->AFRH.BIT.AFR15 = 9; // PA15 = AF9 ~ SDA
GPIOA_CFG->AFRH.BIT.AFR14 = 9; // PA14 = AF9 ~ SCL
GPIOA_CFG->OTYPER = 0xC000; // PA14/15: Open-Drain output
GPIOA_CFG->PUPDR.BIT.PHDR14 =1 ; // PA14: pull high,此处用内部上拉示例
GPIOA_CFG->PUPDR.BIT.PHDR15 =1 ; // PA15: pull high,此处用内部上拉示例
2. 波特率配置
// 预分频,0:64 分频, 1:16 分频, 2:4 分频, 3:1 分频
TWI1->CR.BIT.CR = 3; // TWI 时钟 1 分频
// 波特率公式:Ftwi/(16+2*CR*BRT), 设置波特率 100KBps 时,Ftwi=30MHz, 要求 CR*BRT=142,
取 CR=1,BRT=142
TWI1->BRT = 142;
3. 通信地址配置
// AMR=0,不开启屏蔽。ADDR[6:0]=0111011b,本机地址。GC=0b,禁止响应通用地址。
TWI1->ADDR.V32 = 0x0076;

使用特权

评论回复
沙发
药无尘| | 2023-7-26 14:43 | 只看该作者
这个TWI是不是就是IIC啊

使用特权

评论回复
板凳
LOVEEVER| | 2023-12-5 16:22 | 只看该作者
药无尘 发表于 2023-7-26 14:43
这个TWI是不是就是IIC啊

这个貌似兼容IIC

使用特权

评论回复
地板
tpgf| | 2023-12-12 13:07 | 只看该作者
所有TWI兼容的器件的总线驱动都应该是漏极开路或集电极开路的结构,这样就可以实现线与的功能

使用特权

评论回复
5
nawu| | 2023-12-12 14:24 | 只看该作者
TWI总线上传输的数据是通过在时钟线(SCL)高电平期间对应的数据线(SDA)上的电平来判别的

使用特权

评论回复
6
aoyi| | 2023-12-12 15:03 | 只看该作者
当所有的TWI器件输出为三态时,总线会输出高电平,如果接有上拉电阻电压将会被拉高。

使用特权

评论回复
7
gwsan| | 2023-12-12 16:21 | 只看该作者
当TWI工作于主机模式时,比特率发生器控制时钟信号SCL的周期

使用特权

评论回复
8
tfqi| | 2023-12-12 17:06 | 只看该作者
TWI器件在输出为0时,TWI总线会产生低电平。

使用特权

评论回复
9
zljiu| | 2023-12-12 23:01 | 只看该作者
总线的速度有两个不同的规范,一种的速度低于100kHz,而另外一种的速度高达400kHz,总线间的电容不能大于400pF

使用特权

评论回复
10
szt1993| | 2023-12-14 19:20 | 只看该作者
zljiu 发表于 2023-12-12 23:01
总线的速度有两个不同的规范,一种的速度低于100kHz,而另外一种的速度高达400kHz,总线间的电容不能大于40 ...

总线间电容如何计算需求呢?

使用特权

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

本版积分规则

252

主题

2020

帖子

5

粉丝