CY7C68013A doesn't read firmware from Eeprom

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

cross mob
Anonymous
Not applicable

In our recent mass production, we found that there're minor part (~2%) of the device (using CY7C68013A)  doesn't

read firmware from Eeprom on certain conditions. That only happens if user plugs off the USB cable (which also provides

power to device) from the device and quickly plug it back on (e.g. within 5 seconds)...Note that we observed

the main powers (including 5V, 3.3V and others), all of them are down to GND in 1 second (When plug off), and the on board

voltage monitor will reset the MCU (CY7C68013A) when the 3.3V Vcc reaches ~2.8V (When power on)...When such issue occurs,

the Powers, Reset, Clock to CY7C68013 are all good, but we didn't observe any the I2C pulses on the I2C bus (on normal

booting, there're many such I2C activities when device is plugged on and the MCU reads firmware from Eeprom).

     If we wait for longer time (after plug off), e.g. 20 seconds, such booting fail rate is lower...the issue was gone if waiting

for 30+ seconds (and plug back).

     Note:

     1). Such issue only show up on minor part of the devices (~2%).

     2). For a problematic device, it has rate (e.g. 50%) to show the issue even we do a quick plug off/on.

     3). For a problematic device, if we wait longer after plug off (and then plug it on), the rate is much lower.

     I understood that this might be the PCBA hardware related issue (e.g. soldering issue), but my question is what might make

the CY7C68013A is stuck in the boot loader and can't read firmware from external Eeprom.

Thanks!

0 Likes
1 Solution

Hello Jintao Zheng,

I believe that you would have added the pull-up resistors on the I2C lines. Upon booting, the SCL and SDA lines should be logic HIGH. In case the FX2LP finds one of these lines to be logic LOW, the enumeration will fail. Kindly, recheck the voltage levels of the SCL and SDA lines upon booting.

Best regards,

Srinath S

View solution in original post

0 Likes
6 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Jintao Zheng,

- Did you check the RESET pin timings of the FX2LP to be in accordance with the values mentioned in the datasheet?

- Are there any other I2C devices connected on the I2C bus other than the boot EEPROM?

- Whenever the issue happens, does the device stay in the boot loader or does the device come up as an 'Unknown Device' in the device manager?

- Please share the I2C bus captures upon failure.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hi Srinath,

     Thanks for help...The answers to your questions are:

     a). The Reset pin timing is slightly different from the requirements on the spec., we're using ADM1818 (2.88V), so, it will reset

for 150ms when Vcc reaches 2.88V. (The datasheet says 5ms when Vcc reaches 3.0V)...could that be the problem? Actually we used

such design (ADM1818 as voltage monitor) for many years (on various CY7C68013A based designs, 100,000+ units)...but only very

recently, such issue showed up (in small rate).

     b). Yes, there're several, 1x DSP and 1x MCU (other MCU) both are held with the /RST to "L", and a I2C IO expander (PCA9536). Actually,

we also doubt the issue might be related to the other I2C devices.

     c). In most cases, the host (Windows) will show "Unknown Device" finally after some time (e.g. 30+ seconds).

     d). When power up (plug in), both SCL and SDA are high (ramping to high, as there're pull up resistor for each), for the failure cases, the SDA drops to "L" (~0.1V) and stay there, the SCL is always "H" (3.3V)....there're no any other acitivities (upon failure case).

     One more question: What is the Port pin (e.g. PA0 - PA7) status when the CY7C68013A is in boot loader?  Thanks!

Best Regards!

JT

0 Likes

Hello Jintao Zheng,

- RESET timing of 5ms is a minimum value that is mentioned in the datasheet. Anything above 5ms is fine.

- Please check if there are other I2C devices that are acting as master. FX2LP should be the sole master of the bus.

- The address of the other I2C devices present should not be the same as that of FX2LP boot EEPROM. This can cause bus contention.

Upon booting, the port pins are tri-stated.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Srinath,

     Thanks for the info.

     Basically, there's certainly only one I2C master (68013A) and the I2C addresses of the I2C devices

are different. However, as the CY7C68013A is the very first device booted...at the moment of the

issue showing up, other I2C devices are in RESET (the 2x MCUs, they will be set to slave when

they're out of RESET and start to work normally)...we will take further look at

the I2C device status at the moment..Thanks!

JT

0 Likes

Hello Jintao Zheng,

I believe that you would have added the pull-up resistors on the I2C lines. Upon booting, the SCL and SDA lines should be logic HIGH. In case the FX2LP finds one of these lines to be logic LOW, the enumeration will fail. Kindly, recheck the voltage levels of the SCL and SDA lines upon booting.

Best regards,

Srinath S

0 Likes
Anonymous
Not applicable

Hi Srinath,

     Yes, both of the SCL and SDA have 1.5kohm pull up.

     Certainly, the "L" state of SDA (failure cases) is not correct (which stops the boot loader of the 68013A)...and we observed that it's "L" from the very beginning (from the V3.3. ramping), it seems that there's an I2C device (not CY7C68013A) misbehaved...we're trying to find which

one and why.

     Thanks!

Rgds!

JT

0 Likes