下载此文档

已调通的i2c-非常的不错.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
////////////////////////
//¿ÉÒÔ°Ñ״̬»úÉè¼Æ³ÉÈý¶ÎʽµÄ״̬»ú
//³ÌÐòµÄÓÃÒâÊÇÏÈÍùÒ»¸öµØÖ·Àïдһ¸öÊý£¬È»ºóµÈºÜ³¤µÄʱ¼ä°ÑÕâgin
if(clk_cnt!='d50)
cnt<=3'd5;
else
begin
case(cnt_delay)
9'd124: cnt<=3'd1;
9'd249: cnt<=3'd2;
9'd374: cnt<=3'd3;
9'd499: cnt<=3'd0;
default: cnt<=3'd5;
endcase
end
end
////generate scl
always@(posedge clk_50m )
begin
if(clk_cnt!='d50)
scl_r<=1'b1;
else if(cnt==3'd0)
scl_r<=1'b1;
else if(cnt==3'd2)
scl_r<=1'b0;
end
////generate wr or rd singal
always@(posedge scl_r )
begin
if(clk_cnt!='d50)
begin
wr<=1'b1;
rd<=1'b1;
scl_cnt<='d0;
end
else
begin
if(scl_cnt=='d80)
begin
scl_cnt<='d0;
end
else
begin

scl_cnt<=scl_cnt+1'b1;
end
if(scl_cnt>'d71)
begin
wr<=1'b1;
rd<=1'b1;
end
else if(scl_cnt>'d32)
begin
wr<=1'b1;
rd<=1'b0;
end
else
begin
wr<=1'b0;
rd<=1'b1;
end
end
end
always @(posedge clk_50m )
begin
if(clk_cnt!='d50)
begin
state<=idle;
sda_r<=1'b1;
sda_link<=1'b0;
num<=4'd0;
read_data<=8'd0;
end
else
begin
case(state)
idle:
begin
sda_link<=1'b1;/////Êý¾ÝÏßsdaΪoutput
sda_r<=1'b1;
num<=4'd0;
if((!wr)||(!rd))
begin
db_r<=device_write;//·¢Æ÷¼þµØÖ·£¨Ð´²Ù×÷£©
state<=start1;
end
else
state<=idle;
end
start1:
begin
if(cnt==3'd1)/////scl_hig sclΪ¸ßµçƽÆÚ¼ä
begin
sda_link<=1'b1;//Êý¾ÝÏßsdaΪoutput
sda_r<=1'b0;///À­µÍÊý¾ÝÏßsda£¬²úÉúÆðʼÐźÅ
state<=add1;//////////start
num<=4'd0;
end
else
state<=start1;//////////µÈ´ýscl¸ßµçƽÖмäλÖõĵ½À´
end
add1://////////device_write+'0'
begin
if(cnt==3'd3)///scl_low
begin
if(num==4'd8)
begin
num<=4'd0;
sda_r<=1'b1;
sda_link<=1'b0;/////////sdaÖÃΪ¸ß×è̬(input)
state<=ack1;
end
else
begin
state<=add1;
num<=num+1'b1;
case(num)
4'd0:sda_r<=db_r[7]

已调通的i2c-非常的不错 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wxc6688
  • 文件大小36 KB
  • 时间2022-05-14