3.1.3InterruptTransactions
USBControllerHostandPeripheralModesOperation
www.ti.com
3.1.2.2.3ErrorHandling
IfthesoftwarewantstoshutdowntheBulkOUTpipe,itshouldsettheSENDSTALLbit(bit5of
PERI_RXCSR).WhenthecontrollerreceivesthenextpacketitwillsendaSTALLtothehost,setthe
SENTSTALLbit(bit6ofPERI_RXCSR)andgenerateaninterrupt.
WhenthesoftwarereceivesaninterruptwiththeSENTSTALLbit(bit6ofPERI_RXCSR)set,itshould
clearthisbit.ItshouldhoweverleavetheSENDSTALLbitsetuntilitisreadytore-enabletheBulkOUT
pipe.
Note:IfthehostfailedtoreceivetheSTALLpacketforsomereason,itwillsendanotherpacket,so
itisadvisabletoleavetheSENDSTALLbitsetuntilthesoftwareisreadytore-enablethe
BulkOUTpipe.WhenaBulkOUTpipeisre-enabled,thedatatogglesequenceshouldbe
restartedbysettingtheCLRDATATOGbit(bit7)inthePERI_RXCSRregister.
AnInterruptINtransactionusesthesameprotocolasaBulkINtransactionandcanbeusedthesame
way.Similarly,anInterruptOUTtransactionusesalmostthesameprotocolasaBulkOUTtransaction
andcanbeusedthesameway.
TxendpointsintheUSBcontrollerhaveonefeatureforInterruptINtransactionsthattheydonotsupport
inBulkINtransactions.InInterruptINtransactions,theendpointssupportcontinuoustoggleofthedata
togglebit.
ThisfeatureisenabledbysettingtheFRCDATATOGbitinthePERI_TXCSRregister(bit11).Whenthis
bitisset,thecontrollerwillconsiderthepacketashavingbeensuccessfullysentandtogglethedatabit
fortheendpoint,regardlessofwhetheranACKwasreceivedfromthehost.
AnotherdifferenceisthatinterruptendpointsdonotsupportPINGflowcontrol.Thismeansthatthe
controllershouldneverrespondwithaNYEThandshake,onlyACK/NAK/STALL.Toensurethis,the
DISNYETbitinthePERI_RXCSRregister(bit12)shouldbesettodisablethetransmissionofNYET
handshakesinhigh-speedmode.
ThoughDMAcanbeusedwithaninterruptOUTendpoint,itgenerallyofferslittlebenefitasinterrupt
endpointsareusuallyexpectedtotransferalltheirdatainasinglepacket.
40UniversalSerialBus(USB)ControllerSPRUGH3–November2008
SubmitDocumentationFeedback