FPGA之axi_iic ip学习笔记
今天有空来学习一下xilinx的axi_iic ip。
下面的链接是xilinx官网关于axi_iic的数据手册,大家点一下就可以看了
pg090-axi-iic pdf
数据手册先给我们这个ip的顶层框图。这个看起来好像不是很复杂,下面咱们一起来学习学习这个ip。
在这里我还没搞明白sda和scl的_t,_o是什么意思,后面慢慢了解。
接着手册讲解了这几个模块的作用
到这里,我大概理解一下,axi_lite接口接收到主机发送过来的指令,将指令写到寄存器去,寄存器接收到控制信号后,将控制命令发送给Dynamic Master,在TX/RX FIFO 读取/写入数据,IIC控制器接收到这些控制信号和数据后,产生标准的IIC时序操作外部从机。然后上面的中断的,大概是对这个ip中一些信号进行缓存,给上位机读写这样吧。这里不懂不要紧,接着看。
接着手册说了一堆……直接跳到IO口描述表格。
这个才是我想看的。
噢,通过这个表格,我们知道了sda和scl后面跟着符号是什么意思了。
_i是三态输入缓冲,_o是三态输出缓冲,_t是三态输出使能。emmm使能为什么不用_e呢,算了,ip是他们写的就照他们来吧。
下面的小注释也解释了_t是什么意思,大概就是控制sda和scl两个信号的数据方向。
数据手册接着介绍了寄存器地址,这个也是比较重要的。
从注解那里我们可以得知,这个ip是的wstrb信号是没用的,意思就是数据不会被屏蔽,都有效。
接着是寄存器列表。第一个是全局中断使能寄存器,这个是什么意思呢,我们看下他下面的介绍。
从上面这张图,我们知道,当GIE中断寄存器最高位设置为0时,这个ip所有中断都关闭了,外界就不知道ip里面发生了什么事了,当最高位设置为1就可以。所有我们先把这个寄存器最高位设置为1,其他的默认给0,这样打开这个大的中断,才能继续操作下去。
接着就来到了IER寄存器了
后面的有时间再来补充嘿嘿。