Kinetis MCUs and USB OTG

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Kinetis MCUs and USB OTG

1,710 Views
kaitav
Contributor III

Hi,

We are using Kinetis series MCU (K60 to be specific) in our design and have currently implemented USB Device using the USB OTG Controller with on-chip transceiver. To implement USB OTG functionality, I understand that we would need additional hardware, like MAX3353E, or need an off-chip USB OTG transceiver that supports all the OTG requirements and has ULPI interface. The MAX3353E has a limitation that it supports only a few tens of mA output on VBUS for peripheral connection and does not have any pin that can enable/disable external charge pump dynamically. But apart from hardware, from Kinetis software point of view, is true USB OTG functionality implementation possible OR we can only implement USB dual-role functionality with Kinetis MCUs?

If it is possible, could someone please point out what will be required in software (from Kinetis MCU point of view) to support true USB OTG, where our device can change between host and device roles dynamically by using HNP and SRP? What stack to use? What's a good starting point for software implementation?

Has anyone here been able to implement USB OTG successfully?

Any help will be very much appreciated. Please let me know if my questions are unclear.

Thanks,

Kaitav

6 Replies

1,021 Views
PatrickD
Contributor II

Hi

Just a suggestion; should it not be possible to use the VBUS voltage output from the MAX3353 to enable the output from a 'standard' high side USB VBUS switch with 500mA capability and over-current detection, etc, (assuming that one has 5V0 available)? This way, the output should track the VBUS pulses required to implement USB OTG SRP (session request protocol).

A cautionary note though regarding OTG in general; I have experienced problems with some brands of USB memory stick where I suspect the OTG SRP VBUS pulsing resets the memory management microcontroller before it 'announces its presence' so that it will never enumerate.

I hope this is helpful

Patrick

0 Kudos

1,021 Views
kaitav
Contributor III

Anyone please?

0 Kudos

1,021 Views
isaacavila
NXP Employee
NXP Employee

Hello Kaitav,

Kinetis SDK has support for OTG functionality and for K60D100M target, you can use KSDK v1.3.

There is an application example that uses OTG stack and implements a basic HID example. For your information this example you can look at <KSDK_1_3_PATH>\examples\twrk60d100m\demo_apps\usb\otg\hid\mouse, here, you can also find a readme pdf file that lists the steps needed to run this demo.

I hope this can help you!

Best Regards,

Isaac Avila

1,021 Views
kaitav
Contributor III

Hi Isaac,

Thanks a lot for your reply. As per your suggestion, I downloaded the KSDK v1.3 and can see the example you have mentioned. However, as far as I know about the Kinetis tower kits, the USB OTG is implemented with external MAX3353 IC which supports only a few milli-amperes of current on the its VBUS output, and probably the HID device does not need much current. But if I want to implement OTG such that I can connect devices such as pen-drives, dongles, etc. to the OTG host, I need more current on VBUS to support these devices. In this case, do you know about any other solution/possibility (hardware+software) provided by Freescale/NXP?

I tried to search for other ICs but it seems like MAX3353 is designed especially for interfacing with Kinetis USB OTG controller. I am not able to find any IC similar to MAX3353 giving higher current on VBUS output. In fact, I contacted Maxim and they also said that there is no other part that supports higher current on VBUS. I do have other option to implement OTG in my mind, but it is complicated. And if I want to use the Kinetis MCU USB that has USB OTG controller + on-chip USB PHY, I do not see any other solution except using MAX3353 IC, which is rather limited to devices consuming only a few milli-amperes of current.

I hope you understand my situation. Your reply would be much appreciable.

Thanks,

Kaitav

0 Kudos

1,021 Views
isaacavila
NXP Employee
NXP Employee

Hello Kaitav,

I understand your situation, but as far as i know, the only IC for OTG operation is the MAX3353 and do not know if there is some on-Chip PHY with fully OTG operation, I must investigate further on it.

Sorry for this inconvenience,

Best Regards,

Isaac

0 Kudos

1,021 Views
kaitav
Contributor III

Hi Isaac,

No worries. Thanks again for your reply.

Unfortunately, with Kinetis' on-chip USB controller with integrated PHY, there is no solution for application that requires higher current on VBUS. No further investigation is needed on this. So the only solution to meet this VBUS current requirement is to use an external USB OTG PHY interfaced with Kinetis' on-chip USB controller without integrated PHY, but this complicates the hardware and software design, and increases cost.

Thanks,

Kaitav

0 Kudos