在将GPIO87-84配置为I2C引导方式后,将芯片上电发现程序有时不能引导成功。
用示波器观察SDA和SCL管脚发现,当引导不成功时,SDA管脚出现一个下降沿而后马上变为高电平,而SCL管脚则一直为高电平。这可以判断为I2C根本没有启动,而在关于BOOT的文档中说是要先判断受到的是否为0x08AA,才会有后续操作。
请问,对于出现这样的问题,应该如何操作,才能是程序正确从I2C导入?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
首先,当运行2834x_boot_rom.out时,如果不reset芯片,则程序会运行至ITRAPIsr.asm中,并且不能跑出来;如果reset芯片,则程序不会在断点处停下来,因此从BootMode判断到C开始单步运行的操作好像实现不了。
其次,C28346的引导是会循环判断的,即如果我判断到是I2C引导,但是没有收到数据,则会自动reset芯片,重新判断引导方式,对吗?之前说我的引导是有时候成功,有时候不成功,当我引导不成功的时候,我reset芯片也不能使程序再次引导成功了,但是当我执行下面的操作之后,程序又能引导成功了:将引导方式改为"Jump to SARAM”reset芯片,再将引导方式改回I2Cboot。
当引导不成功的时候,管脚电压为3.333V,3.333V,0V,0V。是否符合I2C引导的管脚电压?
对于您说的时间问题,我不是很理解,引导方式是固化程序,不是我能修改的,即便我想修改I2C的设置,也要等芯片先读到0x08AA才可以啊。