"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Introduction to Stellaris Family Microcontrollers
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Notes de l'éditeur
Welcome to the training module on Luminary Micro Stellaris Family Microcontrollers. This training module introduces the Stellaris family microcontrollers, its basic architecture, and internal functional modules.
Luminary Micro delivers the world's first silicon implementation of the Cortex-M3 processor, providing 32-bit performance at 8-/16-bit cost. The embedded microcontroller system designers can utilize 32-bit performance for the same price as their current 8- and 16-bit microcontroller designs! Luminary Micro's Stellaris product line allows for standardization that eliminates future architectural upgrades or software tools changes. Designed for serious microcontroller applications, the Stellaris family provides the entry into the industry's strongest ecosystem, with code compatibility ranging from $1 to 1 GHz.
Stellaris family of microcontrollers incorporates the Cortex-M3 MCU core running up to 50 MHz, embedded flash and SRAM, a 32-ch DMA, a low drop-out voltage regulator, battery backed low-power hibernation capability, integrated brown-out reset and power-on reset functions, analog comparators, 10-bit ADC, GPIOs, and watchdog and general purpose timers. The family also integrates several serial interfaces, including 10/100 Ethernet MAC+PHY, CAN, USB On-The-Go, USB Host/Device, SSI/SPI, UARTs, and I 2 C. Finally, the Stellaris family features peripherals designed specifically for intense industrial motor control, including motion control PWMs and quadrature encoder inputs. However, not all Stellaris families have all these features.
The Cortex-M3 processor is the first ARM processor based on the ARMv7-M architecture and has been specifically designed to achieve high system performance in power- and cost-sensitive embedded applications, such as microcontrollers, automotive body systems, industrial control systems and wireless networking. It integrates the central processor core, called the CM3Core, with advanced system peripherals to enable integrated capabilities like interrupt control, memory protection and system debug and trace. The central Cortex-M3 core is based on the Harvard architecture characterized by separate buses for instructions and data. By being able to read both an instruction and data from memory at the same time, the Cortex-M3 processor can perform many operations in parallel, speeding application execution. .
The Cortex-M3 processor provides a high level of visibility into the system through a traditional JTAG port or the 2-pin Serial Wire Debug (SWD) port. JTAG has dedicated signals for data-in (TDI), data-out (TDO), mode control (TMS), and clocking (TCK), so transfer rates are significantly higher than PIC ICSP. SWD is closer to ICSP in design and is presently not widely supported by ARM debuggers. JTAG can be used for debugging, programming, and for boundary-scan test.
Each Stellaris® UART performs the functions of parallel-to-serial and serial-to-parallel conversions. It is similar in functionality to a 16C550 UART. The UART peripheral also includes a serial IR (SIR) encoder/decoder block that can be connected to an infrared transceiver to implement an IrDA SIR physical layer. The IrDA SIR block provides functionality that converts between an asynchronous UART data stream, and half-duplex serial SIR interface. The SIR function is programmed using the UARTCTL register. Data received or transmitted is stored in two separate FIFOs. Out of reset, both FIFOs are disabled and act as 1-byte-deep holding registers. Both FIFOs can be individually configured to trigger interrupts at different levels. Available configurations include 1/8, ¼, ½, ¾, and 7/8.
Synchronous Serial Interface (SSI) is a master or slave interface for synchronous serial communication with peripheral devices that have either Freescale SPI, MICROWIRE, or Texas Instruments synchronous serial interfaces. The SSI performs serial-to-parallel conversion on data received from a peripheral device. The CPU accesses data, control, and status information. The transmit and receive paths are buffered with internal FIFO memories allowing up to eight 16-bit values to be stored independently in both transmit and receive modes.
Some devices in the Stellaris family include Ethernet controller, which consists of a fully integrated media access controller (MAC) and network physical (PHY) interface. The Ethernet Controller conforms to IEEE 802.3 specifications and fully supports 10BASE-T and 100BASE-TX standards. The Ethernet Controller is functionally divided into two layers: the Media Access Controller (MAC) layer and the Network Physical (PHY) layer. These layers correspond to the OSI model layers 2 and 1. The CPU accesses the Ethernet Controller via the MAC layer. The MAC layer provides transmit and receive processing for Ethernet frames. The MAC layer also provides the interface to the PHY layer via an internal Media Independent Interface (MII). The PHY layer communicates with the Ethernet bus.
Controller Area Network (CAN) is a multicast, shared serial bus standard for connecting electronic control units (ECUs). CAN was specifically designed to be robust in electromagnetically-noisy environments and can utilize a differential balanced line like RS-485 or a more robust twisted-pair wire. Originally created for automotive purposes, it is also used in many embedded control applications (such as industrial and medical). Bit rates up to 1Mbps are possible at network lengths less than 40 meters. Decreased bit rates allow longer network distances (for example, 125 Kbps at 500 meters). The Stellaris® CAN controller conforms to the CAN protocol version 2.0 (parts A and B).
The Inter-Integrated Circuit (I 2 C) bus provides bi-directional data transfer through a two-wire design. The Stellaris I 2 C module provides the ability to communicate to other IC devices over an I 2 C bus. The I 2 C bus supports devices that can both transmit and receive (write and read) data. Devices on the I 2 C bus can be designated as either a master or a slave. The I 2 C module supports both sending and receiving data as either a master or a slave, and also supports the simultaneous operation as both a master and a slave. The Stellaris I 2 C module can operate at two speeds: Standard (100 Kbps) and Fast (400 Kbps).
The Stellaris devices contains up to 64KB single-cycle SRAM. To reduce the number of time-consuming read-modify-write (RMW) operations, ARM has introduced bit-banding technology in the new Cortex-M3 processor. With a bit-band-enabled processor, certain regions in the memory map (SRAM and peripheral space) can use address aliases to access individual bits in a single, atomic operation. The Flash controller supports up to 256KB Flash. The flash is organized as a set of 1-KB blocks that can be individually erased. These blocks are paired into a set of 2-KB blocks that can be individually protected. The blocks can be marked as read-only or execute-only, providing different levels of code protection.
A quadrature encoder, also known as a 2-channel incremental encoder, converts linear displacement into a pulse signal. By monitoring both the number of pulses and the relative phase of the two signals, it can track the position, direction of rotation, and speed. In addition, a third channel, or index signal, can be used to reset the position counter. The Stellaris® quadrature encoder interface (QEI) module interprets the code produced by a quadrature encoder wheel to integrate position over time and determine direction of rotation. In addition, it can capture a running estimate of the velocity of the encoder wheel.
Pulse width modulation (PWM) is a powerful technique for digitally encoding analog signal levels. Typical applications include switching power supplies and motor control. The Stellaris® PWM module consists of three PWM generator blocks and a control block. The control block determines the polarity of the PWM signals, and which signals are passed through to the pins. Each PWM generator block produces two PWM signals that can either be independent signals or a single pair of complementary signals with dead-band delays inserted. The output of the PWM generation blocks are managed by the output control block before being passed to the device pins. The Stellaris® PWM module provides a great deal of flexibility. It can generate simple PWM signals, paired PWM signals with dead-band delays, and the full six channels of gate controls.
System control determines the overall operation of the device. It provides information about the device, controls the clocking of the device and individual peripherals, and handles reset detection and reporting. System control determines the clocking and control of clocks. There are two fundamental clock sources for use in the device: the main oscillator, driven from either an external crystal or a single-ended source and the internal oscillator. The peripheral blocks are driven by the System Clock signal and can be programmatically enabled/disabled. The main oscillator is used for external resets and power-on resets; the internal oscillator is used during the internal process by internal reset and clock verification circuitry.
Programmable timers can be used to count or time external events that drive the Timer input pins. The Stellaris® General-Purpose Timer Module (GPTM) contains four GPTM blocks (Timer0, Timer1, Timer 2, and Timer 3). Each GPTM block provides two 16-bit timers/counters (referred to as TimerA and TimerB) that can be configured to operate independently as timers or event counters, or configured to operate as one 32-bit timer or one 32-bit Real-Time Clock (RTC). In addition, timers can be used to trigger analog-to-digital conversions (ADC). The ADC trigger signals from all of the general-purpose timers are ORed together before reaching the ADC module, so only one timer should be used to trigger ADC events.
A watchdog timer can generate nonmaskable interrupts (NMIs) or a reset when a time-out value is reached. The watchdog timer is used to regain control when a system has failed due to a software error or due to the failure of an external device to respond in the expected way. The Watchdog Timer module generates the first time-out signal when the 32-bit counter reaches the zero state after being enabled; enabling the counter also enables the watchdog timer interrupt.
The GPIO module is composed of eight physical GPIO blocks, each corresponding to an individual GPIO port (Port A, Port B, Port C, Port D, Port E, Port F, Port G, Port H). The GPIO module supports 0-60 programmable input/output pins, depending on the peripherals being used.
The Hibernation Module manages removal and restoration of power to provide a means for reducing power consumption. When the processor and peripherals are idle, power can be completely removed with only the Hibernation module remaining powered. Power can be restored based on an external signal, or at a certain time using the built-in Real-Time Clock (RTC). The Hibernation module can be independently supplied from a battery or an auxiliary power supply. A voting circuit indicates the larger and an internal power switch selects the appropriate voltage source.
The Stellaris® microcontroller provides an integrated LDO regulator that may be used to provide power to the majority of the controller's internal logic. For power reduction, the LDO regulator provides software a mechanism to adjust the regulated value, in small increments (VSTEP), over the range of 2.25 V to 2.75 V.
An analog comparator is a peripheral that compares two analog voltages, and provides a logical output that signals the comparison result. The comparator can provide its output to a device pin, acting as a replacement for an analog comparator on the board, or it can be used to signal the application via interrupts or triggers to the ADC to cause it to start capturing a sample sequence. The interrupt generation and ADC triggering logic is separate. This means, for example, that an interrupt can be generated on a rising edge and the ADC triggered on a falling edge.
An analog-to-digital converter (ADC) is a peripheral that converts a continuous analog voltage to a discrete digital number. The Stellaris® ADC module features 10-bit conversion resolution and supports up to eight input channels, plus an internal temperature sensor. The ADC module contains four programmable sequencer which allows for the sampling of multiple analog input sources without controller intervention. Each sample sequence provides flexible programming with fully configurable input source, trigger events, interrupt generation, and sequence priority.
The Stellaris® family offers efficient performance and extensive integration. Stellaris family is favorably positioned for cost-conscious applications requiring significant control processing and connectivity capabilities, including motion control, monitoring (remote, fire/security, etc.), HVAC and building controls, power and energy monitoring and conversion, network appliances and switches, factory automation, electronic point-of-sale machines, test and measurement equipment, medical instrumentation, and gaming equipment.
Thank you for taking the time to view this presentation on the Stellaris ® Family Microcontrollers . If you would like to learn more or go on to purchase some of these devices, you may either click on the part list link, or simply call our sales hotline. For more technical information you may either visit the Luminary Micro site, or if you would prefer to speak to someone live, please call our hotline number, or even use our ‘live chat’ online facility.