PIC32MZ DA: Microchip's new 32 bit MCU Brings New Dimension to Embedded Graphics
Microchip has announced a new 32 bit microcontroller family called PIC32MZ DA. It comes with an extreme specification to make it the best choice for graphical applications. Two key features are the powerful GPU and the on-chip 32 MB DRAM which is unique in the market today. **
PIC32MZ DA microcontrollers have a very rich periphery set with a ton of communication modules, advanced analog features, complex clock and power management. The following list shows the general and graphic related ones:
- 200 MHz clock speed
- Up to 2048 kB flash memory
- Up to 640 kB RAM memory
- Up to 32 MB on-chip DDR2 RAM
- 3-layer Graphics Controller with up to 24-bit color support
- High-performance 2D Graphics Processing Unit (GPU)
- Accelerated 2-D Graphics Rendering
- Accelerated Blit and Raster Operations
- Several Alpha Blending modes
- Transparency support
- 2D dithering
- Image Scaling
- Programmable operations including ROP2, ROP3, ROP4, Alpha Blending and Transparency
Why is it good?
So far Microchip hasn’t got powerful microcontrollers with Graphics Processing Unit (GPU) . Only the 16 bit PIC24FJ DA family had graphic accelerator, but one could face difficulties when the 64 k addressing limit was reached. And 64 k is not so much if you are using images. (A 320 × 240 16 bit background is already 150 kB). Furthermore the clock speed of PIC24 MCUs only 16 MHz which is just not enough to realize state of the art GUIs with animations, scrolling etc.
The 16 bit architecture are able to manage external RAM to make them capable to perform double buffering. Although using external RAM have several disadvantages:
- Extra component cost
- Requires multiple layers on PCB
- Expert knowledge during PCB design
- Greater PCB size
- EMI issues due to high clock speed
So the current possibilities were limited compared to the competitors. All great manufacturer (like STM or NXP) already launched their powerful ARM based MCUs with graphical capabilities.
But now Microchip is one step ahead of them. The PIC32MZ DA microcontrollers are as fast as the ARM based competitors but the 32 MB on-chip RAM makes possible micorprocessor-like graphics with a simple one-chip system. All techniques used with external RAM also possible with PIC32MZ DA:
- Multiple layers
- Multiple display buffers per layer (for masking, blending etc)
- Image and Frame pre-load
How to use it in the practice, in a real embedded project?
Just a fast calculation: a display with 800 × 600 resolution 24 bit color depth needs 450 kB memory. Therefore for double buffering on such a high resolution display consumes only 1 MB from 32. The remaining memory can be used to pre-load images from mass storage devices like SD card; render advanced graphical effects or buffer complex frames.
Look a real-life example. In today’s GUI designs blurring is very popular but in real time it needs a lot of computation power as well. But if you have enough space to store (or calculate when the MCU is idle) the blurred version of the current screen you can simply and quickly display it as an image.
Connection with Littlev Graphics Library
As you maybe already know the Littlev Graphics Library is free, open source and hardware independent therefore it is a good choice not only for test this awesome MCU but to use in your graphical application.
The graphics library provides everything you need to enhance your embedded device with a modern, beautiful graphical user interface. You can use simple objects like Buttons, Labels, Charts, Sliders etc. with great graphical features such as anti aliasing, transparency, scrolling and shadows.
If you are still not familiar with the LittlevGL, you can check it here.
You will find the source code on GitHub
I hope this overview was useful for you and you will use PIC32MZ DA with Littlev Graphics Library in your further project. If you have any questions, please don’t hesitate to write a comment below!