I2C驱动程序移植问题

时间:2012-11-10 20:49:51

标签: embedded serial-communication i2c

我将Atmel AVR32 U3的I2C驱动程序移植到Energy Micro EFM32GG Cortex-M3设备。 驱动程序使用Atmel BSP与I2C总线通信,为其提供从设备的地址,寄存器地址和数据。

Energy Micro BSP没有实现寄存器地址。 我的问题是,根据标准的I2C协议,我可以将寄存器地址添加为发送数据的第一个字节吗?

1 个答案:

答案 0 :(得分:6)

虽然I 2 C协议是标准化的,但I 2 C外围设备在不同供应商之间并不相同(甚至相似)。虽然从Atmel实现中保留API可能是有用的 - 为了应用程序代码的可移植性 - 您将不得不完全改变底层实现。

您的reference manual将详细描述其I 2 C外设的寄存器接口和硬件操作。由于I 2 C协议本身,您将看到它与相应的Atmel外设几乎没有关系,除了相似之外。此外,DMA的实现在各部分之间会有所不同,因此驱动程序也会有所不同。

Energy Micro对application note on I2C进行C source code操作。那是你应该开始的地方。