微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > i2c代码读取地址的问题,大神救助!

i2c代码读取地址的问题,大神救助!

时间:10-02 整理:3721RD 点击:
在网上下了很大关于i2c的代码,有lattice公司的rd1005,rd1006,还有夏宇闻老师的i2c的代码,但是在用modelsim仿真的时候,我发现testbench都是固定了从设备的地址,有没有那种i2c先读取地址再把数据送到该地址寄存器的代码哎?求助求助!

自己写一个也很简单


我刚刚读大二,verilog也刚刚起步,老板让我直接找网上成熟的代码,而且项目也很急,请问有没有现成的这种代码呀?

直接将夏老师的那个testbench的从设备地址改一下就OK了啥


     改一下从设备地址那也只是对应的一个地址啊,我现在想的是有多从设备,先读地址信号选中一个地址寄存器后,再读数据,把数据信号读到该寄存器中。

这个也简单啊,将那个从设备地址做成一个变量,在需要访问的时候设一个值,下一次要用不同地址时,再设成另外一个值就可以了。


我发现我木有理解清楚,应该是集成很多个寄存器,然后主设备发送地址和数据,对寄存器进行读写操作,这该如何实现呢?

既然要学习I2C的协议,那就先好好看看I2C的协议标准,这个网上有的是。
然后试着写一写代码,仿真一下。可以从网上download一个i2c的simulation model,测试一下是否可以通信。
我始终不喜欢上来就要代码的做法,要是真的想做,那就自己做一个,况且i2c又不是很复杂。
学生阶段我相信时间还是很多的,静下心来好好看看协议规范,不是挺好吗

之前看书也看过,书上的代码都是简化的,而且仅是实现功能,不能代表性能和稳定性。
看书仅借鉴思路,你所做的事情我做过。i2c看上很简单,其实调试还是很多困难。建议:
1.明确你老板的需求,i2c实现多少寄存器读写,太多了,是否考虑400K,这样不至于影响性能。
2.明确i2c协议,吃透时序;
3.先做一个简单的接口调试,吃透协议,然后时序你需要的功能

在opencore上有个经典的I2C的代码  你可以看看  支持wishbone

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top