NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
EasyMxPRO
Contents
MikroElektronika EasyMx PRO v7[edit]
Documentation[edit]
- Manufacturer website
- Board manual
- Board schematic
- MCU socket schematic
- Code Composer Studio IDE v5
- TivaWare™ for C Series
- Tiva™ TM4C123GH6PGE Microcontroller datasheet (identical to LM4F232H5QD)
Features[edit]
EasyMx PRO is a beautiful and solid development board with extensive variety of functions:
- On-board ICDI emulator
- Buzzer
- Analog input
- Audio codec VS1053B
- Access to user read or write of most GPIO ports through pin headers, pull up/down switches, buttons and LEDs
- Digital navigation joystick (5-button)
- CAN interface TI SN65HVD230
- SD card slot
- USB ports (host and device)
- 2x USB serial interfaces
- Color TFT LCD (320x240) with touch controller
- M25P80 External Flash
- 24AA01 External EEPROM
- DS1820 digital temperature sensor
- TI LM35 analog temperature sensor
- 2x mikroBUS connectors (http://www.mikroe.com/click/)
- TI Tiva TM4C123GH6PGE (former Stellaris LM4F232H5QD)
- 80 [MHz] 100 DMIPS ARM Cortex-M4F with FPU
- 256 [kB] Flash
- 32 [kB] SRAM
- ROM loaded with TivaWare™ for C Series software
- 2 [kB] EEPROM
- MCU peripherals:
- Analog comparators
- 2x 1 [MSPS] 12 bit ADC with up to 12 channels
- Temperature sensor
- 8x UARTs
- 4x SSI/SPI
- Host/Device/OTG Full Speed USB
- 2x CAN A/B controllers
- 6x I2C
- 2x Quadrature encoders (QEI)
- 16x PWM Outputs
- 12x Timers
- 2x Watchdogs
- 32x channel DMA
- Hibernation system
- Real Time Clock
- 9x GPIO ports
- ARM SWD JTAG
Board defaults checklist[edit]
All demos will assume that user had reset the tool hardware to its default state. In case of problems please ensure that all following conditions are met:
- MCU card
- Card is properly aligned with markings on the board (bump located on the top, no pinheads visible under card)
- MikroProg
- The USB cable is connected to PC and board
- All jumpers are connected to the left (TCK, TMS, TDI, TDO)
- Power Supply
- Jumper J1 selects USB
- Switch set to ON (Green ON LED should be shining now)
- Ethernet (The socket is present but there is no Ethernet functionality)
- Both jumpers are disconnected (LEDA, LEDB)
- Analog input
- Jumper is disconnected
- Switches SW10 - SW15
- All set to OFF (left position)
- Button press level
- Both jumpers disconnected
- All pull up/down switches set to not connected (middle position)
- PORTA÷PORTJ
- All pull up/down switches set to not connected (middle position)
- Other
- No MMC card in socket
- No click cards connected
- No wires, cables or additional jumpers connected to board
Hardware considerations[edit]
Please note that following pins are special:
- PORTB[6,7] - not present in MCU
- Board PB7 is connected to MCU PK7
- Board PB6 is connected to MCU PK6
- PORTC[0:3] - not connected by default but user can connect those signals to MCU using jumpers in mikroProg section (by default MCU is connected to JTAG through those signals)
- PORTD[0:3]
- Board PD0 is connected to MCU PN0
- Board PD1 is connected to MCU PN1
- Board PD2 is connected to MCU PK4
- Board PD3 is connected to MCU PK5
- Ethernet socket and magnetics are not connected as MCU does not have Ethernet MAC or PHY
How to create a new CCS project[edit]
Written for Code Composer Studio 5.3
New project can be created from scratch or based on existing one. To create a new empty project please follow instruction below. If you want to base your project on some other one select Project → Import existing CCS Project
- Select File → New → CCS Project
- Type Project name
- Select device Variant: Stellaris LM4F232H5QD
- Select device Connection: Stellaris In-Circuit Debug Interface
- From Project templates and examples select Empty Project (with main.c)
- Click Finish
Next step is to add paths for header files and include TivaWare libraries. Please install required software first. In this case Tiva Ware is installed under C:\TI\TivaWare\. To allow easy migration environment variables are used. Changing single variable is much less troublesome than changing path of every external file in project.
- Select Project → Properties
- Go to tab: Build → Environment and click button Add...
- Type Name: TIVA_WARE and Value: C:\TI\TiwaWare
When environment variable pointing to TivaWare is defined we can add DriverLib. Compiled code library for handling microcontroller peripherals.
- Go to tab: Build → ARM Linker → File Search Path find section Include library file or command file as input
- Click add button (with green +) and type ${TIVA_WARE}\driverlib\ccs\Debug\driverlib.lib
Header files are designed to work with different types of devices and compilers. User need to define what compiler and part is using.
- Go to tab: Build → ARM Compiler → Advanced options → Predefined Symbols find section Pre-define NAME
- Click add button (with green +) and type ccs="ccs"
- Click add button again and type PART_TM4C123GH6PGE
- Click add button for the third time and type TARGET_IS_BLIZZARD_RA1
Finally we are adding header files location to the project.
- Go to tab: Build → ARM Compiler → Include options find section Add dir to #include search path
- Click add button (with green +) and type ${TIVA_WARE}
Now project properties dialog can be closed by clicking OK
User can validate if all paths are set correctly by building following project:
#include <stdint.h> #include <stdbool.h> #include "inc/hw_gpio.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/gpio.h" #include "driverlib/rom.h" #define GPIO_PINS_ALL GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7 int main(void) { uint8_t a = 0; // // Set the clocking to run directly from the crystal. // ROM_SysCtlClockSet (SYSCTL_SYSDIV_20 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); // // Enable GPIOA // SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOA); // // Set all GPIOA pins as outputs // GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PINS_ALL); // // Show some patterns on LEDs // for (;;) { // // Write data to port // GPIOPinWrite (GPIO_PORTA_BASE, 0xFF, a++); // // Delay for a while so changes can be visible // SysCtlDelay(SysCtlClockGet() / 2); } }
Code samples[edit]
LEDs | |
---|---|
![]() |
This simple demo shows different patterns on the on-board led array.
In order to use the demo set board to default sate and change SW15 to all-on. |
UART | |
![]() |
This demo shows how to communicate between board and PC through UART interface.
In order to use the demo set board to default sate, change SW10[1:2] to ON and connect board with PC through USB UART A. One can use different software on PC (examples: Putty, Termite, RealTerm, minicom). Sended string should end with newline character. |
LCD | |
This demo uses on-board LCD display. It is based on TI grlib. In order to use the demo set board to default sate, change SW11 and SW12[2:7] to ON. | |
FreeRTOS | |
![]() |
Demo based on freertos demo from EK-TM4C123GXL Firmware Package. Visit http://www.freertos.org/ for more information on FreeRTOS. In order to use the demo set board to default sate, change SW15[8] to [ON], SW10[1:2] to [ON] and connect PC through USB cable to USB UART A. |
USB Host: BMP Slideshow | |
![]() |
Demo showing Tiva USB Host capabilities. On-board LCD shows bitmap files from connected USB memory.
In order to use the demo:
|
USB Device: HID Mouse | |
Sample application utilising on-board touchscreen. Device connected to the PC acts as HID mouse. |