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.

TUSB9261 SPI FLASH

Other Parts Discussed in Thread: TUSB9261, TUSB9260

My  new design includes a TI TUSB9261 (USB3.0 to SATA bridge).  Connected to the TI part is a SPI Flash.  On page 10 of the online TI implementation guide for the TUSB9261 states they have tested the Atmel AT25FS010 and Numonyx M25P10A SPI flash chips as being compatible with the TI part.

The Atmel part is now listed as “not recommended for new designs”.  The Numonyx is listed as “declining” , being an older part.  I had designed in the Atmel part. So here are my questions:

 

1)      Are there newer SPI flash chips that TI recommends as being compatible with the TUSB9261 part now (i.e. someone has tested them)?

2)      Are there any SPI flash chips that are known to be incompatible with the TI part, (or programming firmware)?

3)      Would an Atmel AT45DB011D http://www.atmel.com/dyn/resources/prod_documents/doc3639.pdf be compatible with the TI part?  This is Atmel’s suggested replacement.  The only issue with this Atmel replacement is that it is not pin compatible with the original suggesting SPI flash chips.

4)      Will the TI programming firmware support writing to an AT45DB011D?

5)      Any other thoughts on this subject?

Thanks, and Best Regards,

-Tim Starr on behalf of MS@BA

  • Hello,

    We have not tested other SPI flash, I will review the AT45DB011D and give you my comments.

    Regards.

  • I have also designed in TUSB9261 in my project. As none of the recommended Flash was in the system, I tried AT25DF041 from Atmel. Programming succeeds, according GUI, but firmware will not start. Obviously, the Flash isn't properly programmed. Suspecting an incompatibility, I also tried AT45DB011D. This one is completely incompatible with TUSB9261. It does not even support all the required opcodes (SLLU125B, Page 39). TUSB9261 goes to an endless loop, attempting to program this Flash, until the watchdog stops it.

    I also do not exactly know what to do now. I will ask to introduce Micron/Numonyx M25P10A, but this may be rejected due to danger of this part being discontinued. I fear that I cannot finalize the design within Project Plan as the local TI engineer I have asked also seems to have no answer. Did you receive any helpful answer to your questions, similar to mine?

    Thank you, Best regards

    Martin Maier

  • Hello,

    Have you tried the Pflash PM25LV010A ?

    What firmware version are you using? Please use the latest(rev 98)  available at http://www.ti.com/product/tusb9261#technicaldocuments

    What failure mode are you having, can you send some screen captures of the failure(how does it appear at device manager?)

    Regards.

  • Hello,

    thank you for timely answering. I have none of the recommended Flash available at the moment, but will try to get some asap. As AT25DF041 supports all required opcodes (except 0x90 which I have never found in any Flash I have used so far - not even the recommended Flash support 0x90), I would expect that there should be no problem. I have used both latest firmwares from TI website (U1/U2 disabled or enabled) with similar result: GUI says: Programming successful. But the TUSB9261 does not change behaviour in any manner. I get no failure code, the TUSB9261 simply goes into idle Mode and keeps waiting for a new firmware. It is as if I would not have programmed anything at all. When I remove the Jumper (SO from Flash), GUI reports a failure to program the Flash, so there is a reaction. I can also measure activity with an oscilloscope on the Flash SPI lines. At startup, the TUSB9261 accesses the Flash for a short time (by far not sufficient to read out 47 kB or so), then connects via USB to my computer appearing in the Flah Burner Window as "TUSB926x Bootloader Device". It also appears in the device manager as described in TI's documentation (HID-compliant Device + USB Human Interface Device/TUSB9260 Flash Burner+USB Composite Device). As the firmware does not run, of course no SATA Device appears. The HID-Compliant Device - Device Instance Path shows up as: HID\VID_0451&PID_926B&MI_00\9&3080FA5F&0&0000. According Documentation, "926B" means that no firmware was found in the Flash.

    Best Regards

    Martin Maier

  • Concerning P-Flash:

    Chingis Technology Corporation (P-Flash) is not a supplier of my company so any attempt to introduce PM25LV010 will be rejected. Sorry for Chingis, but no way for me to change this.

    Martin Maier

  • Hello Martin,

    These are the only Opcodes required by the bootcode: OpcodeWriteEnable, OpcodeReadData, OpcodePageProgram, OpcodeChipErase, OpcodeReadStatus

    Any SPI memory with support for these will work.

    Can you send your schematics for review?

    Regards.

  • Hello Elias,

    unfortunately, it is not that easy. Meanwhile I have found the reason for the Flash refusing programming efforts. The Flash I am using - ATMEL AT25DF041A - supports all requíred opcodes you have mentioned. But still it isn't programmable by the routines TUSB9261 uses. I found the root cause because I was trying to programm the Flash with a GALEP-4. Missing support of this Flash, I used AT26DF041 driver from a pin- and opcode compatible part. It was the same result - programming succeeded according GALEP-4 GUI, but a read after that proved that the Flash still was empty.

    The reason is: AT25DF041 is double write protected. In addition to the common "Write-Enable" procedure, there is a sector protection which is globally activated after power-on. One has to remove this sector write protect, e. g. writing the status register as recommended by ATMEL 4064.AT25DF041A.pdf. After that, Flash should be programmable - but only until the next power-up. (See ATMEL Data Sheet page 16ff Chapter 9.3. Protect Sector). So there is no way to get this Flash programmed in-circuit by TUSB9261, though it supports all required opcodes. I have to use a different Flash without this additional Sector Protection. Hopefully, I will get the samples of M25P10 today to check if this was the only reason for the problem.

    Thank you for listing the really required opcodes. This facilitates finding supported Flash for all users having similar questions.

    Best regards

    Martin Maier

  • Hello,

    Meanwhile I have received the M25P10-AVMN6P from Numonyx/Micron. Still the Flash isn't programmed by TUSB9261, but now I do not find any reason why, the Flash being in the list of tested devices. The Schematics is confidential so I must not post it in a Forum like this. I have used the reference design which is implemented according the Schematics in TI Documentation, even including Push-Button and LED's. The Circuit is to be used as a USB 2.0 to SATA Bridge, so the USB 3.0 inputs are left floating. All devices are layouted close together - even the 3.3V (Linear Reg. from 5V) and 1.1V DC/DC are placed near the TUSB9261, using all required blocking capacitors placed close to the Power Pins. Clock is generated using a 20 MHz Crystal, so the Freqsel lines are pulled low. VSSOSC is not connected to GND. USB Circuitry is working, as the Boot loader Device is properly detected by Flash Burner Software. There is also activity on the SPI lines while attempting to program the Flash. GUI reports successful programming, TUSB 9261 restarts - and still is in Boot Loader mode, also after a reset or power down/up procedure. When removing the Jumper on the SPI Data in - line of TUSB9261, the programming fails according GUI, so there is a reaction to this.

    Best regards

    Martin Maier

  • Hello,

    now I have written the binary of TUSB9261 Firmware (TUSB926x_FW_v0.98a.bin) to the Flash (M25P10A) and inserted the Flash into the circuit afterwards. Result: The TUSB9261 still doesn't work as a SATA Bridge. Does TUSB9261 in any way modify the firmware before programming the Flash or does it just copy the binary file?

    Best regards

    Martin Maier

  • Hello Martin,

    The flash burner will add some information to the binary code, so if you make an image of an already programmed memory and you use that binary code as the firmware to be burned on another memory then after the flash burner you will have a memory with duplicated descriptors information (see Figure 3-1 of the TUSB9260 Flash Burner - User Guide)

    Regards.

    http://www.ti.com/lit/ug/sllu125b/sllu125b.pdf

  • Finally, it works!

    Solution for TUSB9261, connected to USB 2.0, is:

    take the Firmware Binary File (e. g. TUSB926x_FW_v0.98a.bin) and load it with the TI Flashburner Tool. In the Advanced Descriptors Editor (Button on top of the window), check "HID Enable", UAS Enable" and "self-powered". Then, Export this data to a file. Write this exported file (not the original Firmware binary!) to a Flash, using an appropriate programmer. Don't waste your time, trying to program the Flash in-circuit via TUSB9261. I have been trying this for days and it did not work. It may work with USB 3.0 interface (don't think so) or other Flash (probably with the P-Flash type) - until now I have tried to in-circuit program AT25DF041A, M25P10A, and AT45DB041D via USB 2.0 only, all of which failed constantly.

    After soldering the pre-programmed Flash in the circuit, Firmware is running. The TUSB9261 with peripheral I am using is copied from the reference design, with SATA TX lines swapped as documented there - so the SATA Disk was found and could be accessed without further effort. I have succeeded with M25P10A Flash so far, but this way may also work with many other Flash, too.

    Martin Maier

  • Hello,

    In my application, the TUSB9261 USB port is connected via Hub TUSB2046. This Hub supports only Full speed, according data sheet. Am I right or can this Hub also support High Speed (480 MBit/s)?

    The reduced speed is not really a problem for us as the amounts of data to be read/written to SATA are quite small. As can be seen below, everything except In-Circuit programming of the Flash works fine. But we would also like to program the Flash in circuit, if possible.

    May the reduced USB speed be the reason for the failure of the Flash Programming routine (timing issues?)? I have the Eval Board here now and I can erase/program the Flash (Numonyx 25P05VP) there successfully. Our board with the TUSB9261 via TUSB2046 fails constantly with Numonyx 25P10A. Obviously, write errors occurr, as the data streams writing/reading are not identical. Does it make sense to try connecting TUSB9261 USB lines directly to the Windows PC like it is on the Eval Board?

    Regards

  • Meanwhile I have tried In-Circuit programming the Flash with TUSB9261, connected to USB 2.0 High Speed. Result: Programming works. Conclusion: TUSB9261 needs USB2.0 High-Speed Connection to properly program its Flash, for whatever reason. I would recommend TI should write this in Datasheet/Application notes of TUSB9261 to prevent future users from disappointments like I had.

  • Hello everybody,

    I'm trying to make the TUSB9261 work on my new board.

    Today I've tried to burn my EEPROM using the latest firmware version, after creating the proper file with the FlashBurner Software - Thanks Martin!

    I'm burning the EEPROM externally, not using the In circuit programming, and then connecting the TUSB9261 to the EEPROM.

    However I couldn't make it work. There were some SPI interactions between them, but that's it.

    My Linux CPU couldn't identify the device, it displayed USB High speed device with error 71. I have Several Questions:

    1. Is there a big/little endian issue? How should I program the firmware into EEPROM?

    2. What are the recommended parameters for using the Flash Burner software, when afterwards burning the EEPROM externally?

    3. Other known issues that I should know?

    Best Regards,

    Meny

     

  • Hello Meny,

    when you have taken the original file from TI Website and exported it with the Flashburner software as described above, the programmed EEPROM should work with TUSB9261. The Heartbeat LED should be blinking and the activity LED dims up and down slowly. I have used a GALEP programmer and just copied the file into the EEPROM.

    If it doesn't work at all, you should have a look at the EEPROM's instruction set and compare it with that mentioned in TUSB9261 Datasheet (esp. read, block read operations). Maybe a different EEPROM needs to be used. If possible, try one of the recommended EEPROM devices.

    If the LED's are active and just the Linux system doesn't recognize the SATA device, try connecting the TUSB9261 to a windows PC.

    There is also a possibility to in-circuit program the TUSB9261 from a Linux system. Ask the TI Support for appropriate software if interested. Note that a USB 2.0 high-speed connection is mandatory to in-circuit program the EEPROM with TUSB9261, as described above.

    That's all I can tell you at the moment, not knowing details of your design.

    Best regards

    Martin

  • Thank you Martin for the useful information in this thread.

    I'm currently selecting a flash memory for a TUSB9261-based design.

    What is the full part number that you are using? I am looking at for instance the M25P05-AVMN6TP.

    Thanks!

    Erland

    EDIT:

    I see now that a previous post didn't list the 0x20 operation as required so the below is not relevant I guess:

    Looking at the data sheet for the Numonyx 25P05VP (M25P05-A), I see that it does not implement operation 0x20, titled "Sector Erase" in the Flash Burner's guide. To add confusion, the Numonyx datasheet calls operation 0xD8 "Sector Erase", which the Flash Burner's guide calls "Block Erase".

    Anyone have any comments on the missing opcode?