MPLAB® Harmony Graphics Suite > Examples and Demonstrations > Aria Applications > aria_quickstart_ext_res > aria_qs_msd_host_sdcard_fs_e70_xu_tm4301b.X
MPLAB® Harmony Graphics Suite
aria_qs_msd_host_sdcard_fs_e70_xu_tm4301b.X
Defining the Architecture

The aria_quickstart_external_resources (external flash reader) application uses the reads previously programmed binary data from the external non-volatile SQI memory. The Graphics Library is used to render graphics to the display. Using the DMA, the Low-Cost Controllerless (LCC) Display Driver continuously transfers frame data from the frame buffer out to the LCD display. 

The application also features user touch input through the integrated touch screen on the display panel. Touch input from the touch controller goes through the I2C port, and the Input System Service acquires the touch input information from the Touch and I2C drivers. The Input System Service sends touch events to the Graphics Library, which processes these events and updates the frame data accordingly. 

 

This configuration runs on the SAM E70 Xplained Ultra with a WQVGA display. The frame buffer is stored in the internal SRAM, and the Low-Cost Controllerless (LCC) display driver is used to manage the DMA that transfers the frame buffer content to the display via the EBI peripheral. 

 

User touch input on the display panel is received thru the PCAP capacitive touch controller, which sends a notification to the Touch Input Driver. The Touch Input Driver reads the touch information over I2C and sends the touch event to the Graphics Library thru the Input System Service. 

 

The application reads the binary data from either files on a USB or SD Card MSB device. These files are generated by the Harmony Graphics Composer and are copied to the MSB device from a PC. 

 

Demonstration Features

• Aria Graphics Library 

• Input system service and touch driver 

• Time system service, timer-counter peripheral library and driver 

• Low-Cost Controllerless driver 

• 16-bit RGB565 color depth 

• EBI peripheral library and driver 

• I2C peripheral library and driver 

• USB MSD driver (Host Mode) 

• SD Card driver (supported via SPI) 

• File System 

• Images and Fonts for user interface stored in external flash (NVM) 

 

 

 

Creating the Project

The Project Graph diagram below shows the Harmony components that are included in this application. Lines between components are drawn to satisfy components that depend on a capability that another component provides. 

 

Adding the “SAM E70 Xplained Ultra BSP” and “Aria Graphics w/ PDA TM4301b Display” Graphics Template component into the project graph.

 

 

This will automatically add the components needed for a graphics project and resolve their dependencies. It will also configure the pins needed to drive the external peripherals like the display and the touch controller.

 

Additional components to support USB, HSMCI and SDMMC Driver needs to be added and connected manually. 

Some of these components are fine with default settings, while other require some changes. The following is a list of all the components that required custom settings.

 

 

Disable VBUS function for USB High Speed Driver

To support the SD card reader with the HSMCI peripheral, map the pins as shown.

 

To drive the USB peripheral, make sure UPLL is enabled with the 40x multiplier, with USB FS Clock output 48 MHz.

 

 

Building the Application 

 

The parent directory for this application is gfx/apps/aria_quickstart_ext_res. To build this application, open the gfx/apps/aria_quickstart_ext_res/firmware/aria_qs_ msd_host_sdcard_fs_ e70_xu_tm43.X project file in MPLABX IDE that corresponds to the hardware configuration.

 

 

The following table lists configuration properties:

Project Name 
BSP Used 
Graphics Template Used 
Description 
aria_qs_ msd_host_sdcard_fs_ e70_xu_tm4301b.X 
SAM E70 Xplained Ultra 
Aria Graphics w/ PDA TM4301b Display 
SAM E70 Xplained Ultra with 4.3” WQVGA PCAP Touch display 

 

 

Important! 
This application may contain custom code that is marked by the comments // START OF CUSTOM CODE ... and // END OF CUSTOM CODE. When using the MPLAB Harmony Configurator to regenerate the application code, use the "ALL" merging strategy and do not remove or replace the custom code. 

 

 

Configuring the Hardware

 

The final setup should be:

Configuring the 4.3” WQVGA Display requires disconnecting the ribbon cable that connects the display to the interposer board.

First, release the ribbon cable from the interposer board. Next, release the black clamp on the E70’s J2 connector and turn the display over. Finally, insert the ribbon cable into J2 and close the clamp.

The board and display are powered by a Micro B – USB A cable from PC to the “Debug USB” port on the E70 board. The ICD4 Debugger and ICD4/PICKit4 Adapter Board are connected as shown above.

 

Running the Demonstration

 

When power-on is successful, without a USB or SD MSD device attached, the demonstration will display a screen with the following message:

 

 

The entire screen is touch sensitive. Touch any part of the screen will toggle the languages of the strings shown on screen.

On the PC, from the folder of the corresponding configuration of the application, copy the files Images.bin, Fonts1.bin, and Fonts2.bin to an USB or SD MSD device. 

Note that the USB or the SD card must be in FAT32 file format. Connect the USB or the SD MSD device as shown below:

 

 

 

 

Note that the USB memory stick will require a USB-A to micro adaptor and the SD card slot is on the underside of the SAM E70 Xplained Ultra. 

 

If a valid USB MSD device is connected, the display will show a USB button. LED1 (green) will light up. 

If a valid SD Card device is connected, the display will show a SD Card button. LED2 (orange) will light up. 

 

If the application detects the presence of all three files (Images.bin, Fonts1.bin and Fonts2.bin) from either the USB MSD device or the SD Card, depending on the current language set, a button with text “Press To Load External Assets” or “按加载外部资产” will appear. 

 

Press the button and the application will load a new screen that utilizes the image and font assets from the USB or the SD MSD device. Depending on the current language set, the display will have either one of these screens:

 

 

In the new screen, pressing the button will cause the application to load a new image. The image cycles in order from Uncompressed RAW with Direct Blit, Uncompressed RAW, Run-Length Encoded (RLE) RAW, to JPEG. 

 

The MPLAB Harmony Graphics Suite logo is also a button. Pressing the logo will toggle the application between English and Simplified Chinese. 

 

Note that all images and glyphs are retrieved from one of USB or the SD MSB device. Once in the main screen, the application will expect to consistently retrieve assets from the same device. Should the targeted MSB device become disconnected, the application will not crash. Instead, the graphics library will paint the screen without images and font. This highlights the robustness of the graphis library to handle asset retrieval errors. 

 

The application is purposely setup in single-buffer configuration to allow visual inspection of the data retrieval speed of the various images and glyphs.

MPLAB® Harmony Graphics Suite