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

虚心求教。。困扰了很久。不知道怎么破网上有个是可以处理单个数据的貌似,但是多个数据的读写不知道怎么操作... 虚心求教。。困扰了很久。不知道怎么破
网上有个是可以处理单个数据的貌似,但是多个数据的读写不知道怎么操作
展开
 我来答
释栩
推荐于2016-03-19 · TA获得超过107个赞
知道答主
回答量:38
采纳率:0%
帮助的人:20.2万
展开全部
什么是单个数据?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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
yl0409202
2013-11-29 · TA获得超过567个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:291万
展开全部
IIC都是两根线,只不过这两根线可能跟很多芯片的管脚复用。那么多芯片怎么办?加地址线当片选信号吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式