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.

TUSB6250: TUSB6250 not accessing I2C after reset

Part Number: TUSB6250

We are using a TUSB6250 to access a CF Card

We are using a I2C eeprom in our hardware which is not accessed every time after reset.

Some times the I2C bus is dead some times not.

Any idea what prevents TUSB6250 from accessing I2C?

Thanks.

Michael

  • Hi Michael,

    What value pullups are used on SDA / SCL?

    Regards,
    JMMN
  • We are using 4.7K on SDA and SCL. 

    Is this value  too high?

  • Hi Michael,

    Can you change to a lower resistor value? I see that the reference designs for this device show very strong 1K-2K pullups on SDA / SCL. When the TUSB6250 misses the EEPROM, does it still connect properly to the USB host or is it non-functional?

    Regards,
    JMMN
  • Hi,

    we changed the resistors to 1K each without success.

    We also tried to pull up all empty I/O. 

    The TUSB6250 every time tries to talk to the EEPROM but the firmware is not loaded fully.

    5% to 10% of all powerup cycles fail to load the firmware.

    So it seems to work, but not reliable.

    What else can we try?

    Thanks,

    Michael

  • Hi Michael,

    What is the part number of EEPROM used?

    Regards,
    JMMN
  • Thank you for your reply.
    We tried several eeproms from Atmel, ST and OnSemi.
    We checked all with an I²C-Analyzer, the readout is exactly the same for failure and working start ups.
    It seems that the I²C connection is not the cause for our problem which occurs that the firmware is not loaded completely.

    Now we found that the length of USB connection between TUSB6250 and host processor (i.MX6S) is correlated to the occurrence of the failure.
    The original length is 43,6 mm on the PCB, routed with 100 Ohm impedance symmetrically. When we break the connection and solder app. 1 meter of AWG28 wire into the connection, it works without failure. We even tried capacitors in X or Y connection, we tried series resistors an common mode chokes with no success, only the delay of the connection seems to influence the behavior.

    What may be the cause for such a behavior ? Thank you for your support.

    Regards,
    Michael
  • HI Michael,

    In the failing state does the TUSB6250 still connect to the host? Does it attempt to load code from the USB host controller?

    Regards,
    JMMN
  • Hi,

    the TUSB6250 loads the firmware correctly via I2C.
    The problem remaining is that the TUSB6250 mass storage device is not enumerated by the host in cases of a fail.

    It is enumerated correctly when using a normal USB cable or some wires as explained above.
    When using the TUSB6250 with the on board traces (length 43,6 mm) it fails to be enumerated in many tries.

    Regards,
    Michael
  • Hi Michael,

    Can you send me what is reported via USB when the system fails?  You can download the free usbview.exe utility from Microsoft and it will show the descriptors reported by the USB devices on the bus.

    Regards,

    JMMN

  • Hi,

    see here the detailed description from the customer:

    •  We use a system of an i.MX6Solo application processor in conjunction with a TSUSB6250 to access a CF card

    • The firmware is loaded each power up from the EEPROM

    • The USB connection is direct with 100 Ohm routed connection, app. 48 mm long

    • In 3 of 20 PCBs an error occurs. With this PCBs, the USB mass storage device is detected correctly in about 80% on the attempt to power up the TUSB.

    • The error is independent of the CF card

    • There is a chance of a series of errors

    • We experienced that we reduce the errors when we elongate the USB connection by 100 mm cable

    Error state example

    [ 3373.476707] usb 1-1: new high-speed USB device number 80 using ci_hdrc

    [ 3374.244927] usb 1-1: config index 0 descriptor too short (expected 32, got 9)

    [ 3374.252156] usb 1-1: config 1 has 0 interfaces, different from the descriptor's value: 1

    [ 3374.263288] usb 1-1: New USB device found, idVendor=0451, idProduct=625f

    [ 3374.270086] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1

    [ 3374.277298] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402

    [ 3374.282915] usb 1-1: Manufacturer: Texas Instruments Incorporated

    [ 3374.289052] usb 1-1: SerialNumber: A34969481A01

    [ 3387.951245] usb 1-1: USB disconnect, device number 80

    Good state example

    [ 3501.696703] usb 1-1: new high-speed USB device number 81 using ci_hdrc

    [ 3502.467548] usb 1-1: New USB device found, idVendor=0451, idProduct=625f

    [ 3502.474302] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1

    [ 3502.481541] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402

    [ 3502.487153] usb 1-1: Manufacturer: Texas Instruments Incorporated

    [ 3502.493271] usb 1-1: SerialNumber: A34969481A01

    [ 3502.509063] usb-storage 1-1:1.0: USB Mass Storage device detected

    [ 3502.515985] scsi host67: usb-storage 1-1:1.0

    [ 3508.728865] usb 1-1: USB disconnect, device number 81

    Also please ee attached the extracts from the schematics.

    Does this information help?

  • What does the timing of the power on to the CF card look like with respect to the power on timing to the TUSB6250? I believe the firmware of the TUSB6250 pulls information from the ATA/ATAPI device for the USB descriptors. If you leave the CF reader empty and later insert the CF card, does it boot reliably?
  • The error is independent of the CF card, it occurs in the same manner, if the CF-card is present or not on power up.

    Thanks,
    Michael
  • Ok, that makes sense. The CF card reader firmware doesn't rely on the ATA/ATAPI info like the other builds. The fact that adding in a longer trace / cable length implies that the TUSB6250 is "not ready" when the host first polls it. Is there any way to add delay on the host side? Can we get any more information on what is on the USB bus when this occurs:

    [ 3374.244927] usb 1-1: config index 0 descriptor too short (expected 32, got 9)

    [ 3374.252156] usb 1-1: config 1 has 0 interfaces, different from the descriptor's value: 1
  • View are trying to get more USB data for you .
    Our issue is not solved yet.

    Thanks,
    Michael
  • We do not have further information about the USB traffic than the console output of the Linux system.
    But with another Board, the error occurs in a slightly different way.

    Run 2:
    [ 31.121555] usb 1-1: USB disconnect, device number 4
    [ 31.135813] sd 1:0:0:0: [sda] Synchronizing SCSI cache
    [ 31.147515] sd 1:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=0x01 driverbyte=0x00
    [ 32.906863] usb 1-1: new high-speed USB device number 5 using ci_hdrc
    [ 33.677122] usb 1-1: New USB device found, idVendor=0451, idProduct=625f
    [ 33.683870] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1
    [ 33.691085] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402
    [ 33.696669] usb 1-1: Manufacturer: Texas Instruments Incorporated
    [ 33.702804] usb 1-1: SerialNumber: A34969481A01
    [ 33.716494] usb-storage 1-1:1.0: USB Mass Storage device detected
    [ 33.734395] scsi host2: usb-storage 1-1:1.0
    [ 35.409878] scsi 2:0:0:0: Direct-Access TUSB6250 USB20 DISK DRIVE PQ: 0 ANSI: 2
    [ 36.201603] sd 2:0:0:0: [sda] 2046240 512-byte logical blocks: (1.04 GB/999 MiB)
    [ 36.210317] sd 2:0:0:0: [sda] Write Protect is off
    [ 36.216310] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    [ 36.234966] sda: sda1
    [ 36.248585] sd 2:0:0:0: [sda] Attached SCSI removable disk
    3965  Good
    Run 3:
    [ 38.587682] usb 1-1: USB disconnect, device number 5
    [ 38.602023] sd 2:0:0:0: [sda] Synchronizing SCSI cache
    [ 38.615167] sd 2:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=0x01 driverbyte=0x00
    [ 40.376925] usb 1-1: new high-speed USB device number 6 using ci_hdrc
    [ 41.147495] usb 1-1: New USB device found, idVendor=0451, idProduct=625f
    [ 41.154243] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1
    [ 41.161458] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402
    [ 41.167070] usb 1-1: Manufacturer: Texas Instruments Incorporated
    [ 41.173188] usb 1-1: SerialNumber: A34969481A01
    [ 41.186872] usb-storage 1-1:1.0: USB Mass Storage device detected
    [ 41.204776] scsi host3: usb-storage 1-1:1.0
    [ 42.879752] scsi 3:0:0:0: Direct-Access TUSB6250 USB20 DISK DRIVE PQ: 0 ANSI: 2
    [ 43.066938] usb 1-1: reset high-speed USB device number 6 using ci_hdrc
    [ 46.668677] usb 1-1: USB disconnect, device number 6
    [ 46.688071] sd 3:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
    [ 46.696660] sd 3:0:0:0: [sda] Sense not available.
    [ 46.702185] sd 3:0:0:0: [sda] Write Protect is on
    [ 46.707140] sd 3:0:0:0: [sda] Asking for cache data failed
    [ 46.712669] sd 3:0:0:0: [sda] Assuming drive cache: write through
    [ 46.729287] sd 3:0:0:0: [sda] Attached SCSI removable disk
    [ 48.306864] usb 1-1: new high-speed USB device number 7 using ci_hdrc
    [ 49.077623] usb 1-1: New USB device found, idVendor=0451, idProduct=625f
    [ 49.084371] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1
    [ 49.091587] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402
    [ 49.097197] usb 1-1: Manufacturer: Texas Instruments Incorporated
    [ 49.103315] usb 1-1: SerialNumber: A34969481A01
    [ 49.116082] usb-storage 1-1:1.0: USB Mass Storage device detected
    [ 49.134001] scsi host4: usb-storage 1-1:1.0
    [ 50.809749] scsi 4:0:0:0: Direct-Access TUSB6250 USB20 DISK DRIVE PQ: 0 ANSI: 2
    [ 51.006923] usb 1-1: reset high-speed USB device number 7 using ci_hdrc
    [ 54.588573] usb 1-1: USB disconnect, device number 7
    [ 54.607339] sd 4:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
    [ 54.615918] sd 4:0:0:0: [sda] Sense not available.
    [ 54.621342] sd 4:0:0:0: [sda] Write Protect is on
    [ 54.626371] sd 4:0:0:0: [sda] Asking for cache data failed
    [ 54.631936] sd 4:0:0:0: [sda] Assuming drive cache: write through
    [ 54.647132] sd 4:0:0:0: [sda] Attached SCSI removable disk
    [ 56.226873] usb 1-1: new high-speed USB device number 8 using ci_hdrc
    [ 56.997496] usb 1-1: New USB device found, idVendor=0451, idProduct=625f
    [ 57.004234] usb 1-1: New USB device strings: Mfr=5, Product=2, SerialNumber=1
    [ 57.011466] usb 1-1: Product: 6250 FW: 00.00.02.22.5ACAD402
    [ 57.017081] usb 1-1: Manufacturer: Texas Instruments Incorporated
    [ 57.023196] usb 1-1: SerialNumber: A34969481A01
    [ 57.035391] usb-storage 1-1:1.0: USB Mass Storage device detected
    [ 57.054336] scsi host5: usb-storage 1-1:1.0
    [ 58.729877] scsi 5:0:0:0: Direct-Access TUSB6250 USB20 DISK DRIVE PQ: 0 ANSI: 2
    [ 59.521946] sd 5:0:0:0: [sda] 2046240 512-byte logical blocks: (1.04 GB/999 MiB)
    [ 59.530693] sd 5:0:0:0: [sda] Write Protect is off
    [ 59.536457] sd 5:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    [ 59.555344] sda: sda1
    [ 59.568724] sd 5:0:0:0: [sda] Attached SCSI removable disk
    19817 ERROR (more than 14 seconds)
    [ 61.951164] usb 1-1: USB disconnect, device number 8
    [ 61.965476] sd 5:0:0:0: [sda] Synchronizing SCSI cache
    [ 61.978979] sd 5:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=0x01 driverbyte=0x00

    Thanks for your help,
    Michael
  • Hi Michael,

    I can see that the failing trace has USB resets after the descriptors are read in, but I can't see any indication of why that is happening. Can you confirm that you are seeing two different failures and each one occurs on a different board? Does cable length impact this second issue?

    Regards,
    JMMN
  • yes indeed, the errors occurred on different board, some boards will show both errors.
    The amount of errors varies with the length of the connection, but we did not identify a minimum length for the error to vanish.
    The occurrence rises with the temperature up (+70°C) or down (+5°C), but irregularly.

    Regards,
    Michael
  • HI Michael,

    Just to confirm:

    • You see both issues on multiple boards, some boards see both errors
    • The amount of errors decreases with added cable length between the host and device - is this true for both errors?
    • The TUSB6250 recovers from the error with a CF removal / insertion?

    We are trying to determine if this is a signal quality issue or a possible firmware issue.

    Regards,

    JMMN

  • Hi JMMN,

    • You see both issues on multiple boards, some boards see both errors -> Yes, it’s true
    • The amount of errors decreases with added cable length between the host and device - is this true for both errors? -> Yes for both errors
    • The TUSB6250 recovers from the error with a CF removal / insertion? -> not exactly. The TUSB is always powered down when the CF card is removed.
    We have a new experience:
    Those ICs that show the error, are also very sensitive to cold temperatures (below +15°C).
    Those ICs that never show the error will function even at -10°C.

    Regards,
    Michael
    1. Regarding if the customer can access an USB bus analyzer or driver debug statements:

    The messages come from the Linux, we don’t have influence on the Kernel driver. We try to access an analyzer but it is questionable if it helps us as we are increasing the wire.

     

    1. The customer did additional test runs with more debug messages from the Kernel.

    The result is the following:

    1. It occurs  'XactErr' at the failure parts during the USB communication

    2. The failure increases when decreasing the temperature with a spray

    3. The failures in the communication occur in all phases

    4. Once a TUSB is not failing, it is also does not change its function when changing the temperature.

       

      See in a separate email the Kernel-Logs

  • Moving to FA. Closing thread until there is additional information available.