IC 验证之I2C控制器使用

IC 验证之I2C控制器使用

1.I2C使用流程

I2C总线使用流程:
1. 配置I2C使能寄存器EN中关闭I2C使能;
2. 配置标准速度I2C时钟高电平寄存器SS_SCL_HCNT;
3. 配置标准速度I2C时钟低电平寄存器SS_SCL_LCNT;
4. 配置数据保持时间寄存器SDA_HOLD;
5. 配置目标地址寄存器TAR,值为从设备地址;
6. 配置从设备地址寄存器SAR,值为从设备地址;
7. 配置中断屏蔽寄存器IMR打开中断使能;
8. (特殊)中断清除寄存器ICR,清除所有中断,读该寄存器只会清除软件可清楚中断,而不会清除硬件可清楚中断;
9. 配置发送FIFO threshold;
10. 配置接受FIFO threshold;
11.配置I2C使能寄存器EN中打开I2C使能;
12.向DATA_CMD寄存器写入或读取数据,高位在前,低位在后! I2C从设备EEPROM读写时序图如下 :在这里插入图片描述
在这里插入图片描述
就观察来看,读操作和写操作中的第一个CONTROL BYTE 是I2C控制器自动发送的,不需要手动向DATA_CMD写入TARADDR地址,只需要写入寄存器地址ADDR BYTE ,但是在读操作中第二个CONTROL BYTE是需要向DATA_CMD写入数据,手动发出的!
在连续读操作时,master每收到一个数据,就需要向DATA_CMD寄存器的CMD位置1发出,这样控制器会发出ack给从设备,从设备在收到ack后才会继续返回数据!在这里插入图片描述

2.I2C中断处理问题

以I2C为例,在模块内部通常是多个中断信号经过或操作后,变为一个模块级的中断信号I2C_INTR输出给CPU的中断控制器GIC。假如要使用接收中断,但是在接收中断来临时,伴有有其他未知中断产生,但是中断服务函数里,却没有将相应中断标志位清除,那么中断服务函数退出后,模块级中断信号I2C_INTR仍为高电平,那么将会阻碍下一次中断服务函数正常响应,无法正常进入中断。

I2C的发送中断阈值寄存器可配置范围为0-255,对应1-256字节,也就是最小发送中断阈值是1。I2C在使能后,即使不用发送功能,但是只要发送FIFO里小于1个字节数据,硬件就会自动产生TX_EMPTY中断。这样有可能就会干扰其他中断正常使用,所以要如果不用发送功能,可以将发送中断屏蔽掉。

以上纯属个人理解,如有错误,欢迎指正!
末尾收藏一篇I2C笔记, I2C学习笔记.

  • 3
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Verilog是一种硬件描述语言,i2c是一种串行通信协议。Verilog i2c是将这两种技术结合起来,用Verilog编写i2c协议的硬件描述。 i2c协议是一种基于主从模式的串行通信协议,常用于连接芯片和模块之间。Verilog i2c的实现可以用来设计i2c总线控制器,如在片上系统(SoC)、数字信号处理器(DSP)、微控制器(MCU)和其他数字电路中。Verilog i2c还可以在某些嵌入式系统中将多个从设备连接到一个主设备,简化了系统设计和布线。 在实现Verilog i2c时,需要以下几个步骤: 1. 确定主从设备:i2c有两种设备,一种是主设备,另一种是从设备。主设备由控制器或MCU驱动,从设备则由其他元器件或IC组成。Verilog i2c可以支持多个从设备和一个主设备。 2. 确定时序和信号:i2c通信需要时钟和数据线,还有一个或多个控制线。Verilog i2c需要确保时序和信号共享正确,以避免通信中的任何错误。 3. 设计状态机:在Verilog i2c中,需要设计用于发送和接收数据的状态机。状态机可以实现i2c协议的不同状态,并执行正确的操作序列。 4. 实现数据传输:最后,在Verilog中实现i2c协议的数据传输。这一步通常需要使用Verilog模块,包括数据缓冲区、状态机和i2c总线控制器。 总之,Verilog i2c是用Verilog编写i2c总线控制器的技术,用于连接主设备和从设备。它可以简化多从设备系统的设计和布线,并提供可重复使用的、可维护的硬件描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值