...the world's most energy friendly microcontrollers
2016-04-28 - Giant Gecko Family - d0053_Rev1.20
282
www.silabs.com
{
Reset Error Count
De-allocate Channel
}
else
{
Unmask CHHLTD
Disable Channel
}
}
else if (XACTERR or BBLERR)
{
Increment Error Count
Unmask CHHLTD
Disable Channel
}
else if (CHHLTD)
{
Mask CHHLTD
if (Transfer Done or (Error_count == 3))
{
De-allocate Channel
}
else
{
Re-initialize Channel
}
}
15.4.3.6.15 Isochronous OUT Transactions in DMA Mode
To initialize the core after power-on reset, the application must follow the sequence in Overview:
Programming the Core (p. 250) . Before it can communicate with the connected device, it must initialize
a channel as described in Channel Initialization (p. 256) .
A typical isochronous OUT operation in DMA mode is shown in Figure 15.18 (p. 283) . See channel
1 (ch_1). The assumptions are:
• The application is attempting to transmit one packet every frame (up to 1 maximum packet size of
1,024 bytes).
• The Periodic Transmit FIFO can hold one packet (1 KB).
• Periodic Request Queue depth = 4.
15.4.3.6.15.1 Normal Isochronous OUT Operation
1. Initialize and enable channel 1 as explained in Channel Initialization (p. 256) .
2. The host starts fetching the first packet as soon as the channel is enabled, and writes the OUT request
along with the last DWORD fetch. In high-bandwidth transfers, the host continues fetching the next
packet (up to the value specified in the MC field) before switching to the next channel.
3. The host attempts to send an OUT token in the beginning of the next (odd) frame.
4. After successfully transmitting the packet, the host generates a CHHLTD interrupt.
5. In response to the CHHLTD interrupt, reinitialize the channel for the next transfer.
15.4.3.6.15.2 Handling Interrupts
The channel-specific interrupt service routine for Isochronous OUT transactions in DMA mode is shown
in the following flow:
Summary of Contents for Giant Gecko EFM32GG
Page 842: ......