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.

TM4C1294KCPDT: USB0HostIntHandler versus USB0OTGModeIntHandler

Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL

Can anyone explain why the Tiva USB Library User's Guide documents USB0HostIntHandler as appropriate for Host mode applications, and yet the examples for the EK-TM4C1294XL seem to be using USB0OTGModeIntHandler?

I tried to change my interrupt table to point to USB0HostIntHandler, but my firmware doesn't seem to want to run without crashing. My firmware is based on the DK-TM4C129x usb_host_audio_in example, if that explains why the USB0HostIntHandler doesn't want to work. It's almost working with USB0OTGModeIntHandler, as copied from the example, but I have a couple of concerns. First of all, my firmware isn't working as well as it was two years ago, and I assume that might be due to changes in TivaWare during that time frame. So, I'm trying to tidy things up a bit while reviewing all of the documentation. Second of all, I assume that it would be more efficient for my firmware to be designed around USB0HostIntHandler if I do not want to support OTG features and my hardware is not designed for OTG.

I realize that the EK-TM4C1294XL board has an OTG connector and is wired for OTG operations. However, my hardware platform cannot operate in Device mode because I skipped those connections, and my hardware has a USB A Host connector.

p.s. If anyone happens to know of incompatibilities between TivaWare 2.1.0.12573 and 2.1.4.178 that might explain why my firmware is not reacting to attached devices, I'd appreciate some hints. I may have to start a new topic for this latter issue, but I have not fully investigated the situation. I suppose comparing the usb_host_audio_in examples between those revisions to look for changes might help.

  • Hmm, USB0HostIntHandler() seems to be working now. Perhaps I did not perform a clean build; that could explain the crashes.

    Meanwhile, if anyone could confirm or deny my assumption that it's better to use USB0HostIntHandler() for hardware that will only operate as a host, even with examples that demonstrate via USB0OTGModeIntHandleR(), then I would appreciate the feedback. The Tiva USB Library documentation describes each in isolation, but doesn't really compare and contrast them when there is an overlap in functionality (i.e. technically, OTG Mode is a superset of Host)
  • Hi Brian,

    Your understanding is correct. If your device is to be used only as a host, the USB0HostIntHandler() is the most appropriate.
  • Looking deeper into the Tiva USB Library documentation, I see that section 5.2.5.7 does make a comparison between USB0HostIntHandler() and USB0DualModeIntHandler(). That's clear enough to show what I was hoping for, considering that USB0OTGModeIntHandler() is equivalent to USB0DualModeIntHandler(). I may have missed this originally by searching for the OTG function.