问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-24 11:03

我来回答

2个回答

热心网友 时间:2023-10-10 17:44

什么是单个数据?IIC总线就是把所需的数据经sda数据线串行传入芯片中,需要多少传多少就是 了,我这有个以前写的IIC控制WM8731的例程,你可以参考下
//`timescale 1ns / 1ps
mole 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
endmole

热心网友 时间:2023-10-10 17:44

IIC都是两根线,只不过这两根线可能跟很多芯片的管脚复用。那么多芯片怎么办?加地址线当片选信号吧!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 产品包装用什么二维码比较好? iic的介绍 二维码那个好? 二维码好用吗?还有怎么用? 二维码的优点有哪些? 有一个社交软件,好像是左滑是喜欢,右滑不喜欢得,那个软件叫什么? 一款交友软件不是探探 不过方式差不多 右划是笑脸 左划是&#10060; 求解答是哪个软件 类似探探的软件有哪些啊? 有一款软件可以左滑右滑看美女帅哥的叫什么名字?貌似还可以约会聊天的 快乐大本营宣传的两个软件就剩那个向左滑向右滑的那个东西 左右滑动就换人的视频聊天软件有哪些啊? 网贷逾期不还会被起诉吗 欠网贷几年不还是否会被起诉 网贷还不上会被起诉吗 网贷4年没还会被起诉吗 太阳能热水器的集热管有几种 请问太阳能有哪些类型 太阳能热水器的种类 太阳能热水器的样式有几种? 最好有图片........ 太阳能热水器的类型有哪些 二维码这么好用,那假如有一天全部用完了,怎么办? 企业应该用什么样的二维码比较好? 在电子行业中,IIC是什么的简称? 二维码二维码二维码有什么好的?拜托各位大神 IIC的主机应答和从机应答有什么区别,分别用在什么地方,就是说什么时候用主机应答,什么时候用从机应答? 二维码哪个好 IIC总线器件有哪些????除了AT24C01~16外还可以控制哪些器件??51单片机中的IIC总线还能做什么?? 二维码很好么 I2C 在手机中是怎么控制各器件的? 产品包装用哪家的二维码比较好? IIC 为什么分为3个(I2C1,I2C2,I2C3) stm32通过iic总线控制数字电位器X9241的程序 s3c2410中iic接口寄存器主要有几个,分别有什么作用 急:89C52用IIC控制TEA5767的C程序; 用MCU通过IIC控制ADV7611BSWZ-RL的寄存器,可是无法读取与无法写入,是什么原因?要怎么解决? iic的硬件结构 做梦梦见自己和女朋友逛街牵手什么兆头大神们帮帮忙 前几晚梦见自己跟女朋友在一起了,都说梦境也现实是相反的,这是不是说明了将来的不可能?我很爱她! 梦见自己和女友结婚,这意味这什么? 百脉泉34°真情酒价格