I have an M16C, a FT245BM USB interface IC and a 93C46 Serial EEPROM. I am using the MCU to write to the EEPROM on run-time. What I need to do is to overwrite one byte of data on a specific address on the EEPROM. Seemingly, I can do it successfully because I can see the change on that address point when I read the content of the EEPROM using MPROG. So far everything is fine. My problem is that FTDI drivers cannot recognize the device when I reset the USB or on the next power on after the writing to the EEPROM using program flow. However, when I write to the EEPROM manually using MPROG, I do not experience this problem. Why do you think the drivers cannot recognize the device although the content of the EEPROM in both situations (writing using MPROG and program flow) exactly matches.