通过I2C接口更新ADuC702x系列软件

需积分: 10 3 下载量 95 浏览量 更新于2024-09-16 收藏 396KB PDF 举报
"这篇文档是关于I2C接口在ADuC702x系列芯片上用于在线编程的应用说明,特别是如何在没有硬件开关的情况下,通过I2C接口进入下载模式进行软件更新。" I2C(Inter-Integrated Circuit)是一种多主控、串行通信协议,由飞利浦(现NXP Semiconductors)开发,主要用于连接微控制器和各种外围设备,如传感器、显示驱动器、实时时钟等。I2C协议只需要两根线——数据线SDA和时钟线SCL,即可在多个设备之间传递信息。 在ADuC702x系列芯片中,I2C接口用于在线编程,尤其是I型号的芯片,如ADuC7019BCPZ62I、ADuC7020BCPZ62I、ADuC7021BCPZ62I和ADuC7026BSTZ62I,它们可以通过I2C接口实现在线编程功能。进入下载模式通常需要一个硬件开关,但在某些不允许在P0.0引脚配置硬件开关的应用中,可以通过软件方式进入下载模式。 进入下载模式的过程涉及对特定内存地址0x80014的处理。如果该地址的内容为0xFFFFFFFF,芯片在复位后会进入下载模式,内核受到保护,JTAG访问被禁止,设备等待I2C0总线(P1.0和P1.1)上的命令来加载新代码。而如果地址0x80014非零,设备将处于用户模式,不能直接进入下载模式,除非0x80014被擦除并且设备经历周期性供电或复位。 为了通过I2C接口进行代码更新,首先需要确保0x80014地址的内容始终保持为0xFFFFFFFF。这可能需要修改启动代码,并使用I2C写扇区指令(I2CWSD)来写入这个特定地址。在没有硬件开关的情况下,这一过程显得尤为重要,因为它允许在不需要物理干预的情况下更新设备固件。 在调试和测试阶段,开发者可以使用I2C加载器来将新的代码加载到ADuC702x芯片中。这需要擦除地址0x80014,然后通过I2C通信协议将新的程序数据传输到设备。一旦新代码被加载并通过I2C接收到了运行命令,用户代码就会开始执行。 I2C在ADuC702x系列芯片中的应用展示了其在微控制器编程和固件更新方面的灵活性,尤其是在那些对硬件改动有限制的场合。这种技术对于嵌入式系统的设计者来说是非常有价值的,因为它简化了设备的维护和升级流程。