今天使用430通过I2C接口与时钟芯片进行通信时,时钟芯片始终都无回应(NACK)。使用示波器观察信号波形,发现发送的从机地址和自己设置的不同。查看430 User Guide后发现对于地址的配置理解有偏差。
时钟芯片DataSheet上写的地址为 0b1101000。因此根据I2C协议,发送时为 0b11010000,接收时为 0b11010001。
430 User Guide 对于UCBxI2CSA寄存器的解释为:在7位地址模式下,bit6 是MSB,高于bit6的位将被舍弃,因此UCBxI2CSA应被设置为 0b01101000; 而之前错误设置成了0b11010000。