The AVR64DD32 Curiosity Nano is an evaluation board from Microchip that showcases a relatively new chip not currently found on any other microcontroller development board. Although we often think of evaluation boards as clunky affairs with limited capabilities, Microchip has made their evaluation boards maker-friendly. The board features an on-board programmer and debugger that provides a USB interface to the computer. There are two rows of through-hole vias for soldering on pin headers and there are castellations along the edge should you decide to surface mount it. The eval board resembles an Arduino Nano in form and function, but they are not pin compatible.
The AVR64DD32 chip found on board has features not found on older AVR-based microcontrollers. The most notable feature is that the chip can operate its I/O at two different output voltages. It achieves this by giving one I/O port, connected to four pins, a separate power supply input. Thus you can run the board at 5V while reserving four pins for 3.3V peripherals, or vice versa. The chip also has up to four configurable look-up tables that can be connected to its pins. This allows you to take some external high-speed logic and bring it inside the chip. Other features include a 12-bit ADC and a 10-bit DAC. Chips in the AVR DA line and the AVR DB line have additional peripherals that are worth a look; Curiosity Nano boards are available for both.
When the Curiosity Nano is first plugged into a USB port, the default program on the board begins blinking an LED. Also, the on-board debugger mounts itself as a USB mass storage device. Two text files in the mounted device give you the current status of the board, and the board version information. There is also an HTML file that redirects your browser to the product page for the board on Microchip’s website. At this point you can use drag-and-drop programming with the board, but only if you have a pre-compiled (HEX) binary. You can also issue commands to the debugger by putting them in a text file and dropping it onto the drive. The debugger can set the on-board voltage regulator to 5V, 3.3V, or 1.8V to run the chip and its I/O at any of those voltages.
To try out programming the board, I started with MPLAB X IDE, Microchip’s development environment for the microcontrollers they produce. The IDE automatically detects the attached Curiosity Nano device and loads links to documentation and example code for the board. I recommend reading the Hardware Users Guide for a more detailed overview than we give here. The first example to visit is the “Out-of-the-box” code that is running by default. To get this code you can use MPLAB’s Git integration under the Team menu to get the code from Microchip’s GitHub repository. The project will complain about missing modules but you can follow the prompts to correct this.
It turns out the blinking light has three modes, and you can switch between modes by giving the board instructions over serial through the debugger. The documentation for the example code steps you through how to open a serial connection to the board. The example code’s instructions are generally clear, although the instructions for the data visualizer seem to be out of order. If you are new to MPLAB, you may have difficulties. While you can program the board from Microchip Studio (formerly Atmel Studio), It appears the example code for this board has not yet been ported to a Microchip Studio project.
Support for this board in Arduino IDE is almost ready. The Curiosity Nano boards with AVR DA and AVR DB chips are supported via a third-party board definition, but AVR DD support has not been added at time of writing. It seems that all that was missing in the existing release was the final pin assignments, which are now certain with the release of the chips and this board.
To really kick the tires on the power options, you will want to read the aforementioned Hardware Users Guide carefully. Details on how to get the debugger to change the board voltage are found there. Also detailed is how to use the second voltage input, VDDIO2, to operate port C at a different voltage from the rest of the board. In short, you will have to remove a resistor and connect an external power supply for the second I/O voltage. Two other items in the guide worth mentioning are instructions on how to disconnect the on-board debugger from the microcontroller to use it to program other Atmel chips, and full schematics for the Curiosity Nano board. In all, I found the documentation very useful and remarkably complete.
- I/O can operate at two voltages at once
- Integrated LUTs bring external logic onto the board
- Integrated debugger brings drag and drop to AVR