During USB enumeration, the host OS will start both communication and data pipes of
the CDC interface. At this point, it is possible to set and read back the baud rate and
other UART parameters of the CDC, but data sending and receiving will not be
enabled.
When a terminal connects on the host, it must assert the DTR signal. As this
is a virtual control signal implemented on the USB interface, it is not physically
present on the board. Asserting the DTR signal from the host will indicate to the
on-board debugger that a CDC session is active. The debugger will then enable its level
shifters (if available), and start the CDC data send and receive mechanisms.
Deasserting DTR in debugger firmware version 1.20 or earlier has the following
behaviour:
- Debugger UART receiver is disabled, so no further data will be transferred to
the host computer
- Debugger UART transmitter will continue to send data that is queued for sending,
but no new data is accepted from the host computer
- Level shifters (if available) are not disabled, so the debugger CDC TX line
remains driven.
Deasserting DTR in debugger firmware version 1.21 or later has the following
behaviour:
- Debugger UART receiver is disabled, so no further data will be transferred to
the host computer
- Debugger UART transmitter will continue to send data that is queued for sending,
but no new data is accepted from the host computer
- Once the ongoing transmission is complete, level shifters (if available) are
disabled so the debugger CDC TX line will become high-impedence.
Remember: Set up the terminal
emulator to assert the DTR signal. Without the signal, the on-board debugger will not
send or receive any data through its UART.
Tip: The on-board debugger’s CDC TX
pin will not be driven until the CDC interface is enabled by the host computer. Also,
there are no external pull-up resistors on the CDC lines connecting the debugger and the
target, which means that during power-up, these lines are floating. To avoid any
glitches resulting in unpredictable behavior like framing errors, the target device
should enable the internal pull-up resistor on the pin connected to the debugger’s CDC
TX pin.