2012-11-10 90 views
0

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

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

+0

您应该指定您正在使用的处理器。你可能是正确的,你可以把地址放在数据的开头。但使用模式应该在处理器的用户手册中明确说明。 – TJD

+0

@TJD它是ARM皮质M3 - EFM32巨型壁虎 – stdcall

+0

@Mellowcandle:在问题中而不是评论 - 我为你编辑它。 – Clifford

回答

6

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

reference manual您的部分将详细介绍其外设的寄存器接口和硬件操作。由于I协议本身的原因,您会发现它与相应的Atmel外设没有多少相似之处。此外,DMA的实现在各个部分之间会有所不同,因此驱动程序也会有所不同。

能源微有一个application note on I2C操作与C source code。那是你应该开始的地方。