Boot from i2c sometimes default to USB boot

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
LuCu_4098176
Level 3
Level 3

Hello,

Sometimes after a manual hard reset (without powering off everything) the boot defaults to USB and the code stored in the eeprom is no longer read.

I did my research an found that for some unknown reason SDA gets low and then the FX3 assumes the i2c bus is in use and default to USB boot.

After that no matter what I do it will stay like this forever and I need to take power off and turn it all back on.

When powering it up all works perfect all the times. It is only if I apply a manual hardware reset with the chip powered that sometimes it locks up in this state.

Is there a way to avoid this situation ?

Thanks.

Luis C.

0 Likes
1 Solution
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Luis,

When FX3 is reset, if SDA was low, then then there is a problem. When FX3 tries to boot again, I2c master sees the I2c bus to be busy and hence EEPROM reset would be necessary. This is an expected behavior.

Regards,

Hemanth

Hemanth

View solution in original post

4 Replies
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Luis,

You can connect reset of fx3 to eeprom reset as well so that eeprom also gets reset when fx3 is reset.

Regards,

Hemanth

Hemanth
0 Likes

Hello Hemanth.

I use the 24M02, same exact chip and connections as the FX3 kit.

This eeprom has no reset pin !!!

I am using a jumper to manually reset.

is this problem related with bad de-bouncing of reset line ?

is the FX3 chip sensitive to that and confuses the eeprom ?

Thanks.

Luis C.

0 Likes
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Luis,

When FX3 is reset, if SDA was low, then then there is a problem. When FX3 tries to boot again, I2c master sees the I2c bus to be busy and hence EEPROM reset would be necessary. This is an expected behavior.

Regards,

Hemanth

Hemanth

Hello Hemanth,

Yes I know this is the expected behavior.

What I learned with this is that the reset line of the FX3 must stay clean during the boot from I2C.

An hand made reset with a metallic tip or a jumper has a number of contact bounces that may trigger

another reset while the load is already ongoing and there is a probability to stop the process when the SDA is low

Then it will stay low as FX3 will not clock it out of that state on the next reset (as it assumes the bus is busy).

Nice dead lock

Well if anyone needs to provide the reset line to the user/outside-world it better to debounce it clean.

Tks for help.

Regards

Luis.

0 Likes