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.