Skip to main content
Visitor II
August 9, 2012
Question

STM32F2/F4 problems with various ULPI USB PHYs

  • August 9, 2012
  • 27 replies
  • 9823 views
Posted on August 09, 2012 at 12:43

Hi

I have a problem with STM32F207/407 (not) working with a ULPI PHY, in this caseSMSC USB3340. The system (which is device-only) will work at USB full-speed but not high-speed. Itseems that others have similar problems - some ULPI-compliant PHYs seem to work,others not.

Logic analysis of the ULPI bus and USB line states show that during the USB_RESET period, the STM sets the PHY's Function Control register to generate the ChirpK indicating that the device can work at high-speed.  However, the ChirpK is never generated, so enumeration falls back to full-speed. Instead of sending the ChirpK, DP goes to 1.6V and DM to 0V.

It is possible that the problem arises because the USB Core sets theLPM bit (bit7) in the PHY's Function Control register. It looks at first sight as if PHYs which do notsupport LPM (and so ignore the bit) work correctly, and vice-versa.  For example on this forum we see a USB3343 not working and a USB3320 (similar but with no LPM support) working.

Does anyone at ST know if there is there a way to cause the STM32F deviceNOT to set the LPM bit in the ULPI PHY Function Control register? It would seem likely, but no such control is documented.

Does anyone have any further experience of which PHYs do and don't work in this regard?

Thanks

Ian

#usb-ulpi-phy-usb3340
    This topic has been closed for replies.

    27 replies

    Graduate II
    August 9, 2012
    Posted on August 09, 2012 at 14:42

    ST, oddly, has a minimal presence here so I'd strongly recommend you pursue this with your ST rep or FAE directly.

    ian2399Author
    Visitor II
    August 9, 2012
    Posted on August 09, 2012 at 15:10

    Preliminary data suggests the following:

    MANUF   PART            LPM?    WORKING?

    ST      STULPI01        NO      YES

    SMSC    USB3300         NO      YES

    SMSC    USB3320         NO      YES

    NXP     ISP1705         NO      YES

    SMSC    USB3340         YES     NO

    SMSC    USB3343         YES     NO

    SMSC    USB3330         YES     NO

    Visitor II
    August 10, 2012
    Posted on August 10, 2012 at 18:41

    Are you sure that USB3320 is working with STM32F4? That would be great, but in

    https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/USB%20HS%20Hi-Speed%20Alternative%20ULPI%20Transceiver

    rollet.romain clearly stated that SMSC3320 is NOT working.

    (Do you possibly have the link to some further details of the schematics or so with USB3320 working?). (I think quite many poeple here are looking urgently for some non-BGA ULPI transceiver alternative to the ST-ULPI01B chip (used on the Keil developper board)). (the information about ISP1507 seems to be not clear: somewhere you can get it, and other distributors say that it has been abandonned by the suppliers ...).

    ian2399Author
    Visitor II
    August 10, 2012
    Posted on August 10, 2012 at 20:59

    Hi bil.til

    I'm not sure, but this is why I'm hoping so:

    I saw the rollet.romain post, but thought that it was inconclusive since the problem I am talking about is specifically that the device enumerates in FS but not in HS, whereas RR's board apparently doesn't enumerate at all, so presumably he has a different problem, maybe not to do with the PHY compatibility issue.

    On this forum, Boris has apparently got a USB3320 board working but is disappointed with the 6MBps storage device throughput - but that suggests to me he has got it working at HS. On mikrocontroller.net, Dimitri has apparently got a USB3320 board working. I have asked both these gentlemen for confirmation that they have HS operation, but so far no reply.

    Like you, I require a non-BGA part for this project, which is one of the reasons I chose the ill-fated USB3340. I'm hopeful that the USB3320 will work because it would mean that I can carry on with my first-rev prototype (the 3320 is site-compatible with 3340, except that the 1.8V pins are an input with no internal reg, which I can strap).

    I think it is certain that the ISP1705 (as used on the ST EVM) is discontinued or soon will be, and it seems that most of the old ISP range is likewise.

    I'm not sure that schematics for a USB3320 will help much. The schematic isn't the problem - it's fairly obvious how to connect the devices, just not whether they will work when you have!

    Good luck and all the best,

    Ian

    Visitor II
    August 12, 2012
    Posted on August 12, 2012 at 12:41

    Dimitri at mikrocontroller.net is me.

    Yes, STM32F407VG + USB3320 runs as HS host in my case.

    Actually, there is (almost) no need for modification of an example provided by ST for ''STM3240G-EVAL''.  Since ULPI pins are different in the 100pin device, some changes must be made. No need to modify internal registers of the USB3320. It works out of the box. Beware that the crystal won't oscillate if the chip is held on reset.

     

    ian2399Author
    Visitor II
    August 13, 2012
    Posted on August 13, 2012 at 11:18

    Hi Dimitri

    Thanks for taking the trouble to help us out with that confirmation. It is very useful to know, especially for me.

    I'm not sure whether HS operation as a host would guarantee HS operation as a device, if the LPM control bit is the problem. 

    With kind regards

    Ian

    Visitor II
    August 13, 2012
    Posted on August 13, 2012 at 12:13

    I redesigned it a bit to work as OTG. The new PCB is scheduled for the end of this week. As soon as it will be up and running, I will report on this here :)

    At the lower side to the left you can recognize the pads of USB3320 and those of Mini-AB.

    ________________

    Attachments :

    OTG.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I0os&d=%2Fa%2F0X0000000beB%2F95.SVdQLwB56yDxU45R.Kl0Xb5j8AN1sDjqcrP.ubtM&asPdf=false
    ian2399Author
    Visitor II
    August 17, 2012
    Posted on August 17, 2012 at 10:58

    I have now had confirmation from ST that there is a bug in the STM32F207 devices as I have described, which means that they can't enumerate at HS with LPM-capable PHYs. I don't know which devices the bug applies to, but I guess all STM32F2xx and F4xx families at least. I expect this will be confirmed in the Errata documents at some point, but note that it isn't yet.

    The only workaround is to use older-generation PHYs which don't enter LPM mode when bit 7 of the Function Control register is set to 1. If you are considering a particular PHY, check this in its datasheet.  In the mean time, the table above lists some usable and non-usable PHYs.

    Visitor II
    October 21, 2013
    Posted on October 21, 2013 at 14:34

    Have you gotten the STM32F205/207 HS ULPI interface to work with any of the SMSC USB PHYs ?

    Graduate II
    October 21, 2013
    Posted on October 21, 2013 at 18:45

    Have you gotten the STM32F205/207 HS ULPI interface to work with any of the SMSC USB PHYs ?

    The thread is perhaps a bit stale to expect the posters to respond. Dimitri seems to infer an email address, or contact info, have you tried that?

    All the board's I've seen with SMSC 3300 parts use F4 chips, experimenting with the F2's would take a non-trivial amount of effort/expense. Any thoughts from ST FAE's?