在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4540|回复: 3

I2C-Master Core Specification中Transmit register与Receive register应该如何理解?

[复制链接]
发表于 2008-12-29 22:13:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
I2C-Master Core Specification中Transmit register与Receive register应该如何理解?

opencore的I2C-Master Core Specification中
Transmit register与Receive register应该如何理解?
Transmit register是不是用来保存从器件地址吧?
看文档中写着7:1定义是Next byte to transmit via I2C
第0位的定义则是:
In case of a data transfer this bit represent the data’s LSB.
In case of a slave address transfer this bit represents the RW bit.
‘1’ = reading from slave
‘0’ = writing to slave

给我的感觉是不是这个传输寄存器只记录从器件地址,最末位用来设置读写控制的吧?

后面的操作状态机 第一步会先读这个传输寄存器 然后再进行读写移位寄存器里面的数据吧?

那个Receive register就有点看不明白了
看定义是Last byte received via I2C
看代码也一下没看明白

谁解释一下吧
 楼主| 发表于 2008-12-30 18:40:58 | 显示全部楼层
在这个模块中wb_adr_i是不是只是作为寄存器地址来使用的了 见代码中: case (wb_adr_i) // synopsis parallel_case 3'b000 : prer [ 7:0] <= #1 wb_dat_i; 3'b001 : prer [15:8] <= #1 wb_dat_i; 3'b010 : ctr <= #1 wb_dat_i; 3'b011 : txr <= #1 wb_dat_i; default: ; endcase 按照这意思就是使用到的寄存器 通过这个wb_adr_i来选择外部控制器发地址3'b000 就是告诉I2C-Master Core 我要给你发Clock Prescale register的参数了
 楼主| 发表于 2008-12-31 22:21:26 | 显示全部楼层
在设计模块进行状态的控制中是否应该按照下面的逻辑来实现

写信号:<Start><Write Slave Address+Write Bit><Ack><Register Index><Ack><Data><Ack> …… <Stop>
读信号:<Start><Write Slave Address+Write Bit><Ack><Register Index><Ack><Start><Write Slave Address+Read Bit><Data><Ack> …… <Stop>
发表于 2009-1-8 23:51:47 | 显示全部楼层

verilog 中怎么实现Schmitt Trigger和Spike Suppression

请问,你已经实现了i2c吗?快速和高速模式下的Schmitt Trigger和Spike Suppression 怎么理解?代码中可以实现么?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 15:33 , Processed in 0.026141 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表