首页 > 分类 > 正文

i2c总线控制问题

2023-5-27  灯光音响租赁、昆明LED屏出租、昆明灯光音响出租、昆明LED屏租赁、昆明LED屏出租、线阵音响出租 

如果芯片自带i2c控制器,时钟信号是芯片自己发出如果是自己用io口模拟i2c接口时序,时钟信号就要编程控制。i2c_sclk,DE2上I2C总线控制问题,i2c_sdat,STDP4028如何用I2C控制AUX读取模组端EDID?I2C总线驱动主要包含了I2C适配器数据结构i2c_adapter、I2C适配器的algorithm数据结构i2c_algorithm和控制I2C适配器产生通信信号的函数。

1、怎样使用逻辑分析仪调试I2C信号呢?

必须对I2C的标准熟悉,用逻辑分析仪采集记录时间段的脉冲序列和标准协议对照。I2C是一种很常见的一种总线,它的好处就是只需要两条线,就可以并联很多IC进行控制。但因为多装置(Device)及开路集极(Opendrain)的架构,常使I2C汇流排除错工作变得困难。所以有一个好的逻辑分析仪会带来很大帮助。例如当总线上挂了很多设备时候,我们需要筛选出特定地址位的I2C数据,可采用LAB7504逻辑分析仪中的I2C触发功能来进行定位,首先,先把感兴趣装置的地址位址输入。

2、I2C总线的快速模式

快速模式器件可以在400kbit/s下接收和发送。最小要求是:它们可以和400kbit/s传输同步,可以延长SCL信号的低电平周期来减慢传输。快速模式器件都向下兼容,可以和标准模式器件在0~100kbit/s的I2C总线系统通讯。但是,由于标准模式器件不向上兼容,所以不能在快速模式I2C总线系统中工作。快速模式I2C总线规范与标准模式相比有以下特征:1、最大位速率增加到400kbit/s;2、调整了串行数据(SDA)和串行时钟(SCL)信号的时序;3、快速模式器件的输入有抑制毛刺的功能,SDA和SCL输入有施密特触发器;4、快速模式器件的输出缓冲器对SDA和SCL信号的下降沿有斜率控制功能;5、如果快速模式器件的电源电压被关断,SDA和SCL的I/O管脚必须悬空,不能阻塞总线;6、连接到总线的外部上拉器件必须调整以适应快速模式I2C总线更短的最大允许上升时间。

3、嵌入式ubuntu下怎么使用i2c设备

虽然I2C硬件体系结构和协议都很容易理解,但是LinuxI2C驱动体系结构却有相当的复杂度,它主要由3部分组成,即I2C设备驱动、I2C总线驱动和I2C核心。I2C核心是I2c总线和I2c设备驱动的中间枢纽,它以通用的、与平台无关的接口实现了I2C中设备与适配器的沟通,提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(即“algorithm”)上层的、与具体适配器无关的代码以及探测设备、检测设备的地址的上层代码等。

I2C总线驱动是对I2C硬件体系结构中适配器的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部。I2C总线驱动主要包含了I2C适配器数据结构i2c_adapter、I2C适配器的algorithm数据结构i2c_algorithm和控制I2C适配器产生通信信号的函数。

4、STDP4028如何用I2C控制AUX读取模组端EDID?

.楼主,不太清楚您说的AUX是哪种?如果是音频的那个AUX,是无法读取显示器的EDID的。如果是工程调试的那个AUX,那得需要相应的调试工具去软件里查找EDID。2.您如果是开发人员,一般用到的信号发生器都有直接读取EDID,并将EDID直接反馈到显示屏上的功能。3.您如果是普通用户,目前有一系列显卡可以支持查看EDID功能,英伟达的NVS系列显卡,安装最新的显卡驱动,显卡控制中心里就可以导出EDID文件,不过仅仅是.txt格式的。

5、DE2上I2C总线控制问题,不是很懂这玩意儿,全部积分献上了assigni2c…

assigni2c_sdatreg_sdat?1bz:0我最近也在研究这段代码;我把自己的分析说出来,i2c_sdat为inout类型,作为input时,主机从数据线上获取从机的ACK信号,即ack<i2c_sdat,上述代码在3次取ACK信号上,我分析是没有问题的;作为output时,主机控制总线(启动和停止I2C通信)及发送数据(配置WM8731),此时,reg_sdat作为输出寄存器,当为0时,i2c_sdat数据线也相应为0,当为1时,数据线为高阻Z状态,此时的疑问是从机能否识别到数据线上的1;

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

什么是单个数据?IIC总线就是把所需的数据经sda数据线串行传入芯片中,需要多少传多少就是了,我这有个以前写的IIC控制WM8731的例程,你可以参考下//`timescale1ns/1psmodulei2c_control(clk,i2c_sclk,i2c_sdat,i2c_data,start,tr_end,ack,

counter,sdo);inputclk;input[23:0]i2c_data;inputstart;inputrst;//inputw_r;inouti2c_sdat;outputi2c_sclk;outputtr_end;outputack;output[5:0]counter;outputsdo;regsdo;regsclk;regtr_end;reg[23:0]sd;reg[5:0]counter;assigni2c_sclksclk|(((counter>4)

分享到:
相关新闻