永发信息网

verilog怎么控制iic的读写,怎么控制多个数据的。。求大神

答案:2  悬赏:40  手机版
解决时间 2021-01-23 07:07
verilog怎么控制iic的读写,怎么控制多个数据的。。求大神
最佳答案
什么是单个数据?IIC总线就是把所需的数据经sda数据线串行传入芯片中,需要多少传多少就是 了,我这有个以前写的IIC控制WM8731的例程,你可以参考下
//`timescale 1ns / 1ps
module i2c_control(
clk,
i2c_sclk,
i2c_sdat,
i2c_data,
start,
tr_end,
ack,
rst,
counter,
sdo);

input clk;
input [23:0]i2c_data;
input start;
input rst;
// input w_r;
inout i2c_sdat;
output i2c_sclk;
output tr_end;
output ack;
output [5:0]counter;
output sdo;

reg sdo;
reg sclk;
reg tr_end;
reg [23:0]sd;
reg [5:0]counter;

assign i2c_sclk=sclk |(((counter>=4)&(counter<=30))?~clk:0);
assign i2c_sdat=sdo?1'bz:0;

reg ack1,ack2,ack3;
wire ack=ack1 |ack2 |ack3;

always@(negedge rst or posedge clk)begin
if(!rst)counter<=6'b111111;
else begin
if(start==0)
counter<=0;
else
if(counter<6'b111111)counter<=counter+1;
end
end

always@(negedge rst or posedge clk)begin
if(!rst)begin sclk<=1;sdo<=1;ack1<=0;ack2<=0;ack3<=0;tr_end<=0;end
else
case(counter)
6'd0 :begin ack1<=0;ack2<=0;ack3<=0;tr_end<=0;sdo<=1;sclk<=1;end
6'd1 :begin sd<=i2c_data;sdo<=0;end
6'd2 :sclk=0;
6'd3 :sdo<=sd[23];
6'd4 :sdo<=sd[22];
6'd5 :sdo<=sd[21];
6'd6 :sdo<=sd[20];
6'd7 :sdo<=sd[19];
6'd8 :sdo<=sd[18];
6'd9 :sdo<=sd[17];
6'd10 :sdo<=sd[16];
6'd11 :sdo<=1'b1;

6'd12 :begin sdo<=sd[15];ack1<=i2c_sdat;end
6'd13 :sdo<=sd[14];
6'd14 :sdo<=sd[13];
6'd15 :sdo<=sd[12];
6'd16 :sdo<=sd[11];
6'd17 :sdo<=sd[10];
6'd18 :sdo<=sd[9];
6'd19 :sdo<=sd[8];
6'd20 :sdo<=1'b1;

6'd21 :begin sdo<=sd[7];ack2<=i2c_sdat;end
6'd22 :sdo<=sd[6];
6'd23 :sdo<=sd[5];
6'd24 :sdo<=sd[4];
6'd25 :sdo<=sd[3];
6'd26 :sdo<=sd[2];
6'd27 :sdo<=sd[1];
6'd28 :sdo<=sd[0];
6'd29 :sdo<=1'b1;

6'd30 :begin sdo<=1'b0;sclk<=1'b0;ack3<=i2c_sdat;end
6'd31 :sclk<=1'b1;
6'd32 :begin sdo<=1'b1;tr_end<=1;end
endcase
end
endmodule
全部回答
IIC都是两根线,只不过这两根线可能跟很多芯片的管脚复用。那么多芯片怎么办?加地址线当片选信号吧!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求金立f103怎么换字体
聚龙茶楼地址在什么地方,想过去办事,
幸福茶园地址好找么,我有些事要过去,
为什么谜男方法我看不懂啊
芙蓉茶园地址好找么,我有些事要过去,
攀爬侠的飞机在哪里
dnf哪个副职业好,我是狂战士
大众茶园地址在什么地方,我要处理点事!
水云轩地址在什么地方,想过去办事,
规范要求桩基塌落度应该控制在多少以内
为什么手机wifi信号比电脑强
茗苑茶楼地址有知道的么?有点事想过去!
车内饰落雨点后发蓝,下雨车门内饰落上了雨点
入职体检与入学体检区别
宏鑫茶楼地址在什么地方,想过去办事,
推荐资讯
单选题选出没有通假字的一项A.而御六气之辩B.
南河茶楼地址好找么,我有些事要过去,
事字开头成语接龙
帕萨特1.8t正时皮带对的为什么会顶气门
单选题当子女成年并独立生活以后,父母A.仍要
惠能开锁地址好找么,我有些事要过去,
单选题找出对下列单句的主干分析错误的一项,
实验室常用下列装置制取气体,请你根据所学知
光缆线怎样才算损坏
拔山村地址在什么地方,想过去办事,
什么集体填动词
现代商旅宾馆地址在什么地方,想过去办事,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?