The LM4F120H5QR Stellaris LaunchPad is based on a 32-bit ARM Cortex M4 core which can be operated at a maximum system clock frequency of 80MHz.The Microcontroller has a flexible clocking system which can be provided with internal precision oscillator, External main oscillator with PLL support etc.Another amazing feature of the microcontroller is that it supports Floating Point Unit(FPU) based arithmetic which makes it a very useful tool for signal processing. Another feature is that unlike many other microcontrollers available in the market, LM4F120H5QR supports bit by bit manipulation of GPIO pins.
Also the development board is having a in circuit debugger which eases out our prototyping and testing. Debugging our code using the In Circuit Debugging Interface(ICDI) brings better understanding of the memory organisation and working of our code.
The LM4F120H5QR microcontroller has an in built 256KB Flash memory with improved performance even for frequencies greater than 40MHz.
The Internal ROM is loaded with the StellarisWare software which makes helps in reducing the size of the compiled code significantly. Moreover, using the ROM driver libraries makes our code more efficient.
The controller also have a 2KB EEPROM which is said to have a 10 year data retention capability.
It is a bit slower than the flash with a 4 clock cycle memory read time.
The uC have 44 General Purpose Input Output Pins(GPIO Pins). TI has made the uC structure highly flexible by adding interrupt facility to each and every GPIO pin. These pins also have a highperformane mode, in which the GPIO pins can be toggles as fast as the CPU clock speed itself.
All the pins of the GPIO ports have the powerful and handy feature of bit wise manipulation. So it ill enable us to configure any pin the way we like it to be.
LM4F120H5QR has a powerful and pretty fast analog to digital converter which can sample at very high rates of even 1 MSPS. The Two 12 bit ADCs can be configured for single ended or differential input configurations. There are 4 programmable sample conversion sequencers per ADC. Each of the Programmable sequencer mode
General Purpose Timer Module
There are six 16/32-bit and six 32/64 bit general purpose timers, and twelve 16/32-bit and twelve 32/64-bit timer output pins. The supported timer modes are the the normal one-shot, periodic, pwm generation time capture etc. The timers can be induvidually configured as UP/DOWN counter as the programmer wish. It is als possible to synchronize between the timer counts and is also possible to concatenate the various timers using daisy chains to create a longer timer. The timers can be used to trigger ADC sampling as explaiined earlier or even for triggering DMA transfer.
Interrupts are used to interrupt the normal flow of control inside the program and to force a special program code to be executed in between.
This special code is written in ISR or the Interrupt Service Routine. When i first used interrupts on an ATmega 16 I found it a little difficult to configure the registers. But In our tutorials, we avoid all the registers involved and we are using an alternative and much more simpler way to generate interrupts.
The uC have 65 interrupts with 8 priiority levels. The priority levels can be reprogrammed by the programmer. RESET is having the maximum priority and it one of the three non-programmable priority level.
Other Peripherals and Features
The uC is compatible with USB 2.0 in full speed (12 MBps) and low speed (1.5 MBps) operation modes. It also has a Synchronous Serial Interface(SSI) with interrupt and uDMA(Direct Memory Access) support.
There are 8 UART ports which are equally easy to configure using the driver library functions provided with the StellarisWare. It supports 5,6,7,8 and 9 data bit protocols and also support maximum baud rate of processor clock/6.