运动控制器13:STM32的I2C模块

I2C模块功能知识点梳理

简介

  1. 多主机
  2. 用于控制I2C的时序,协议,仲裁和定时
  3. 标准和快速两种模式
  4. CRC码生成和校验
  5. 总线功能:SMBus和PMBus
  6. 可使用DMA

主要特点

  1. 并行协议转换器
  2. 多主机功能,可做主机和从机
  3. 主机:产生时钟和起始位,终止位
  4. 从机:可编程地址,双地址能力,停止位检测
  5. 产生和检测:7/10位地址和广播呼叫
  6. 通信速度:100K和400K
  7. FLAG:状态和错误,状态包括发送器和接收器模式,字节发送结束和BUS忙
  8. 错误包括,仲裁丢失,应答错误,错误起始位终止位,时钟上溢和下溢
  9. 通信过程和错误均可触发中断
  10. 可选的时钟拉长功能,时钟延长:等待读取数据寄存器,中间可以有延时,如果禁止,则报警输出过载错误。
  11. 可选DMA功能,以及PEC检测,SMBusG功能

功能描述

模式选择
  1. 4种模式,主从收发
  2. 默认从机,生成起始条件后,自动转主机,仲裁丢失或产生停止信号,自动转从机。
  3. 8位传输,高位在前,起始条件+1字节/2字节地址,接收器发回应答信号。
从机模式
  1. 时钟:2M和4M
  2. 检测起始位,将地址存入和比较
  3. 如果从机为发送,则数据入DR,此时SCL为低电平,等待地址被复位和SDA准备好,收到应答可中断,然后检测到停止条件,可中断
  4. 如果从机为接收则跟上述相反
主机模式
  1. 用过START产生起始条件,进入主模式
  2. 操作顺序
  • 设置模块时钟
  • 时钟寄存器
  • 上升时间寄存器
  • 启动I2C
  • 产生起始条件
  • 发送从地址
  • 根据最后一位决定:继续发送OR接收
  • 设置STOP位产生终止,自动进入从机模式
  1. 同样有4种错误:总线错,应答错,仲裁错和过载
DMA功能
  1. DMA产生条件为:DR发送变空和接收变满
  2. DMA设置的数据量完成,则发送ETO,产生中断
  3. DMA步骤
  • I2C的DR地址
  • 存储地址
  • 发送字节数
  • 通道优先级
  • 中断条件:一半还是全完
  • 激活通道

中断请求

  1. 通信中断:起始位,地址,10位头,停止,数据传输完,接收缓冲满和发送空
  2. 错误中断:总线,仲裁,响应,过载,以及PEC,超时和SMB提醒

时钟延时,PEC和SMBus功能

  • 略过

你可能感兴趣的:(运动控制器13:STM32的I2C模块)