在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3652|回复: 7

[求助] i2c总线verilog从机代码求答疑

[复制链接]
发表于 2015-11-25 21:35:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
主机和从机只有sda和scl相连。现在我设定好的主机那边传来的scl是:
always @(negedge clk)
scl=~scl;
也就是错开相位、2倍分频。
从机这边
always
scl_r<=scl;

现在从机这边我需要一个同步的时钟,求教大神,怎么对scl信号实现加倍频率、再调整回相位。。。。
调整相位我应该可以做到。就是不知道怎么倍频。大神帮我!
谢谢
发表于 2015-11-25 21:58:58 | 显示全部楼层
没那么麻烦, 直接建一个 MB 系统 I2C 很容易做
 楼主| 发表于 2015-11-25 22:16:28 | 显示全部楼层
回复 2# murphy522

啊大神,又是你。我是初学者。求告知mb系统是啥?
另外麻烦归麻烦,是否有办法可以倍频?
发表于 2015-11-25 23:05:03 | 显示全部楼层

标题

回复 3# petrel87
要么找个高频时钟进来,不行就异步设计。
发表于 2015-11-26 08:15:31 | 显示全部楼层
软核microblaze上有i2c的外设接口,一般用更高频率的时钟来采样也可以。
 楼主| 发表于 2015-11-26 09:50:24 | 显示全部楼层
回复 4# zzczx


   他的从机只有2根线外接。scl和sda。能不能说说怎么异步?
发表于 2016-3-11 15:07:18 | 显示全部楼层
I2C速度不是很快,可以通过延迟来控制相位
发表于 2016-3-11 15:30:11 | 显示全部楼层
因为I2C时钟频率一般是从几十到几百KHz (比如10khz~400khz),不知您的scl时钟频率是多少。
假设master产生的SCL 是100khz。

再假设slave 的系统时钟sys_clk是25mhz(就是比SCL的频率高出多个数量级)
1,那么,就可以把 SCL 输入到sys_clk 时钟域中的flip-flop 数据输入端,采用3级flip-flops
2,然后采用与非门就可以获取到SCL的上升沿下降沿。
3,在用sys_clk中的计数器产生延时采样触发信号,作为采集SDA 的flip-flop的使能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 03:12 , Processed in 0.026786 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表