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.

omap3525+usb 3320 phy, how can it be drive?

Other Parts Discussed in Thread: OMAP3525, OMAP3530, TPS65930

  To whom i am concerned,

We company is about to developing a equipment based on omap3525, and an USB3320 PHY is attached as a method to debug and upgrade.  The equipment should be able to communicated with a PC(as a host) as a usb device, and the we have customed the communicating protocol based on usb2.0.

As a driver developer, i obligaged in driving the usb to communicate with the PC, and i have read the source code TI provide in the PSP 35X. But I am still confused on the registers configurating, endpoints configurating, and the FIFO using in transfer.

Could someone be kind of  giving me any advice, and any source code is preferred.

thx

Best regards. 

  • Michael,

    Which os/software will you use on your product ? Is it Linux or WinCE or any other OS?

    OMAP3530 has one USB OTG port which can act as a device or as a host. OMAP3530 also has three USBHOST only ports.

    I think you want to use OMAP3530 as a usb device and connect it to PC. In this case you would require to use USB OTG port in device mode.

     

    Linux kernel source code is available at below link,

    http://arago-project.org/git/people/?p=sriram/ti-psp-omap.git;a=summary

    Regards,
    Ajay

  • Ajay,

    thx you very much for your reply and your advisory.

    The OS we used is Vxworks 6.8, and we supposed to put the usb function in the bootrom for debuging.

    As you said, the OTG port is what port we should used, then, does it mean that, the EHCI, OHCI, UHCI and others which are relative to USB HOST is meaningfulless on this project?

    Is there any source code of usb OTG  for the Vxworks?

    Best Regards,

    Michael

     

  • You can use EHCI/OHCI host if your product need USBHOST functionality.

    I think you can refer OTG source code available in uboot tree at  link below. This is written in simple C and should be easier for you to add it in your bootrom code.

    http://git.denx.de/?p=u-boot.git;a=tree;f=drivers/usb/musb;h=9cdbedbc5484557ef5c3574edc9ea04a8c3277ac;hb=1f82ff4777f360e92aa37bbbed647f7b9d9d2044

     

    Regards,
    Ajay

  • Ajay,

    Thank you very much.

    And best wishes for you.

    Michael

     

  • Ajay,

    I am very sorry for bothering you again.

    There are 3 new questions make me confused, i appricate if you can solve this for me.

    (1) In specification "Highly Integrated Full Featured Hi-speed usb 2.0 ULPI Transceiver", Page 33, paragraph 5.6-USB On-The-Go(OTG), it refers that "In application where only Host or Device is required , the OTG module is unused", How can i understand that line?

    (2) In the parent directory of the source code link you offered to me as shown in you latest reply(

    http://git.denx.de/?p=u-boot.git;a=tree;f=drivers/usb/musb;h=9cdbedbc5484557ef5c3574edc9ea04a8c3277ac;hb=1f82ff4777f360e92aa37bbbed647f7b9d9d2044

    ), there is an "OTG" directory, couldn't we use it as a model of usb driver?

    (3) If i configure the device USB as an OTG interface,  should the host(PC) be configured as an OTG equally?

     

    I am looking for your answers, thanks a lot.

    Best regards,

    Michael

  • >>(1) In specification "Highly Integrated Full Featured Hi-speed usb 2.0 ULPI Transceiver", Page 33, paragraph 5.6-USB On-The-Go(OTG), it refers that "In application where only >>Host or Device is required , the OTG module is unused", How can i understand that line?

    Which specification are you referring here ? I think OTG module here means the runtime role switching from host to device and vice versa using OTG protocol HNP and SRP.

     

    >>(2) In the parent directory of the source code link you offered to me as shown in you latest reply(

    >>http://git.denx.de/?p=u-boot.git;a=tree;f=drivers/usb/musb;h=9cdbedbc5484557ef5c3574edc9ea04a8c3277ac;hb=1f82ff4777f360e92aa37bbbed647f7b9d9d2044

    >>), there is an "OTG" directory, couldn't we use it as a model of usb driver?

    I don't see any 'OTG' folder here. Anyways you need to refer musb directory for all source code of MUSB OTG interface.

     

    >>(3) If i configure the device USB as an OTG interface,  should the host(PC) be configured as an OTG equally?

    In your scenario you will use the interface as USB device and Host (PC ) will remain as it is. There is no configuration required on PC side.

    -Ajay

  • Ajay,

    thank you for helping me figure these out.

    Best regards,

    MIchael

  • Hi, Ajay,

    There is a new question.

    I have checked the PCB of OMAP3530mini  TI offering, found that the OTG is connected to OMAP3530 at port0 across the power manage unit TPS65930. Does that mean the OTG device would be connected to OMAP3530 directly without an USB PHY involved? If so, then the problem is, how can omap3530 completes a transmitting without hardware support?

    OR, Is there another unit in omap3530 that can accomplish the transmitting ?

    Looking forward for you reply.

    Thank you.

    Best Regards,

    Michael

    PS: In OMAP3530mini PCB, the receptacle A is connected to USB3320, and the USB3320 is connected to OMAP3530 port2, with port1, and port3 connected to MCSPI

     

  • I am not familiar with a board offered by TI called OMAP3530mini.  Please reply to this post with a link that points me to information related to the board in question. 

    It sounds like the board you are looking at has the OMAP3530 USB OTG port0 connected to the USB OTG ULPI Phy included in the TPS65930 Power Management IC (PMIC).

     

    Regards,

    Paul

  • Michael,

    As Paul mentioned, power chip TPS65930 has USB PHY built inside it. Thus the 12 pins from OMAP3530 are connected to the PHY available on power chip.

    Regards,
    Ajay

  • Thank you Ajay,

    As you mentioned above, the TPS65930 has USB PHY built inside it, then, how can i access the ULPI interface? I'v noticed that there is an HDRC(high-speed dual-role controller) in an OTG phy, but I have no ideal of how to run it, I even can not find any messages about it online, does it the key technique of the Inventor products that any details of the HDRC are unreachable? If not, how can i get the details?

     

    Best regards,

    Michael

  • Thank you Paul,

    I am very for misleading you, the OMAP3530MINI is not exactly a product of TI, but a board of ICETECK, a Chinese company sailing products which are based on TI cores.

    Details of OMAP3530MINI can be achieved from the web page following:http://www.realtimedsp.com.cn/product/detail.asp?ID=283.

    I wonder if I could have a chance to discuss with you engineers directly, and timely. Is there any way to do that?

    Best Regards,

    Michael 

  • Hi Paul:

    We have the same problem in developing omap3525 OTG USB drivers. Because we need to boot up the device by usb port, so the only port we can use is OTG. There is one problem is that we can not access the PHY regesters by the MUSB link. The u-boot-video code does not give any code on how to access the USB PHY registers.

    There is another problem is that the omap3530 data sheet does not give any information on the OTG USB link specification, how can I get the datasheet about the USB link.

    Thank you very much!

     

  • I will need to refer this question to Ajay since he has more software driver experience.

    However, keep in mind your product will need a unique Product ID (PID) and Vendor ID (VID) issued by the USB Implementers Forum so the PC host will know how to boot your product.  You will also need to develop your product to partially boot to a point where your unique PID/VID has been initialized before the PC host enumerates because that is how the PC determines which USB peripheral is connected.

    Regards,

    Paul

     

  • Please refer the patch below [which is now available in linux-musb driver] for steps to access musb ulpi registers,

    http://marc.info/?l=linux-usb&m=127438739326190&w=2

    Regards,
    Ajay

  • Haven't been here so long , thank you ajay

    Best regards,

    Michael

  • Hi, Ajay

    I have tried to access the smsc3320 usb phy by the means you refered above, but it didn't work, and returned time out.

    It seens that the method you refered is based on blackfin, and with the usb phy designed with ULPI Wrapper which is not be used in SMSC3320, that I can't

    access the phy registers by that means.

    We used omap3525 as the processor, and SMSC3320 as the USB phy, and ULPI interface is used between them to bind them.

    the USB phy SMSC3320 was designed without ULPI wrapper, which means that the relative registers were not implemented in MUSBHDRC, thus the registers refered in

    the source code you offered are not accessable.

    Would you please tell me how can i read/write the phy registers in this case?

     

    By the way, when we insert the USB cable of the device we designed to the A receptacle of HOST(PC+XP), the HOST has no responds.

    In my view, I think the HOST should recongnise the our device as an USB device even if it isn't drived, and show a dialog to us to install the custom driver, but it is not,

    Why?

     

    Sorry for bothering you again, Beg your pardon

    Best regards

    Michael