3.1.1.4 Advanced Use
CDC Override Mode
In normal operation, the on-board debugger is a true UART bridge between the host and the device. However, under certain use cases, the on-board debugger can override the basic operating mode and use the CDC pins for other purposes.
.txt
) into the
on-board debugger’s mass storage drive can be used to send characters out of the CDC
TX pin. The text file must start with the
characters:CMD:SEND_UART=
The maximum message length is 50 characters - all remaining data in the frame are ignored.
The default baud rate used in this mode is 9600 bps, but if the CDC is already active or has been configured, the baud rate last used still applies.
USB-Level Framing Considerations
Sending data from the host to the CDC can be done byte-wise or in blocks, which will be chunked into 64-byte USB frames. Each such frame will be queued up for sending to the CDC TX pin. Transferring a small amount of data per frame can be inefficient, particularly at low baud rates, since the on-board debugger buffers frames and not bytes. A maximum of 4 x 64-byte frames can be active at any time. The on-board debugger will throttle the incoming frames accordingly. Sending full 64-byte frames containing data is the most efficient.
When receiving data from the target, the on-board debugger will queue up the incoming bytes into 64-byte frames, which are sent to the USB queue for transmission to the host when they are full. Incomplete frames are also pushed to the USB queue at approximately 100 ms intervals, triggered by USB start-of-frame tokens. Up to 8 x 64-byte frames can be active at any time.
If the host, or the software running on it, fails to receive data fast enough, an overrun will occur. When this happens, the last-filled buffer frame will be recycled instead of being sent to the USB queue, and a full frame of data will be lost. To prevent this occurrence, the user must ensure that the CDC data pipe is being read continuously, or the incoming data rate must be reduced.