Explorer 16/32 Development Board User's Guide

Introduction

The Explorer 16/32 Development Board is intended as a development, demonstration, and testing platform for many families of Microchip 16-bit and 32-bit microcontroller devices. The board features all the necessary hardware (such as power supply, user interface, communications, and I/O connectivity) to begin developing and debugging a complete embedded application. The Explorer 16/32 board accepts 100-pin microcontroller “Plug-In Module” (PIM) daughter boards designed for the Explorer 16 or Explorer 16/32 Development Board (PIMS). In addition to the hardware features provided by the Explorer 16/32, hardware expansion is possible through the use of mikroBUS™ and PICtail™ Plus accessory boards.


Board Schematics and Bill of Materials

Full schematics and related information for the Explorer 16/32 Development Board can be downloaded below:

Files

Explorer 16/32 Development Board Features

Hardware features of the Explorer 16/32 Development Board are highlighted and summarized below:

Explorer_16_32_Development_Board_Feature_Callouts.jpg
  1. 100-pin Plug-In Module (PIM) socket (U1A), supporting a wide variety of 16-bit and 32-bit microcontroller families (see PIMs list). Note: The TQFP microcontroller (U14) in the center of the PIM area is part of the PICkit™ On Board circuit (#7 below) and is not intended for running application code. In order to develop application code for the Explorer 16/32 Development Board, a PIM must always be installed on U1A.
  2. DC power supply input jack (J12, center pin positive), accepting 8-15 V DC, for powering the Explorer 16/32 board and any mikroBUS or PICtail Plus accessory boards. The board may also be powered from any one of three USB power sources.
  3. Power switch (S7) – de-bounced on-off power pushbutton that can be used to power cycle the PIM microcontroller and all other circuitry on the 5 V and 3.3 V Explorer 16/32 power supply rails.
  4. Power supply conversion circuitry – provides 5 V / 3.3 V power supply nets, with short circuit and USB overcurrent limiting features.
  5. Green power status LED (D1) – indicates when 5 V and 3.3 V rails are switched on
  6. MCLR reset button (S1) for manually resetting the PIM microcontroller.
  7. PICkit On Board (PKOB) programmer/debugger and micro-B USB connector – useful for basic programming or debug operations of select microcontroller devices available as PIMs for the Explorer 16/32 Development Board.
  8. RJ11 ICSP™ programming/debug interface – compatible with MPLAB® ICD/REAL ICE™, and other RJ11 based Microchip programming/debug tools.
  9. 6-pin interface for the PICkit programmer (when used in conjunction with a 6-pin 100 mil male-male header).
  10. 8x general purpose green indicator LEDs (D3-D10) – controllable by the PIM microcontroller firmware.
  11. 4x general purpose pushbuttons – state readable by the PIM microcontroller firmware.
  12. MCP2221A USB to UART (up to 460,800 baud) + I2C serial adapter chip – useful for transferring data to/from the PIM microcontroller or attached accessory boards and a USB host.
  13. USB Type-C™ connector – useful for the development of both embedded host and device based Low/Full/High-Speed USB applications, when used in conjunction with a USB capable microcontroller/PIM.
  14. USB Type-A connector – shares USB signals with the Type-C connector and is useful for the development of dedicated USB embedded host applications, when used in conjunction with a USB capable microcontroller/PIM.
  15. 2x mikroBUS interfaces – useful for attaching a wide array of hardware expansion boards, for extending the functionality of the platform.
  16. PICtail Plus interface – useful for attaching a wide array of existing PICtail Plus based expansion boards, extending the hardware functionality of the platform.
  17. 100 mil pitch I/O pin access headers – useful for accessing nearly all PIM microcontroller nets for debugging, oscilloscope monitoring, or for making additional connections between nets and/or to external hardware. The female headers can accommodate standard 100 mil male headers or 22 AWG solid wires.
  18. Independent crystals for precision microcontroller clocking (8 MHz) and timekeeping operation (32.768 kHz). Also implements provisions for canned oscillators (see the "Oscillators Options" section).
  19. 10 kΩ Potentiometer – useful as an analog signal source for ADC demonstration or user interface purposes.
  20. TC1047A analog output temperature sensor – useful for monitoring the ambient temperature and/or demonstrating ADC operation.
  21. Serial SPI EEPROM (25LC256).
  22. 2-Line by 16-Character LCD Module – Truly TSB1G7000-E 4/8-bit parallel interface LCD module, useful for displaying user application strings/text.

Getting Started

Before using the Explorer 16/32 Development Board, it is first necessary to have a 100-pin processor Plug-In Module (PIM) installed on the male headers U1A. A PIM is always required, as the microcontroller U14 (located in the center of the PIM area) is part of the PICkit On Board programmer/debugger circuit, and is therefore not intended for running application related code. A list of available 100-pin PIMs which are compatible with the Explorer 16/32 (and Explorer 16) Development Board can be found at:

http://www.microchip.com/pims

To begin development and programming the PIM microcontroller and using the hardware of the Explorer 16/32 Development board, it is recommended to obtain the MPLAB Integrated Development Environment (IDE) and a suitable C compiler supporting your desired target PIM microcontroller. MPLAB X IDE and MPLAB C compilers can be found at:

http://www.microchip.com/mplab
http://www.microchip.com/compilers

Microchip provides a wide variety of free example firmware projects and libraries, which are compatible with the Explorer 16/32 Development Board. Some initial “out of box” demo projects are available from:

http://www.microchip.com/Explorer1632

These demos exercise and demonstrate the basic functionality of the Explorer 16/32 Development Board and the microcontroller (e.g., by using pushbutton(s) and displaying ADC data to the LCD module). Details on the usage of the example projects can be found in the documentation accompanying the projects.

Application and microcontroller peripheral interface code can be generated using the MPLAB Code Configurator (MCC):

http://www.microchip.com/mcc

Additional reference projects/libraries compatible with the Explorer 16/32 Development Board can be found in the Microchip Libraries for Applications (MLA) and Harmony packages:

http://www.microchip.com/mla
http://www.microchip.com/Harmony


Tips for Reading the Schematics

The net names of signals connecting to the PIM microcontroller headers (U1A) follow a naming convention where each net (except power and ground) is prefixed with "Pxx" where xx is a number 1-100. The Pxx number corresponds with the U1A male PIM header pin number associated with the net. Nets that are also connected to one or more dedicated hardware features on the Explorer 16/32 Development Board have net names with underscores and suffixes denoting their associated feature(s).

For example, the net "P21_TEMP" is the electrical signal attached to the U1A male PIM header pin 21, and it is also connected to the analog output pin of the TC1047A temperature sensor (U4) on the Explorer 16/32 Development Board. Similarly, the net "P92_S5_LED10" represents the signal attached to U1A male PIM header pin 92, which also connects to pushbutton S5, as well as LED D10, on the Explorer 16/32 Development Board.

It is important to note that the U1A male PIM header pin numbers usually do NOT correspond 1:1 with the pin numbers of the microcontroller mounted on the PIM PCB. For example, the PIC24FJ256GA705 PIM (MA240039) is based on a TQFP-48 microcontroller, which does not have enough total I/O pins to connect to and control all 100 PIM pins independently (especially in a 1:1 fashion). Therefore, the PIM PCB maps microcontroller pins to PIM header pins on a functional basis (ex: PIM pin 21, named "P21_TEMP" is connected to an A/D input channel pin RA1/AN1 on the microcontroller, which is TQFP-48 pin 22). We recommend you refer to both the PIM schematics as well as the Explorer 16/32 Development Board schematics when tracing signals between the microcontroller I/O pins and the connected hardware.

In addition to the above conventions, the signal names for dedicated signals connecting to the mikroBUS interfaces end in "A" or "B". For example, the net "P10_SCKA" connects to U1A male PIM header pin 10, as well as to the SPI interface SCK pin on the mikroBUS interface A. Meanwhile, the "P55_SCKB" net connects to the U1A PIM header pin 55, and to the SPI interface SCK pin on the mikroBUS interface B. The "P57_SCL" and "P56_SDA" nets are, however, associated with a shared I2C bus that is connected to both mikroBUS A and mikroBUS B interfaces. Consequently, these special signals do not end in "A" or "B", unlike the dedicated mikroBUS signals.

Older schematics for PIM PCBs and PICtail Plus daughter boards that were originally designed for the "classic" Explorer 16 Development Board do not follow the above net naming conventions. These schematics typically use microcontroller pin/function names as net names (ex: "RE5/PMD5", instead of "P3_LCDD5"), as they were originally based on the PIC24FJ128GA010 PIM (MA240011), which was the first PIM created for the classic Explorer 16, and did use a 100 pin microcontroller with 1:1 PIM to microcontroller pin number mapping.


Powering the Explorer 16/32 Development Board

The Explorer 16/32 board can be powered from any one or more of four different connectors: USB micro-B for PKOB (J18), USB Type-C (J24), USB micro-B for USB-Serial converter (J40), or the DC barrel jack (J12). The three USB power sources are effectively (Schottky) diode OR-ed together, and sent through a current limiting/inrush limiting/short circuit protection circuit, before feeding the 5 V rail on the board. A summary of the typical output voltage and current capability of each power supply rail based on the type of power source provided is as follows:

Power Source 3.3 V / Vdd Rail "5 V" Rail "9 V" Rail
USB only 3.3 V up to 400 mA ~4.5 V up to 400 mA ~4.2 V up to 400 mA
"9 V" DC barrel plug 3.3 V up to 1.3 A 5.0 V up to 1.3 A ~8.7 V up to 1.3 A

When operating on USB power only, the total current (sum of 3.3 V + 5 V + 9 V rail currents) that may be drawn by hardware accessories (ex: mikroBUS, PICtail Plus, and PIM boards) should not exceed 400 mA. When an external wall cube is connected to the DC barrel jack J12, the total current (sum of 3.3 V + 5 V + 9 V rail currents) available to accessory hardware is 1.3A, or the max current rating of the wall cube, whichever is lower.

For applications requiring a true 9 V rail, 3.3 V / 5 V rail currents exceeding 400 mA, or applications requiring a well regulated 5 V rail (ex: USB host applications), it is recommended to power the Explorer 16/32 board through the dedicated DC barrel jack J12. The board accepts center pin positive 8 V - 15 V DC power supplies (such as microchipDIRECT AC002014). When powered with an external wall cube, 5 V or 3.3 V rail currents up to ~1.3 A are supported. However, when continuously operating at this current level, be careful, as components U6, D20, U9, and other surrounding areas will become quite hot (>100° Celsius possible).

Some of the components in the power supply related circuitry have special purposes that may not be immediately obvious at first glance. Some of the special components and details/intent of their implementation are described below.

The Explorer 16/32 components Q5, C61, and R132 implement a soft start circuit when the board is powered through one of the USB connectors.

During attachment of a USB device to a host (or hub), a USB device should attempt to limit the amount of (near) instantaneous in-rush current it consumes from the host/hub’s +5V VBUS supply. If the device’s total VBUS effective capacitance exceeds 10 μF, the USB specification expects the device to implement some form of soft start/inrush limiting circuit. When the device’s capacitance exceeds 10 µF (effective across VBUS), with no in-rush limiting circuit a large transient will occur at the moment of device attachment. This in-rush transient can potentially cause a significant voltage droop within the local host/hub’s power net, leading to malfunction in the host or hub, or in an adjacent USB device that may also be already attached and powered by that host/hub. This can potentially cause problems with enumeration or otherwise lead to a poor end-user experience.

During a USB attachment event, the Explorer 16/32 Development Board MOSFET Q5 is driven in the linear region (due to the effect of C61 and R132), allowing for slower output voltage rising waveform (and correspondingly reduced inrush current profile).

The components Q5, R99, and Q4 are used to implement a USB current limiting and short circuit protection feature. This will begin to activate when the total load on the 5 V and 3.3 V Explorer 16/32 supply rails exceeds approximately 400 mA (when powered only by USB, without additional power from the DC barrel jack). Under hard short circuit conditions, resistors R131 and R134 implement a current foldback scheme. This dynamically reduces the current limit to ~260 mA, thereby reducing thermal power dissipation in Q5, allowing for a continuous short circuit to be sustained when the ambient conditions are near 25° Celsius.

On-Off toggle power switching of the 5 V and 3.3 V rails on the Explorer 16/32 board is implemented with U3 + S7 + the surrounding resistor/capacitor components. The dual inverter U3 is connected in a circular chain, providing positive feedback and an effective 1-bit latching memory cell. Pushbutton S7, C28, R130, and R135 implement a de-bounced means of toggling the state of the 1-bit memory cell. Components R129, R136, and C62 help establish an initial “default to on” state during the initial power-up ramp of U3.


Jumper Options

The Explorer 16/32 Development Board has several jumpers, summarized as follows:

Jumper Description
JP2 LED D3-D10 group enable/disable
J19 LCD Read/Write Connection
J22 USB Type-C Host VBUS enable control signal
J23 Potentiometer (POT) R6 disconnect
J25 USB Signal Quality/P90_USBDP to PICtail™+ access connection
J26 USB Signal Quality/P89_USBDN to PICtail+ access connection
J27 EEPROM U4 Chip Select disconnect
J28 USB Type-C host/device Configuration Channel 1 select (CC1)
J29 USB Type-C host/device Configuration Channel 2 select (CC2)
J33 USB Host VBUS Over Current detect signal
J37 Universal Asynchronous Receiver Transmitter (UART) RX to MCP2221A connection
J38 UART TX to MCP2221A connection
J39 Temperature sensor U4 disconnect
J41 MCP2221A I²C SDA signal disconnect
J42 MCP2221A I²C SCL signal disconnect
J43 9 V rail current measurement test point
J44 5 V rail current measurement test point
J45 3.3 V rail current measurement test point
J50 PIM_VDD rail current measurement test point

Additional details of each jumper and their intended purpose and usage are described below:

JP2: Jumper JP2 can be opened to effectively disable the LEDs D3-D10 on the Explorer 16/32 board, so as to minimize loading of the I/O pins connected to the LEDs. In order to use any of the LEDs D3-D10 as indicators, JP2 must be capped.

J19: Connects to the Plug-In Module (PIM) pin P82 and the LCD R/W pin. When the jumper is capped, this allows the PIM microcontroller firmware to read from the LCD module. When the jumper is left open, the LCD R/W pin is pulled low by R116, putting the LCD in Write Only mode. In general, it is usually not necessary to read from the LCD, and it is preferable to leave J19 open. When the LCD module is in Write Only mode, the module I/O pins will be tri-stated (albeit with weak internal pull ups in the module), which prevents I/O contention with the microcontroller firmware, if/when the application code uses the I/O pins connected to the LCD module for other purposes.

J22: Connects to the PIM P96_VBUSON net and when capped in the 2-3 position, enables the PIM microcontroller firmware to turn on/off the USB Type-C™ connector +5 V VBUS power supply (output to an attached USB device). The USB Type-C specifications indicate that hosts should first detect the presence of an attached USB device, prior to enabling the +5 V VBUS output to the USB connector (so as to avoid potentially harmful current flows if two hosts or power sourcing devices are connected together). For engineering development/testing convenience, jumper position 1-2 continuously enables the +5 V VBUS output onto the USB Type-C connector, but this jumper position is generally not recommended for normal use, as it will not be USB compliant. This jumper should be left fully open in USB device only, USB Type-A embedded host, or non-USB applications, so as to disable VBUS output sourcing in these types of applications.

J23: This can be used to disconnect the POT R6 output from the PIM microcontroller. By default, a trace (on the bottom of the Printed Circuit Board (PCB)) shorts the two pins of J23, and the POT will always be connected to the microcontroller. If desired, the trace can be cut to disconnect the POT, and a 2-pin jumper may optionally be installed to allow user re-connection/disconnection of the POT.

J25 and J26: These jumpers are present for USB signal quality reasons. In USB high speed (480 Mbps) applications, jumpers J25 and J26 should both be left in the open/uncapped state, in order to avoid degrading the USB signal quality. In non-USB applications, both jumpers should generally be capped.

In USB high-speed applications, the P89_USBDN and P90_USBDP nets are implemented as a dedicated transmission line (~90 Ω differential and ~30 Ω Common mode impedance), between the PIM pins 89/90 and the USB connector. Capping J25 and J26 has the effect of shorting the P89_USBDN/P90_USBDP nets to the P89_USBDN_E/P90_USBDP_E nets respectively. This allows access to PIM pins 89/90 on the I/O access headers J46/J47 and the PICtail Plus interface, enabling them to be used as general-purpose I/O pins. However, capping J25 and J26 creates T junctions in the signal traces (trace splitting), which will disrupt the transmission line characteristics, required for reliable USB high-speed communication. At USB Low (1.5 Mbps) and Full (12 Mbps) speeds, the relatively slow signaling rates (and edge slew rates of the signals) are much more forgiving of non-ideal trace layout and short (< 19 cm) T junctions/signal branches. Therefore, in Low and Full speed USB applications, J25 and J26 may be left either capped or uncapped, although, for the best signal quality it is still preferable, but not strictly required, to keep both jumpers open.

J27: Connects the 25LC256 EEPROM (U5) chip select to the PIM P79_EECS net, when capped. When left open, the resistor R2 de-selects the EEPROM, ensuring that no I/O contention will occur on the P11_MISOA net, even if the PIM microcontroller firmware uses this net as a digital output.

J28 and J29: These 3-pin jumpers connect to the CC1 and CC2 nets on the USB Type-C connector. In USB embedded host applications using the Type-C connector, both jumpers should be capped in the 1-2 position, so that the CC1/CC2 pins of the USB connector are pulled high by R105 and R106. When pulled high, this advertises to the other USB product at the other end of the USB cable, that a host is attached/present. When implementing a USB Type-C Device mode application, the J28, and J29 jumpers should instead by capped in the 2-3 position, pulling CC1/CC2 low (via R107 and R10). This signals to the host (or hub) at the other end of the USB cable that a device has been attached (as opposed to another host).

In non-USB applications, the jumper caps may be removed altogether, so as to minimize interference on the P33_CC1 and P32_CC2 nets. However, if the application wishes to obtain USB bus power from the USB Type-C connector, the jumpers should still be left capped in the Device mode positions (ex: cap pins 2-3), as USB Type-C hosts will not necessarily enable the 5 V VBUS power supply to the USB port until it first confirms the presence of an attached device.

J33: When capped, this jumper allows the PIM microcontroller to measure/detect USB embedded host over current or short circuit conditions on either the USB female-A or Type-C connectors. For USB embedded host applications wishing to detect these conditions, the jumper should be capped and the P25_ANA_USBOC net should be sampled with an Analog-to-Digital Converter (ADC). For all other applications (non-USB, USB device only, or USB embedded host – not requiring VBUS over current detection), the jumper may be left open to allow the PIM pin 25 to be used for other purposes.

J37: This jumper can be used to connect or disconnect the MCP2221A TX signal from the P49_RXB net, which normally goes to the PIM microcontroller’s RX pin, as well as the mikroBUS B and PICtail Plus interfaces. This jumper should be capped, whenever the MCP2221A will be used to interface with the PIM microcontroller UART (or to a UART based peripheral attached via mikroBUS interface B or the PICtail Plus interface).

J38: This jumper can be used to connect or disconnect the MCP2221A RX signal from the P50_TXB net, which normally goes to the PIM microcontroller’s TX pin, as well as the mikroBUS B and PICtail Plus interfaces. This jumper should be capped, whenever the MCP2221A will be used to interface with the PIM microcontroller UART (or to a UART based peripheral attached via mikroBUS interface B or the PICtail Plus interface).

J39: This is can be used to disconnect the temperature sensor (U4) output from the PIM microcontroller (P21_TEMP net). By default, a trace (on the bottom of the PCB) shorts the two pins of J39, and the temperature sensor will always be connected to the microcontroller. If desired, the trace can be cut (see silk text on the bottom of PCB) to disconnect the POT, and a 2-pin jumper may optionally be installed to allow user re-connection/disconnection of the sensor.

J41: When capped, this jumper connects the MCP2221A I²C Serial Data (SDA) pin to the P56_SDA net which goes to the PIM microcontroller, the mikroBUS A/B interfaces, and to the PICtail Plus interface. Opening this jumper disconnects the SDA pull up resistor and MCP2221A from the P56_SDA net.

J42: When capped, this jumper connects the MCP2221A I²C Serial Clock (SCL) pin to the P57_SCL net which goes to the PIM microcontroller, the mikroBUS A/B interfaces, and to the PICtail Plus interface. Opening this jumper disconnects the SCL pull up resistor and MCP2221A from the P57_SCL net.

J43: When populated with a 2-pin jumper header, a trace on the bottom of the PCB can be cut to measure the 9 V rail current consumption of the board, by inserting an external current meter between the jumper J43 pins.

J44: When populated with a 2-pin jumper header, a trace on the bottom of the PCB can be cut to measure the +5 V rail current consumption of the board, by inserting an external current meter between the jumper J44 pins.

J45: When populated with a 2-pin jumper header, a trace on the bottom of the PCB can be cut to measure the +3.3 V rail current consumption of the board, by inserting an external current meter between the jumper J45 pins.

Note: To measure the PIM microcontroller VDD supply current, J50 should be used instead, as the +3.3 V rail is used to supply additional circuitry on the Explorer 16/32 board, such as the LCD module, MCP2221A, PKOB circuit, etc., in addition to the PIM microcontroller.

J50: This jumper connects the VDD_PIM net to the +3.3 V power supply on the Explorer 16/32 Development Board. When uncapped, a floating/non-earth ground-referenced current meter (ex: a typical battery-operated Digital Multi-Meter (DMM)) may be connected between the pins to measure the current consumed by the PIM, on the VDD_PIM net. When not being used for current measurements, the jumper should be maintained consistently capped, to ensure the PIM microcontroller gets power.

Note: When using a DMM to measure the current, it is important to be aware of the local voltage drop that may occur across the DMM’s internal sense resistance, especially when drawing several mA or tens of mA, when operating on the more sensitive DMM current measurement scales (ex: 0.1 µA or 1.0 µA/least significant digit count). Under these conditions, the resistive drop across the DMM’s internal sense resistance can often be quite high, possibly hundreds of millivolts or more, potentially resulting in unexpected behavior (ex: Brown-out Reset (BOR) of the PIM microcontroller, if operating near the BOR threshold). To minimize this voltage drop, it is generally recommended to use a coarser/higher current measurement scale, whenever possible.


Oscillator Options

The Explorer 16/32 Development Board comes with two crystals, 8 MHz (Y3) and 32.768 kHz (Y2) for use with Plug-In Modules (PIM) microcontroller's primary and secondary oscillator circuits respectively. Although not populated by default, the board also has provisions for the installation of a canned oscillator or socket, allowing the PIM microcontroller to be operated in External Clock (EC) or External Clock Phase Locked Loop (ECPLL) modes, at a custom frequency.

In order to use a canned oscillator, the unpopulated resistor pad R4 must first be populated with a 0 Ω jumper resistor (size 0603), which will have the effect of connecting the canned oscillator output to the P63_OSCI net, which feeds the PIM microcontroller. Once R4 is populated, a canned oscillator (or oscillator socket) may be installed onto either pad X2 or X4.

Pad X2 is designed to accommodate standard DIP-14 or DIP-8 canned oscillators (with 3.3 V VDD and CMOS output capability) or sockets, while pad X4 is designed to be used with the Microchip DSC1001 (or other DSC100x) series oscillators, in the 2.5 mm x 2.0 mm package. If using a DIP-8 canned oscillator (or oscillator socket), the device should be installed in the bottom-most four pins of pad X2 (e.g., so that pin 1 of the DIP8 oscillator is the same pin 1, if a DIP14 oscillator were used instead).

When using a canned oscillator it also recommended populating C9 with a 0.01 µF to 0.1 µF ceramic capacitor, and R94 with a ~5.1 kΩ pull-up resistor (if a DIP8/DIP14 canned oscillator with a standby/enable pin will be used).


Using the MCP2221A USB-Serial Converter

The MCP2221A provides USB to Universal Asynchronous Receiver Transmitter (UART) and USB to I²C serial adapter functionality, which can be used to interface the Plugin Modules (PIM) microcontroller and/or other hardware to a host (e.g., a PC serial terminal application).

On the Explorer 16/32 Development Board, the MCP2221A is accessible through USB Micro-B connector J40.

USB Driver Installation

When using the MCP2221A on a Windows® XP SP3 through Windows 8.1 USB host, the USB drivers for the MCP2221A can be manually downloaded and installed from the MCP2221A product page. Alternatively, under Windows 7 or Windows 8, the drivers may also be obtained through the Windows Update service, provided that the machine is connected to the internet at the time of the first attachment of the hardware, and the local policy settings enable automatic driver searching on Windows Update.

Under Windows 10, the OS provides all necessary drivers and installation is fully automatic, without requiring any internet connection or manual installation procedures. Under Windows 10, it is neither necessary nor recommended to try to manually install any additional or different drivers.

Under Mac OS X® 10.7 and later, and under most modern Linux® distributions, the device uses the operating system provided Human Interface Device (HID) and Communication Device Class - Abstract Control Model (CDC-ACM) drivers automatically, such that no manual driver installation procedures should be necessary.

Identifying and Connecting to the MCP2221A USB-UART Adapter Function

Windows Operating Systems

Once the USB drivers are properly installed, a new serial port object should become available for application use. Under Windows, the serial port should become visible from the Windows Device Manager in the Ports (COM & LPT) category and should be assigned a new COMx name (where x is a number, e.g., "COM2"). The exact COMx number assigned to the hardware will depend in part upon how many COMx based hardware devices have previously been connected to the machine, as each new hardware instance must be assigned a new and unique number, to avoid potential conflicts (e.g., two simultaneously attached hardware devices are not allowed to share the same COMx number).

If a machine currently has more than one COMx based hardware device attached to the machine, multiple COMx entries (but different numbers, e.g., COM1 and COM2) may exist in the Windows Device Manager in the Ports (COM & LPT) category, and it may not be clear which COMx port number is specifically associated with the MCP2221A device. If this occurs, the COMx number can be manually identified by temporarily detaching the USB connection to the MCP2221A, while watching the Windows Device Manager, to identify which device entry disappears (and subsequently re-appears in the list, upon re-attaching the MCP2221A).

Once the COMx port number assigned to the MCP2221A is known, any conventional serial port terminal program can be used to open/close/read/write to the COMx port. Upon opening the COMx port and writing characters to it, the MCP2221A will forward the characters out the hardware UART TX pin (which would normally be connected to the PIM microcontroller via jumper J37). Similarly, characters originating from the Explorer 16/32 Development Board (or attached accessories) will be transmitted to the host terminal program, when J38 is capped.

Full source code is provided with the application (which can automatically identify the COMx port number in software) when the USB Vendor ID (VID) and USB Product ID (PID) values are known for the USB to serial adapter device. Identifying the COMx number from the USB VID/PID is preferable for end consumers, as the USB VID/PID are normally static for a given application (e.g., set at design time), and would not normally change dynamically (like COMx port number assignments, which will not be known at development time and may change if the user moves the hardware from one USB port to a different port, on a given machine).

The MCP2221A that comes on the Explorer 16/32 Development Board is pre-programmed with USB VID = 0x04D8, and PID = 0x00DD, but these default values can be changed with the MCP2221A utilities.

Mac OS X 10.7 or Later Operating Systems

Under Mac OS X 10.7 or later, the MCP2221A should appear as a /dev/tty.usbmodemXXXX device, where “XXXX” is the number and text wildcards representing the hardware instance, similar to the COMx port number under Windows. The /dev/tty.usbmodemXXXX device can be opened similar to a regular Windows COMx port, using a standard serial terminal program.

Under Mac OS X 10.7 or later, the built-in "screen" terminal utility can be used as a serial terminal for accessing the device. To obtain the device name, open a terminal (click the spotlight and search for "terminal"), then enter: ls /dev/tty.*.

When the MCP2221A USB device is attached and enumerated a "/dev/tty.usbmodemXXXX" device entry should be shown corresponding to the MCP2221A hardware. Once the specific name is known, it can be opened using: screen -U /dev/tty.usbmodemXXXX 115200.

"XXXX" should be replaced with the specific name applicable to the instance, and "115200" is the baud rate to open the serial port at, which can optionally be changed to a different value within the MCP2221A's capability, ex: <= 460800 baud.

In order to send/receive UART RX/TX data bytes to/from the PIM microcontroller, jumpers J37 and J38 should both be capped.

Note: Operation on Mac OS X versions prior to 10.7 may not work properly, as the OS needs to have awareness/support for USB Interface Association Descriptors (IAD).

Linux Operating Systems

Most modern Linux operating systems come with USB CDC-ACM support already built into the kernel (and for distributions that may not already support this, it can usually be added by recompiling the kernel). Therefore, no additional USB drivers are normally required.

Upon successful enumeration on a Linux host, the MCP2221A should appear as a /dev/ttyACMx device (where x is a wildcard that depends on the device instance, similar to the Windows COMx port number). The specific /dev/ttyACMx name can be identified by attaching the hardware and from a terminal prompt entering:

lsusb
modprobe cdc-acm vendor=0x04d8 product=0x00dd
dmesg

Once the specific name is known, it can be opened and accessed using a terminal program such as "GtkTerm".

Using the MCP2221A USB to I²C Adapter Functionality

The USB to I²C functionality of the MCP2221A can be exercised using the software tools associated with the MCP2221A. When using the MCP2221A USB to I²C functionality to connect with a PIM microcontroller or accessory board (connected via one of the mikroBUS interfaces or the PICtail Plus Interface), it is necessary to ensure that jumpers J41 and J42 are both capped.

Other Usage Tips

When using the toggle power switch S7 to power cycle the Explorer 16/32 Development Board, all circuitry on the +5 V and +3.3 V/VDD_PIM supply rails on the board will be power cycled, including the MCP2221A.

When using the MCP2221A as a USB-UART serial port device, it is recommended to always close the serial port (ex: COMx or /dev/tty… device) in the application software or terminal program, either before, or while the power is still switched off, prior to restoring power to the board. Similarly, when unplugging the USB connection to the MCP2221A, always close the serial port, while the cable is currently unplugged (or even before unplugging the cable), prior to re-attaching the USB cable.

Failure to follow these procedures can result in the device becoming inaccessible (especially under Windows OSes prior to Windows 10) following the re-attachment or re-powering of the device. If this occurs, the operation can be restored by performing the detach or power cycling operation a second time, while making sure to close the serial port prior to re-attachment/power-up.

For best end-user experience, when writing application software that may connect to the serial port, it is recommended to write the application software to be plug and play aware, so that it can automatically close the serial port as soon as the USB detach is detected (and similarly re-open the serial port automatically, if a plug and play MCP2221A attachment event is detected). Example code demonstrating how this can be accomplished is included in the Microchip "USB_Serial_Terminal" application in the MLA.


Using the PICkit™ On Board (PKOB) Programming/Debug Tool

The PKOB circuit implements basic USB programmer/debugger capability, with limited target device support and low voltage only (VDD level on MLCR during In-Circuit Serial Programming™ (ICSP™) mode entry) programming/debug capability.

Upon connecting the PKOB circuit to a standard USB host computer (via Micro-B USB connector J18) running Windows®, Mac®, or Linux® operating systems, the PKOB circuit will promptly enumerate as a generic Human Interface Device (HID) class USB device. The circuit uses the standard HID class USB drivers provided by modern Windows, Mac, or Linux operating systems, and no custom or manual driver installation procedures will be necessary.

After the initial enumeration process is complete, the PKOB circuit will become visible and selectable as a programming/debug tool within the MPLAB® Integrated Development Environment (IDE). Within MPLAB X IDE, the PKOB will appear as a selectable Starter Kits (PKOB) device, in the Project Properties/Hardware Tool menu:

Explorer16_32_StarterKit_Hardware_Tool_Selection.png

If the device does not appear within the Hardware Tool list, make sure that the selected target microcontroller in the project matches the part number of the microcontroller on the Plugin Module (PIM) exactly, and that the PKOB supports the target selected, as indicated by a green or yellow circular icon next to the Starter Kits (PKOB) line in the Hardware Tool menu.

Once the PKOB has been selected in the IDE, the device will operate as a normal programmer/debugger tool. Information on how to use the IDE to perform programming and debugging operations can be found within the MPLAB Help documentation.

When using the PKOB, make sure that no other ICSP-based programmer/debugger tool is attached to the PIM microcontroller simultaneously, through the RJ11 jack JP1, or the 6-pin inline header footprint J14. The PKOB circuit, JP1, and J14 all share access to the same PIM microcontroller’s ICSP interface pins, so interference/contention (albeit current limited by series resistors) is possible if more than one programming/debug tool is simultaneously connected. Similarly, if an external programmer/debugger tool will be used instead of the PKOB circuit, it is recommended to unplug the USB connection on J18, so as to ensure that the PKOB circuit is held in reset and does not interfere or contend with the external programmer/debugger tool.


Differences from Classic Explorer 16 (Rev 5.1 and Earlier)

The Explorer 16/32 Development Board design was developed from the popular Explorer 16 Development Board (ex: DM240001). For details and schematics of the classic Explorer 16 board design, see the "Explorer 16 Development Board User’s Guide".

The Explorer 16/32 Development Board can be distinguished from the classic Explorer 16, by the silk screen and PCB copper layer revision numbers. The Explorer 16/32 board has the text “EXPLORER 16/32” prominently printed in the upper right quadrant of the top side of the PCB and will have a board revision number of at least 6.3 (printed on the bottom side copper layer, in the upper middle of the PCB). The classic Explorer 16 Development board instead shows silk text “Explorer 16 Development Board” on the top right quadrant of the board, and will have a PCB revision number 5.1 or lower printed on the bottom side copper layer.

The Explorer 16/32 Development Board was designed to maintain as much backward compatibility with existing Explorer 16 based firmware projects as possible, while still modernizing and improving several aspects of the design. Some of the key differences in the new board include:

  • USB female Type-C (supporting both Host and Device modes) and USB female A connectors have been added. It is no longer necessary to use the AC164131 USB PICtail Plus daughter card when designing USB applications.
  • PKOB circuit added: Allows one to get started using the Explorer 16/32 board with select PIMs immediately without strictly needing access to a dedicated programming/debug device. A conventional RJ11 ICSP connector is still retained for use with dedicated Microchip programming/debug tools. Provisions for a 6-pin inline PICkit style interface is also provided.
  • Legacy RS-232 UART level translator and connector have been replaced with the MCP2221A USB to UART/I²C adapter chip and a USB Micro-B connector.
  • New power supply topology. The board may now be operated either fully USB bus powered or from a dedicated 8 V - 15 V power supply, allowing for considerably higher 5 V and 3.3 V rail current.
  • Modified expansion/daughter board topology: The new Explorer 16/32 board comes with 2x mikroBUS interfaces, which are electrically compatible with a large suite of existing daughter boards from MikroElektronika. The area used for the vertical PICtail Plus connector on the classic Explorer 16 has been re-purposed to accommodate 100 mil female headers for I/O access to PIM microcontroller pins. Backward compatibility with existing vertically attached PICtail Plus daughter cards is maintained through the use of a new PICtail Plus Expansion Board (AC240100).
  • Additional provisions (ex: jumpers and cuttable traces) for tri-stating or disconnecting hardware (ex: LCD module, EEPROM chip, POT, temperature sensor) connected to the PIM microcontroller’s GPIO pins.
  • Provisions (unpopulated footprints) for functional expansions (ex: Pmod interfaces, custom frequency canned oscillators, etc.).
  • A new net naming scheme has been adopted [where PIM microcontroller GPIO pin net names are prefixed with “Pxx” where “xx” is a number representing the PIM pin number that the net is associated with].
  • Other miscellaneous enhancements, such as a power button, VDD_PIM current measurement test point (and other cuttable trace test points for the other supply rails), new more efficient/lower current indicator LEDs, etc.
© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.