I have a board with an 18F25K22 micro, a MCP23017 port expander, an I2C eeprom and a DS3231 clock chip. When programming the 18F25k22 via ICSP, after some number (highly variable) of programming cycles, the DS3231 gets unhappy and hangs the I2C bus. Leaving the board unpowered for an hour or more (sometimes shorter periods work, sometimes longer) will restore proper operation. I have boards of two different designs and applications that have the same problem with the DS3231 clock chips. Other similar boards with an MCP23017 port expander and no clock chip never experience problems like this.
The board runs off a 5 volt supply and every chip has a 0.1uF bypass cap. The I2C bus has 4.7k pullups. I use a PICkit 2 for programming.
Any ideas why this is happening? Or how to eliminate the problem/expedite recovery?
The board runs off a 5 volt supply and every chip has a 0.1uF bypass cap. The I2C bus has 4.7k pullups. I use a PICkit 2 for programming.
Any ideas why this is happening? Or how to eliminate the problem/expedite recovery?