RoadTest: Microchip Curiosity Development Board
Author: diablero
Creation date:
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Maybe a mikroelektronika product, for using it on the MikroBUS and a RN4020 BLE
What were the biggest problems encountered?: Found easy my example tutorials for PIC16F1619 MCU, I think reading the Readme file makes everything very clear.
Detailed Review:
Hi All, thanks for the opportunity to review this very nice board.
What Curiosity board is? A nice development / demo board with built-in PICKit Programmer. You'll see repeatedly in the documentation the expression PKOB - that means PICkit On Board. On the underside of the board there is another microcontroller, which takes on the role of programming. Until now it was annoying sometimes alternating between using a board and testing its software modification, followed by connecting the programmer (PICkit 3), reprogramming and testing. It is clear that these maneuvers are now much simplified and working with one cable, not a “forest” of cables. That already saves a lot of space on the desk.
But it's not the only advantage. Writing programs was difficult by the need to track datasheets (or Application Notes) to correctly configure peripherals, even if they were known from previous experiences. The new tool (Code Configurator) is an easy click and fill in system that allows you to configure the PIC and the peripherals quickly and easily. By using the Code Configurator, most of the peripheral setup is done by the software. This way, the focus is on programming, not searching and checking of tehnical documents.
There is also an interesting element and a new concept to consider - Core Independent Peripherals. Core Independent Peripherals are designed to handle their tasks with no code or supervision from the CPU to maintain operation. As a result, they simplify the implementation of complex control systems and give designers the flexibility to innovate. “We have also seen how a new breed of integrated MCU peripherals, called Core Independent Peripherals, are bringing fresh new ideas to the market. These peripherals relieve the core from heavy computational tasks and, especially when combined together like LEGO bricks, they allow the designer to assemble new, highly customized building blocks that provide unprecedented flexibility and result in significant cost savings and power reductions.” Here is a link to an interesting presentation, made recently at embedded.com by Lucio di Jasio (There is nothing left to be invented in embedded control, Part 3 | Embedded).
Hardware description
Well, this board is nice and red, is a decent build and it comes in antistatic package. The PIC microcontroller used is a 20 pin DIP (PIC16F1619) in a socket, which makes it easy to swap out with another type. There are female headers that allow you access to each pin of the PIC microcontroller. It supports not only 20 pins MCUs, but also 8 and 14 pins MCUs. A list of supported devices can be found at: 8-bit PIC® Microcontrollers - 8-bit Development Boards | Curiosity Development Board | Microchip Technology Inc.
At first glance, there are a lot of missing connectors on the board (even I'm curious to make an inventory of them and look for connectors to populate the board, to the extent that are useful for further development). The mini USB cable required is very common and I had a few in my house. Interestingly, USB plug is not over the face up (not on the top layer, but on the bottom layer).
It's visible the lack of a SMD barrel jack (usual, 2.5mm I think, the position marked 9 - 16V). I have such a jack but THD version, so eventually I'll look for the SMD.
On J12 there is placed a jumper that provide 5V / 3.3V via USB. It remain the most viable possibility the reach of power via USB, the other supply options I will deal later. It is very useful to remember the missing of LM340 (U5 footprint). Solder it if you power the board externally. Two LEDs are lit, they are D1 and D2, both green, when you power the board. There are four user LEDs on the board (numbered D4 to D7) in the left margin is D7 (it is seen at the beginning that is not entirely off). 0 ohms resistors are found on the back (bottom) of connector J13 (there are also 0 ohms resistors on other connectors - maybe for saving jumpers?) J8 is RN4020 connector and U6 its footprint; J35 is the MikroBUS connector.
At the upper edge of the board there is a 6-pin connector (J7) - it could be used for extension boards to lead the necessary supply voltages. The MCU comes preprogrammed with a demo program:
Software description
You need to have MPLAB X installed on your computer, as well as a C compiler (XC8) - I will not explain how to install MPLAB X and XC8. Now that the board is working, you will probably want to play with it (which is easy with the Code Configurator, and a very good moment to learn this very nice tool). So far there are lots of videos on youtube on how to use the Code Configurator, but the steps to get started are simple. If MCC is not installed, click 'Tools' and 'Plugins' at the top.
Select the 'Available Plugins' tab, and then tick the checkbox next to MPLAB Code Configurator, and click Install.
Click Next, accept the Terms (there is little chance that people read Terms, although some things may be important) and click Install.
After installing, you will need to close off and reopen MPLAB X IDE.
After Restart, to open the Code Configurator, click 'Tools' and (after) 'Embedded'.
Click 'MPLAB Code Configurator' and you'll see a big blue window. Press ESC, get rid of the Overlay that says what is where.
Click 'System' on the top left.
Now there is something important - for the Curiosity board built-in programmer you must set LVP mode (PKOB works with Low Voltage Programming, remember?) Then in the window on the right, expand the 'CONFIG2' section and check the LVP Enable section. Note that we are given the option of the internal MCU clock, working at frequency 500 kHz. For now, we leave it unchanged.
Well, we ensured now that MCC is installed and we'll be able to use it and we set the Word Configuration LVP to ON (for Low Voltage Programming).
Because it's a work in development, we stop here for now, to continue soon. We will make a first simple program with LEDs, which we will explain. Stay tuned!