IIC最常用的通讯协议,但普遍用于单片机、arm这些,用FPGA实现大材小用,但对于菜鸡水平练练手很不错,考验串并转换和时序的控制。今天我就以mpu6050陀螺仪为例,实现FPGA的iic通信。
1.首先我们还是研究mpu6050的datasheet 。mpu6050我就不用介绍了,直接看关键信息
1)mpu6050上电延时至少30ms 。

2)iic最大时钟为400khz。slave address为 b110100 x r/w,x位是mpu6050的sd0引脚。第二张是我使用模块的原理图,很明显能看到sd0引脚被拉低,所以模块sd0管脚悬空就行,因此slave address为 b1101000 r/w。


3)iic的 start 与 stop 信号

4)如图,ack为低电平,nack为高电平。

本文介绍了如何使用FPGA实现IIC通讯,以MPU6050陀螺仪作为实例。文章详细阐述了从阅读MPU6050的数据手册,理解其时序要求,到实现IIC的读操作和读时序仿真的过程,并通过UART模块验证了数据的正确读取。最后,简要提及了写时序的实现和初始化步骤。
最低0.47元/天 解锁文章
1170

被折叠的 条评论
为什么被折叠?



