Last time was a very basic introduction to the MPLAB Xpress board. All we really did was plug it in and make sure it was working, and it was. As boring as that seemed it was great to just be ready to go. No software or drivers to install, it just worked…ready to use. I have to give credit for that out of box experience.
Now I want to actually take a look at the MPLAB Xpress board and get an idea of what it can do and what features are built in.
A Visual Look
I’ll starting with a visual look at the board itself.
Don’t mind the curved image, it’s from the curved edges of the magnifier lamp distorting the image.
Starting from the bottom, we see a micro-USB port with a regulator off to the left and fat power traces leading away. From the same USB connector are 2 thin lines heading straight into the QFN IC above. These traces are the USB data lines. The QFN chip above is a PIC18LF25K50, which is (note the big dividing line on the board) a secondary microcontroller dedicated to handling the programming of the main micro on this Xpress board.
The PIC18LF25K50 is a single USB 2.0 capable micro with 32K of flash and all the other usual features PIC micros generally are equipped with. The tactile switch just above to the right is clearly labelled as a reset switch for the 18LF25K50. A dual LED package on the left of the micro used for indicating power and or programming status/state. Finally, for the ‘programming’ side of the Xpress board there is a small transistor likely being used as some sort of switch controlling something on the ‘application’ side of the Xpress board.
Moving further up to the ‘application’ side of the MPLAB Xpress board, another tactile switch is seen but with no label to give its function away. This switch likely does nothing until you write a program that utilizes it. The same I would guess goes for the 1-turn potentiometer directly to the left of the tactile switch. Above these two parts is a row of 4 LEDs that are also there for your enjoyment. These are the same LEDs flashing on first boot-up which is obviously a pre-programmed routine Microchip put on the board from the factory.
At this point all that is left is the main microcontroller, a PIC16F18855. There are a lot of pins broken out to two sets of header rows. The inner populated header row has a specific use (also clearly labelled as such) for devices made to fit and work on a ‘Mikro Bus’. I know nothing about the Mikro Bus but i’d hazard a guess that it would be akin to shields for Arduino boards or HATs for the Raspberry Pi.
The 16F18855 is the outside facing microcontroller, the one the user programs to do their bidding. Because of this I am not surprised they went with the F version of the micro, unlike the first micro which is the LF version. The difference is the LF chips are low-power devices, or in other words not 5v compatible which is generally the voltage level of choice for the hobby market. This micro will be interfacing with circuits the user wishes to control, having a 5v tolerant micro is a great choice.
Not much going on on the back of the board, but I will mention the two labelled J1/J4 connections. The footprints are not populated but they are ICSP (in-circuit serial programming) headers for each micro on the MPLAB Xpress board.
The Inner Workings
The above schematic outlines the ‘programmer’ half of the board. Note the right side of the schematic which has a reset button and MOSFET circuit configured as a switch. These two circuits work in conjunction. The switch is monitored by the micro and when the input pin goes low, as the button is pressed, the micro will activate the MOSFET switch. This will cause the PIC18LF25K50 micro to be reset (the MOSFET is wired to its MCLR pin).
I pretty much covered everything else previously with the exception of the upper left part of the schematic where a footprint was laid out on the board, but not populated, for a battery connector which would allow you to run this board off battery power and not tethered to a computer or USB cable.
The ‘application’ half of the schematic is straightforward as well. The upper left shows the circuit for the button, potentiometer, and the LEDs. The bottom shows the micro pins and how they are broken out the the header rows and mikroBUS. At the top right an EMC1001 part is seen, which is a SMBUS temperature sensor. This device has 2 programmable temperature alarms which will generate interrupts, which have been routed into the PIC16F18855 micro. An interesting addition to the MPLAB Xpress board but not out of place.
All these IC’s are Microchip branded chips… not to my surprise. This includes the two micros, temperature sensor and regulator.
In looking at the main micro (PIC16F18855) it looks to have some interesting features. On the analog side it has the usual ADC (10-bit). The ADC contains a 5-bit DAC and a fixed voltage reference with outputs of 1.024, 2.048, and 4.096V. There is also a ZCD (Zero-crossing detection) module for measuring the point where an AC signal crosses the 0v point.
The digital side also has an interesting feature, a CLC module which stands for configurable logic controller. Compare it to a tiny FPGA in a micro. It has a number of limited logic functions you can program which operate ‘outside the speed limitations of software execution’. There is a DSM (Data Signal Modulator) which modulates a data signal and carrier signal outputting the modulated data. Not to mention a Numerically Controlled Oscillator, Complimentary Waveform Generator, and Signal Measurement Timer module that are unfamiliar to me.
So at this point, I am about ready to dive into MPLAB Xpress cloud IDE. That will be the topic of my next post. We will also feature a first program to test out the MPLAB Xpress board.