6 On-Board Nano Debugger

This section describes the features and interfaces of the on-board debugger for programming and debugging.

6.1 Overview

The PIC16F13276 Curiosity Nano features an on-board Nano Debugger for programming and debugging. When connected to a host computer, the Nano Debugger appears as a composite USB device offering several interfaces:
  • Debugger: Enables programming and debugging of the target device.
  • Virtual serial port (CDC): Provides access to the target device’s UART interface.
  • Data Gateway Interface (DGI): Microchip’s proprietary interface for streaming data to the host computer.
  • Mass storage device: Supports drag-and-drop programming of the target device, provides kit information files and supports utility commands.
Tip: For detailed instructions and advanced features, refer to the Nano Debugger Manual.

6.2 Power and Status LED

The on-board debugger controls a Power and Status LED (marked PS) on the PIC16F13276 Curiosity Nano board. The table below shows how the different operation modes control the LED.

Table 6-1. On-Board Debugger LED Control
Operation ModePower and Status LED
Boot Loader modeThe LED blinks slowly during power-up
Power-upThe LED is ON
Normal operationThe LED is ON
ProgrammingActivity indicator: The LED blinks slowly during programming or debugging
Drag-and-drop programming
Success:
The LED blinks slowly for 2 sec.
Failure:
The LED blinks rapidly for 2 sec.
FaultThe LED blinks rapidly if a power fault is detected
OffWhen the on-board debugger is powered down, the LED is OFF
Info: Slow blinking is approximately 1 Hz, while rapid blinking is about 5 Hz.

6.3 Connections

The table below lists the connections between the target device and the debugger. When the debugger is inactive, these connections are set to high-impedance (tri-state) mode. This allows users to use these pins for any function without interference from the debugger.

Info: The 12 edge connections closest to the debugger USB connector have a standardized pinout, but the function of the programming and debugging pins varies depending on the programming interface used.
Table 6-2. On-Board Debugger Connections
Debugger Pin PIC16F13276 PinDescription
CDC TXRD7UART RX USB CDC TX line
CDC RXRD6UART TXUSB CDC RX line
DBG0RB7ICSPDATDebug data line
DBG1RB6ICSPCLKDebug clock line
DBG2RE1SW0/GPIO0Debug GPIO0/SW0
DBG3RE3MCLRReset line
VOFFPull VOFF low to disable the on-board regulator and allow external power on VTG; VOFF is monitored by the debugger
IDIdentification of supported base boards and extensions at power-up
Figure 6-1. Curiosity Nano Debugger Pinout
Tip: For the complete PIC16F13276 Curiosity Nano pinout, see the PIC16F13276 Curiosity Nano Pinout.

6.4 Disconnecting the On-Board Debugger

All signals between the on-board debugger and the target device are routed through cut straps on the bottom of the board. These cut straps can be used to disconnect the debugger from the target for various purposes, such as:
  • Evaluating the target device’s power consumption in isolation removes the on-board debugger's influence on current measurements
  • Using the target device with an external programmer/debugger
  • Using the on-board debugger as a standalone programmer/debugger for other devices
The following cut straps are available to separate the debugger from the target:
  • Debugger Pins (J101, J102, J103, J104, J105, J106)
  • Power
Attention: Cutting the GPIO straps to the on-board debugger disables the virtual serial port, programming, debugging, and data streaming functions.
Figure 6-2. Curiosity Nano Debugger Cut Straps
Tip: To reconnect any cut connections, use solder or mount a 0 Ω 0402-size resistor across the cut strap.

6.5 Connecting External Debuggers

Although the board includes an on-board debugger, external debuggers can also be connected directly to the target device for programming and debugging. When the on-board debugger is not actively in use, it keeps all pins connected to the board edge and the target device in a tri-state condition. This ensures that the on-board debugger does not interfere with any external debug tools.

Figure 6-3. Connecting an External Debugger/Programmer to a Curiosity Nano Board
CAUTION: The MPLAB® PICkit 5 In-circuit Debugger/Programmer can deliver high voltage on the MCLR pin. High voltage can permanently damage R209. If R209 is broken, the on-board debugger cannot enter the programming mode of the PIC16F13276 and will typically fail at reading the device ID.
CAUTION: To prevent contention, do not use the on-board debugger for programming or debugging while the external debugger is connected.