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.
Hey guys,
I'm trying to transfer video data from a camera interfaced with Tiva's DK-TM4C129X. I need to send the captured data via USB to a computer host. I have used Tiva's bulk transfer example to do the above. However, the provided bulk transfer only uses two endpoints of 64 bytes to send and receive data. I need t transfer big chunks of data:
Data = 746 x 480 x (1 B/pix)= 350KB , I also need to transfer atleast 15 frames per second. hence:
Data rate= 5.1 MB/sec OR 41 Mb/sec
I can successfuly transfer all data to the host, though due to transferring of 64 bytes at a time, the speed is very low. At this point, I'm not even sure if it is doable by the bulk transfer. I increased the BULK_BUFFER_SIZE to 746 and thought of increasing the endpoint size in usbbulk.c file of TivaWare's usblib. Though it didnt make any difference.
I was also thinking of using more endpoints instead of one to increase the data transfer rate, but I'm not sure if it is the best way and not quite sure of how I can do that.
So, I was wondering if you guys can suggest a way (possibly using the bulk transfer) to send data and high rate of 5.1 MB/s. Any suggestions and help will be welcome.
IDE: CCS v5.5 - uC: TM4C129x series
So, I've read here, that:
"Bulk transfers are only supported by full and high speed devices. For full speed endpoints, the maximum bulk packet size is either 8, 16, 32 or 64 bytes long. For high speed endpoints, the maximum packet size can be up to 512 bytes long".
So , the question is how I can set the controller to run in high speed mode instead of the full speed mode that it is running now?
I suspect it has to do something with USBOTGFeatureSet(), where I tried to do teh following for high speed :
uint32_t HSfeature = USBLIB_FEATURE_ULPI_HS;
USBOTGFeatureSet(0, USBLIB_FEATURE_USBULPI, &HSfeature);
Hello mil meh,
To utilize high speed, you would need to use an external USB PHY (this is the ULPI mode that you have found). Unfortunately, the internal USB PHY does not support high speed.
The DK-TM4C129X does have a header to attach a ULPI PHY but it does not include one with the board.
Hi Mitch,
Are there any resources available for High speed USB PHY for either Stellaris or Tivas?
Hello mil meh,
I'm not certain I understand what you are asking. The TM4C129x parts with USB do support the external ULPI connection which allows the attachment of a high speed USB PHY. The TM4C129x, and other Tiva parts with USB, support low and full speed USB with an integrated USB PHY.
In the very beginning of the TM4CXNZCAD data sheet it is said that:
"The integrated ULPI interface is utilized, the USB can operate at high-speed".
So, the question is how can I achieve the above goal? Any suggestions or sample examples?
I am very new in this area and any help will be appreciated. Can you suggest an external USB PHY that would work fine with the mentioned uC.
After reading the data sheet, it is a bit more clear to me. However, would u mind explaining to me if I could use Tivaware's USB LIB API with a USB transceiver such as TUSB1210.
From the block diagram of USB module, I can see that I only need to toggle the MUX(USBPC register) to choose from the internal or External PHY. Does it mean that everything else will stay the same in the code?
I have also noticed that that TUSB1210 has many registers. So my assumption is I need to configure the TUSB1210 with the required configurations and then use TIVA's API to send and receive data?
It will be great if you could guide me and possibly walk me through the steps to use the UPLI interface. @Stellaris Mitch
Thanx
Hello mil meh,
You will probably want to review the design guidelines for information on attaching an external USB PHY to the ULPI interface pins (http://www.ti.com/lit/an/spma056/spma056.pdf , section 4.4). You will need to connect the appropriate pins from the TM4C129x to the ULPI PHY and connect any additional pins needed per the ULPI USB PHY's datasheet requirements.
The TIUSB1210 unfortunately uses 1.8v I/O and the TM4C129x requires 3.3v I/O. Two of the external ULPI PHYs that have been tested with the DK board include the Microchip USB3320 and the Fairchild FUSB2805.
The ULPI specification includes defining a standard set of register interfaces which the usblib does support for the ULPI mode. You will be able to use usblib APIs to work with the ULPI external PHY (see usbulpi.c/.h). I also expect the next TivaWare release to include software examples for using an external ULPI USB PHY.
Thanks alot for the answer. Do you know the release date of the next TivaWare by any chance?
Hello Mitch,
Would you be super kind and direct me to where I can find the tested Microchip USB3320 design?
Thanks
Hello mil meh,
RE: TivaWare release
I'm sorry, I missed that question. I believe the next release is expected by the end of this February.
RE: USB3320
The testing was done internally within TI and did not result in any public design materials.
Hi Mitch,
can you please take a look at the following post and respond to it.
http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/318471/1108238.aspx#1108238
Thanks
mil meh said:Would you be super kind and direct me to where I can find the tested Microchip USB3320 design?
Hi, I abandoned Microchip stuff a lot of time ago, IMHO try Fairchild or NXP if compatible with, I read about a lot of issue with Mchip device to stay away.
TI it is not time to build a 3.3V DPHY device too or implement HIGH Speed internal PHY?
USB a worst standard:
Full speed sound as the fastest but it is 12Mbps
High Speed is the 480Mbps
Low speed
normal speed
ultra speed...
I like forever IEEE 1394 (FireWire) Sxxx where xxx was the FULL DUPLEX differential line driven speed from low Kbps to Gbps, device capability was on a readable STANDARD descriptor than on platform specific unportable software!!!
Roberto Romano said:Hi, I abandoned Microchip stuff a lot of time ago, IMHO try Fairchild or NXP if compatible with, I read about a lot of issue with Mchip device to stay away.
USB3320 was a SMSC product. Microchip has acquired SMSC.
I don't have any objection to SMSC parts quaility.
mil meh said:Would you be super kind and direct me to where I can find the tested Microchip USB3320 design?
Refer to EVB-USB3320 design - an evaluation board of USB3320
http://ww1.microchip.com/downloads/en/DeviceDoc/evb3320user.pdf
Tsuneo
Hey Tsune and Roberto,
I've seen you have posted answers and topics regarding the Tiva's USB issues throughout the forum. I was wondering if you could help me on the following topic, as there seems to be no resources available and no responses form TI's specialists.
http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/p/318471/1108238.aspx#1108238
I will really appreciate any help.
Thanks