国芯思辰|航顺HK32F103xC/D/E-IIC的应用及注意事项

HK32F103x/C/D/E是航顺芯片推出的中大容量的103系列芯片(www.suopu.net)。作为32位MCU常用的外设IIC(Inter-Integrated Circuit)简称IICBus。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus 2.0兼容。

I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—System Management Bus)和PMBus(电源管理总线—Power ManagementBus)。根据特定设备的需要,可以使用DMA以减轻CPU的负担。

一、I2C 主要特点

1、可以作为并行总线或I2C总线协议转换器。

2、拥有多主机功能:该模块既可做主设备也可做从设备。

当为主设备功能时具有产生时钟、产生起始和停止信号的功能;当为从设备时具有可编程地址检测、2个从地址的双地址响应能力、检测停止位的功能。

3、具有广播呼叫、产生和检测7位/10位地址。

4、支持不同的通讯速度

支持标准模式(最高100 kbit/s)、快速模式(最高400 kbit/s)和极速模式(最高1 Mbit/s),有20mA输出驱动。

5、不同标志提示

具有发送器/接收器模式、字节发送结束、I2C总线忙状态标志提示,具有主模式时的仲裁丢失、地址/数据传输后的应答(ACK)错误、检测到错位的起始或停止条件、禁止拉长时钟功能时的上溢或下溢错误标志提示。

6、具单字节缓冲器的DMA。

7、具有地址/数据通讯成功、以及错误中断功能。

8、ARP能力、主机通知协议、硬件CRC(PEC)生成/验证、超时验证、ALERT协议管理。

9、IIC还有一个独立于CPU时钟域的时钟,这样I2C可在地址匹配时从停止模式唤醒MCU。

二、I2C 功能描述

I2C模块接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(高达100kHz)或快速(高达400kHz)的I2C总线。

接口可以下述4种模式中的一种运行:

• 从发送器模式

• 从接收器模式

• 主发送器模式

• 主接收器模式

该模块默认地工作于从模式。接口在生成起始条件后自动地从从模式切换到主模式;当仲裁丢失或产生停止信号时,则从主模式切换到从模式。允许多主机功能。

通信流

主模式时,I2C接口启动数据传输并产生时钟信号。串行数据传输总是以起始条件开始并以停止条件结束。起始条件和停止条件都是在主模式下由软件控制产生。

从模式时,I2C接口能识别它自己的地址(7位或10位)和广播呼叫地址。软件能够控制开启或禁止广播呼叫地址的识别。

数据和地址按8位/字节进行传输,高位在前。跟在起始条件后的1或2个字节是地址(7位模式为1个字节,10位模式为2个字节)。地址只在主模式发送。

在一个字节传输的8个时钟后的第9个时钟期间,接收器必须回送一个应答位(ACK)给发送器。参考下图。

软件可以开启或禁止应答(ACK),并可以设置I2C接口的地址(7位、10位地址或广播呼叫地址)。

三、HK32F103xC/D/E在操作I2C上需要注意的地方

用户在使用HK32F103xC/D/E时,当I2C工作在I2C Master RX读操作时,ACK发出不及时问题。这个原因是因为设计原因导致I2C在接收8位数据位后ACK发出不及时, 用户在应用时采用下面2中方式来解决这个缺陷。

程序中可以通过配置中断模式,在收到ACK后产生中断后再发送数据;另一种可以配置DMA发送,让DMA自动进行判断发送。

来源:芯评天下,如涉及作品版权问题,请联系删除。

主营产品:造纸制浆,瓦利打浆机