MSP430G2253的硬件I2C在读模式中,先发送从字节地址,后来不需要STOP信号直接转换为读START ,那么这个STOP信号如何消去。请赐教,已经搞了几天了,没有效果。
你用MSP430当主机还是从机?
你搞清楚I2C的时序没有?STOP和START是谁发出的,ACK和NACK又是谁发出的?
你是单从机还是多从机系统?需不需要使用地址来区分响应的从机?
你使用的是标准I2C还是自己定义的I2C协议?可以是不标准的I2C协议吗?
这话什么意思“后来不需要STOP信号直接转换为读START ”怎么会不要停止信号呢,那从机不是一直占着么
读模式中,不是要先发从机地址当中寄存器地址吗,然后直接转换成读数据
有些器件是没有子地址的啊,你干嘛还非要那个地址,看从机是啥
我现在调的这个芯片自己带寄存器,要发寄存器地址,现在的问题是寄存器地址发过去了,总要转换成读模式先是write然后不要stop直接转换成read
那么可以认为是作为主机读片外寄存器的数据咯?
RESTART信号是必要的,不能省略。在一次完整的通信中:
主机发送START
主机发送从机地址
从机响应ACK
主机写入寄存器地址
从机响应(N)ACK
主机发送STOP信号
主机发送RESTART信号
主机发送从机地址
从机响应ACK
从机发送数据内容
主机响应(N)ACK
主机发送STOP信号
终于明白你的意思了,不用发停止位,第二个指令直接发,读写直接变就可以了,IIC协议就是那样
对了,还要重新启动一次总线,刚说错了,不停止,启动不了
是从机时序这样要求吗?
一般只有在从机有这样的特殊要求的时候才会这样。这不是标准的I2C通信协议,I2C通信里单次通信只能单向通信。
如果从机有这样的要求,那么你直接对照着例程的时序改就是了呀。。。