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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2131|回复: 2

[求助]请教一个I2C的程序的问题

[复制链接]
发表于 2005-8-17 13:34:25 | 显示全部楼层 |阅读模式

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

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

x
我是新手,请教各位大哥,做了一个I2C的slave的写的程序,但是仿真出来EIO的输出都是零,而不是sda的值,请各位高手指点一下
module I2Cslave(scl, sda, rst,eio);
    input scl;
    inout sda;
    input rst;
    output eio;
    reg out_flag;
    reg[7:0]  sda_buf;
    reg[7:0] eio;
    reg[3:0] cnt;
    reg ack;   
//------------------------------------------------------------------------
parameter     r7=8'b10101111;
parameter     w7=8'b10101110;
always @(negedge sda & rst)
   if (!rst)
     begin
       out_flag <= 0;
       sda_buf <= 0;
       eio<=0;
     end
else
   if (scl)
      begin
         @ (posedge  scl) sda_buf[7] <= sda;  
         @ (posedge  scl) sda_buf[6] <= sda;
         @ (posedge  scl) sda_buf[5] <= sda;
         @ (posedge  scl) sda_buf[4] <= sda;
         @ (posedge  scl) sda_buf[3] <= sda;
         @ (posedge  scl) sda_buf[2] <= sda;
         @ (posedge  scl) sda_buf[1] <= sda;
         @ (posedge  scl) sda_buf[0] <= sda;
     
      if (sda_buf==w7)
              begin
     cnt <= (cnt+1'b1);
      if ( cnt == 3'b111 )
begin
  eio <= {sda_buf[6:0], sda};
   cnt <= 3'b0;
   sda_buf<= 8'b0;
   out_flag=1;
   ack<=1'b0;
end
end
                  else
begin
sda_buf <= {sda_buf[6:0], sda};
end
endmodule
发表于 2005-8-17 20:29:08 | 显示全部楼层

[求助]请教一个I2C的程序的问题

always @(negedge sda & rst)     // 此处有误
  if (!rst)
      .......
  else
      ......
发表于 2005-8-29 12:51:12 | 显示全部楼层

[求助]请教一个I2C的程序的问题

是的
这个地方肯定不能这样些的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-19 10:39 , Processed in 0.026764 second(s), 12 queries , Gzip On, Redis On.

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