IIC总结

本来2天的任务,4天才弄完,总算是调出来了,但是任然很粗糙,有太多的需要修改,总结IIC过程:

1.时序要十分明白(有时间可以增加现在的scl频率,看能不能达到100KHz)

2.IIC的sda为双向口,即sda=sda_link?sda_r:1'bz;为输出时:sda_link=1;sda_r=XX;为输入时:XX=sda;第一次没搞懂,

  出现很多错误,且在顶层模块中仍然要定义为inout端口,但是在tb文件中要定义为wire端口。

3.IIC的数据始终是在scl高电平稳定,scl低电平改变,无论是读还是写,所以,主机在读写时,采样的电平不一样,写数据时是低电平,读数据时是高电平。

4.对于这种有scl的时序情况下,scl要单独驱动,第一次自己就是随意拉高拉低,scl不是规则的波形,而且也不好处理,看了网上的资料,

  http://www.cnblogs.com/gianttank/archive/2010/11/20/1882575.html觉得很好,这样做能够很好的扑捉到高低电平,和上升沿下降沿等,处理起来更

  方便。

5.每一个stop和start之间必须要有大于5ms的延时,一直没调出来,也这个有关。

6.对于黑金的仿顺序法,开始觉得很好用,但是现在觉得有点死板,而且很浪费资源,很多时候完全可以用状态机实现的。(虽然他那个也算是一个死板的状态机)

转载于:https://www.cnblogs.com/Mrseven/archive/2011/11/25/2262513.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值