TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F169I2C通信问题

MSP430F169作为I2C从机,DSP2812模拟I2C主机,通信过程是从机往主机发送数据,那么从机的地址该怎么确定,用户指南上没有说当主机不是430 的时候,从机地址怎么确定。例程上双机通信都是169之间的通信,从机地址为0x48.希望大神告诉我

Ling Zhu2:

你好,MSP430作为从机的话,地址可以设置的呀,I2COA, I2C Own Address Register。如图:

Shi JianHua:

回复 Ling Zhu2:

就是,顶,我觉得是不是程序也可以自己制定地址,就像模拟I2C一样

xianlong liang:

回复 Ling Zhu2:

我的意思是当430作为从机,另外的主机不是430,而是DSP,主机由软件模拟,那么,当需要从机往主机发送数据的时候,地址字节和读写控制位该怎么写。你说的是430双机通信的地址。

Ling Zhu2:

回复 xianlong liang:

 430作为从机的时候,地址可以在430程序中设定。

此时,430 对于DSP来说就是一个 IIC 的从机,DSP 通过 从机地址访问 430。 

“地址字节和读写控制位该怎么写?”  符合IIC协议规定即可。

430双机通信也是 一个主机 一个从机呀,把430主机换成你的 DSP 不就行了?

xianlong liang:

回复 Ling Zhu2:

既然在430中设定,也就是在I2COA中设定,对吧?但是,I2COA只有0-6位有效(7位寻址模式的时候),那么最后一位读写控制位该怎么写呢???你能否讲的再明白点,谢谢!!!

Ling Zhu2:

回复 xianlong liang:

 你好,主机对从机430的操作只需按照标准IIC协议来就行了,430内部的IIC模块会自己处理的。

IIC的通信都是由主机发起的,430收到起始信号之后会接着收7位地址,如果跟自己地址一样,那么会继续判断第8位的 R/W 信号的。

IIC是串行通信,所以没有一下子要并行写8位的情况。

xianlong liang:

回复 Ling Zhu2:

我知道你说的,我想问的是I2COA里面自己随便写都行,是吧??其实I2C起始信号后面,先发送一个字节的数据,7位是地址+一位读写控制位,然后从机应答。但是I2C的地址寄存器是右对齐的,还有DSP是软件模拟的I2C时序,DSp发送一个起始信号以后,地址字节和读写控制位怎么发出去??

如果我定义I2COA = 0x48,则DSP在起始信号之后应该发0x91(DSP读从机)???

Ling Zhu2:

回复 xianlong liang:

 

如果主机用模拟 IIC 的话,时序符合 IIC 协议即可, MSB First   读写位紧跟7位地址。

xianlong liang:

回复 Ling Zhu2:

如果我定义I2COA = 0x48,则DSP在起始信号之后应该发0x91(DSP读从机)???你看看我发的地址对不对,还有,用户手册上说,I2COA寄存器是右对齐的,解释一下右对齐是怎么回事??谢谢

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F169I2C通信问题
分享到: 更多 (0)