XMC™使用Dave4快速开发(四)IIC实验

        IIC(InterIntegrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,IIC是一种高效能且常见的串行总线,一般用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC IC 之间进行双向传送, 现在串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。
IIC总线协议非常简单,熟悉时序后,可以使用任意两个IO口,通过软件模拟IIC时序来进行通信。而多数单片机都带着硬件IIC功能,硬件IIC除了必须使用特定的引脚之外,相比起模拟IIC,使用硬件IIC用法简单,速度快,使用稳定,而且不占用MCU时间,可以实现IIC中断。在绝大多数的开发中,还是直接使用硬件IIC更好。
        在XMC系列单片机中,配置IIC需要使用USIC单元,通用串行接口通道模块( USIC)是一个包括若干串行通信协议的灵活接口模块。每个 USIC 模块包含两个名为 USICx_CH0 USICx_CH1 的独立通信通道,其中 X 表示 USIC 模块的编号(例如: USIC0_CH0 表示编号为 0 USIC 模块中的通道 0)。用户可以在工作期间配置每个信道处理的协议和被使用的引脚。每路 USIC 通道可被单独配置以满足应用的需要,比如可在运行期间选择或修改协议类型、无需复位。USIC 支持以下协议:

1. UARTASC,异步串行通道)
- 模块能力:接收器/发送器,最大波特率 fPB/4
- 更宽的波特率范围,可以降至个位数字的波特率
- 每个数据帧包含的数据位个数: 1 – 63
MSB LSB 在先

2. 硬件支持的 LIN 协议(局域互联网)
- 基于 ASC 协议的数据传送
- 可由内置波特率发生器的捕获事件实现波特率检测
- 软件控制校验和产生,实现更高的灵活性

3.SSC/SPI(带有/不带从控选择线的同步串行通道)
- 支持标准(即一路),两路和四路 SPI 格式
- 模块能力:最大波特率 fPB/2,受限于循环延迟
- 每帧数据包含 1 - 63 位数据,对于超过 63 位的数据帧,需明确定义数据帧的结束条件
- 支持生成校验位
MSB LSB 在先

4. IIC(英特尔-IC 总线)

- 应用波特率范围: 100 kb/s-400 kb/s
- 支持 7 位或 10 位寻址
- 具有完整的主机和从机的设备能力

5. IIS(信息娱乐音频总线)
- 模块能力:最大波特率 fPB / 2

本章介绍XMC单片机如何使用USIC单元中的IIC协议功能,如何使用Dave4开发软件方便快捷的使用硬件IIC。

1. 第一步先在Dave4的Add New APP 中搜索I2C,添加I2C_MASTER,添加之后双击打开
2. 首先在General Setting中配置传输速率,速率配置主要看从机要求,XMC单片机最大支持400kb/s,



3.在Interrupt Settings中可以配置发送和接收中断,这里我们配置两个中断,分别更改名称。



在这之后选择我们要使用的引脚即可,点击编译生成代码,然后我们添加两个中断函数EndOfTransmit(void){} EndOfReceive(void){}即可。在发生接收和发送事件时即会进入中断,在IIC的通信中,IIC接收数据存到寄存器中,接收到数据之后给CPU中断,在中断服务程序给定一个标志位,然后在主程序中通过标志位去处理寄存器中的数据。
 
配置完成后,即可使用官方库提供的发送接收函数进行通信
I2C_MASTER_Transmit(I2C_MASTER_t *handle, bool send_start, const uint32_t address,   uint8_t *data, const uint32_t size, bool send_stop);
I2C_MASTER_Receive(I2C_MASTER_t *handle, bool send_start, const uint32_t address,uint8_t * data, const uint32_t count, bool send_stop, bool send_nack);
其中send_start表示需要启动发送,address即从设备地址,data表示接收或发送的数据,count和size表示数据大小,send_stop表示发送停止,send_nack表示从机是否响应,即NACK信号。

系列博文:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论