The following image shows where some of the hardware components are located.
The Eagle 100 includes a Luminary Micro Stellaris LM3S6918 microcontroller. This 32-bit ARM Cortex-M3 RISC microcontroller is capable of 50-MHz operation with a Thumb2 instruction set for smaller object code. It has hardware division and single cycle multiplication for fast calculations. The nested vector interrupt controller provides interrupt handling for 33 interrupts with eight levels of priority. Please see the Luminary Micros’ LM3S6918 Microcontroller Data Sheet for more information and register definitions.
LM3S6918 key features:
• Internal Memory
▫ 256 kilo-bytes flash
▫ 2-kB flash block protection defined by the user
▫ Flash data programming
▫ User defined and managed flash-protection block
▫ 64 kilo-bytes SRAM
• Timers
▫ Four General Purpose Timer Modules (GPTM)
Each GPTM can operate independently
Each module provides two 16-bit timers or one 32-bit timer
Can be used for Pulse Width Modulation (PWM)
Can be used to trigger analog to digital conversions
▫ System Timer (SysTick)
24-bit clear on write decrementing counter
Uses include RTOS tick timer, high speed alarm timer, or a simple counter
▫ ARM FIRM compliant Watchdog Timer
32-bit decrementing counter
Programmable load register
Separate clock with an enable
• 10/100 Ethernet Controller
▫ IEEE 802.3-2002 specification
▫ Half and full duplex for 10 Mbps and 100 Mbps
▫ Automatic MDI/MDI-X cross over correction
▫ Programmable MAC address
▫ Power down and power saving modes
• UART
▫ Two fully programmable 16C550 type UARTs
▫ Separate transmit and receive FIFOs
▫ Baud rates up to 3.125 Mbps
▫ Loopback mode for testing and debugging
• Synchronous Serial Interface (SSI)
▫ Master or slave operation
▫ Separate transmit and receive FIFOs
▫ Freescale SPI, MICROWIRE, or Texas Instruments synchronous serial interfaces
▫ Internal loopback mode for testing and debugging
• I2C Module
▫ Master or slave operation
▫ 100 kbps or 400 kbps transmission speed
▫ Mulitmaster support
▫ 7-bit addressing mode
• Analog-to-Digital Converter
▫ Eight 10-bit channels
▫ Single and differential input configurations
▫ 500k samples per second
▫ Four programmable sampling sequences with conversion result FIFOs
▫ Sequences triggered by software, timers, analog comparators, or GPIO
▫ On-chip temperature sensor
• General Purpose Input or Outputs (GPIO)
▫ 5V tolerant inputs
▫ Every GPIO is capable of edge triggered or level sensitive interrupts
▫ Enable or disable internal weak pull-up or pull-down resistors
▫ Programmable open drain input or outputs
▫ Programmable drive current of 2mA, 4mA, or 8mA
• Reset Sources
▫ Power on reset
▫ Reset pin assertion
▫ Brown out reset
▫ Software reset
▫ Watchdog timer reset
• Additional Features
▫ IEEE 1149.1-1990 compliant Test Access Port (TAP) controller
▫ Debugging via JTAG or Serial Wire interfaces
▫ Programmable PLL for system clock
A Xilinx’s XC9572XL Complex Programmable Logic Device(CPLD) comes standard on the Eagle 100. The CPLD supports in-system programming via an IEEE 1149.1 boundary-scan JTAG. The XC9572XL is a 3.3V CPLD with 5V tolerant pins. The CPLD has 1,600 usable gates and 72 macrocells. For further information please see Xilinx’s XC9500XL High-Performance CPLD Family Data Sheet.
The Eagle 100 includes a National Semiconductor’s DAC104S085 general purpose digital-to-analog converter (DAC). The DAC has four channels with a resolution of 10-bit. The output amplifiers allow for a rail-to-rail output swing from 0 to 3.3V. Communication to the DAC is done through a three wire synchronous serial interface that operates up to 40 MHz. The DAC’s outputs have a settling time of 6µs. It allows for simultaneous output updating. For further information please see National Semiconductor’s DAC104S085 Data Sheet.
Revised: August, 2008
The Eagle series of single board computers run on an ARM Cortex-M3 microcontroller with a vast array of peripherals from 10/100 Ethernet to a reprogrammable CPLD. Through example programs and project files this family of single board computers can be developed from concept to production quickly. The Eagle family is available in custom and standard configurations.
The Eagle 100 is a single board computer designed for cost-sensitive control applications that require real-time performance, networking and extensive support of popular peripherals. It delivers 32-bit performance and features at a cost equivalent to legacy 8- and 16-bit controllers. Powered by a Luminary Micro Stellaris LM3S6918 ARM Cortex-M3 microcontroller, capable of over 60 MIPS, the Eagle 100 can fulfill demanding requirements in monitoring, instrumentation, data acquisition, process control, factory automation and many other applications. An extensive array of peripherals is built-in plus expandability is available using PC/104 I/O cards. Several peripherals can be reconfigured with the programmable logic capabilities of the integrated CPLD.
• 50 MHz 32-bit ARM® Cortex™-M3
• 256 KB Flash/64 KB SRAM
• 10/100 Ethernet
• Micro-SD Socket
• LCD Port
• 4x4 Keypad Port
• PC/104 8-bit I/O expansion
• Two RS232 Serial Ports
• I2C, SSI (SPI) Ports
• 8-ch. 10-bit ADC, 4-ch. 10-bit DAC
• Reconfigurable I/O with Xilinx CPLD
• Up to 52 - 5V tolerant GPIOs, 80 without PC/104
• 4 general purpose timers, 1 watchdog timer
• Support for GNU and IAR compilers
• Thumb2 instruction set for smaller object code
• Basic and Python also supported
• +5V@250mA power supply required
• Dimensions: 3.8 inches x 4.4 inches
The EAGLE 100-20 development kit comes with all of the necessary hardware and software to quickly develop applications. The development kit includes the following:
• 1 – EAGLE 100 SBC
• 1 – IAR J-Link Debugger
• 1 – IAR Embedded Workbench for ARM, 32K Kickstart Version
The Eagle SBC is also available unbundled, without the power supply and debugger.
Code examples are included with the Eagle 100 to get you started quickly. Applications can run standalone with no operating system or can use a compact real time operating system such as FreeRTOS. You can use popular IDEs together with the GNU and IAR compilers. The microSD card capability simplifies program and data storage. Remote access can be implemented via web or command line interfaces, providing off-site monitoring and maintenance capabilities. The JTAG interface speeds up application development and debugging.
Ports of popular Basic and LUA development tools are available for the Eagle 100 to reduce application development time and simplify integration with code libraries developed for industrial and scientific environments. Using these tools, you can achieve significant functionality in a very short time. These open source tools can be easily extended, allowing a virtually unlimited number of possibilities.
Micromint USA provides free technical support by phone, email, or fax. Technical support emails are usually answered within one business day. Software and documentation updates are available on our website at www.micromint.com. Each product comes with a one year warranty.
Revised: August, 2008
The Eagle 100 requires a regulated +5VDC at 250mA power supply applied to J1. J1 comes standard with a 2.5 mm positive center tapped female power supply jack. It can be populated with a 2 position screw terminal upon request. A diode (D1) will protect the Eagle 100 should polarity of the power supply be reversed. When power is applied LED1 will illuminate.
WARNING:
J2 Pin# |
GPIO |
Alternate Function |
Brief Description |
3 |
PB0 |
CCP0 |
Capture/Compare/Pulse Width Modulation Channel
0 |
4 |
PB1 |
CCP2 |
Capture/Compare/Pulse Width Modulation Channel
2 |
5 |
PB2 |
I2C 0SCL |
Inter-Integrated Circuit Interface bus 0 clock |
6 |
PB3 |
I2C 0SDA |
Inter-Integrated Circuit Interface bus 0 clock |
7 |
PB4 |
C0- |
Analog comparator channel 0 negative input |
8 |
PB5 |
C1- |
Analog comparator channel 1 negative input |
9 |
PB6 |
C0+ |
Analog comparator channel 0 positive input |
10 |
PB7 |
TRST |
JTAG Test Reset |
13 |
PC0 |
TCK/SWCLK |
JTAG Test Clock/Serial Wire Debug clock |
14 |
PC1 |
TMS/SWDIO |
JTAG Test Mode Select/Serial Wire Debug Input
and Output |
15 |
PC2 |
TDI |
JTAG Test Data Input |
16 |
PC3 |
TDO/SWO |
JTAG Test Data Output and SWO |
17 |
PC4 |
CCP5 |
Capture/Compare/Pulse Width Modulation Channel
5 |
18 |
PC5 |
C1+/C0o |
Analog comparator channel 1 positive
input/Analog comparator channel 0 output |
19 |
PC6 |
CCP3 |
Capture/Compare/Pulse Width Modulation Channel
3 |
20 |
PC7 |
CCP4 |
Capture/Compare/Pulse Width Modulation 4 |
23 |
PE0 |
SSI1Clk |
Synchronous Serial Interface bus 1 clock |
24 |
PE1 |
SSI1Fss |
Synchronous Serial Interface bus 1 function
slave select |
25 |
PE2 |
SSI1Rx |
Synchronous Serial Interface bus 1 receiver |
26 |
PE3 |
SSI1Tx |
Synchronous Serial Interface bus 1 transmitter |
The Eagle 100 SBC is shipped with the Serial-to-Ethernet (S2E) example application from the Luminary DriverLib. This application implements the lwIP TCP/IP stack, a web server and a telnet server directly managing the COM1 serial port. It can be used to test the board functionality and also provide Ethernet connectivity to legacy controllers that have a serial interface but no network interface. After connecting the power supply and Ethernet adapter, the board will obtain an address from a DHCP server on the network. Opening the assigned address on a web browser will produce a screen similar to that in Figure 2.1. The assigned address can also be accessed via telnet. Full source code for the Serial-to-Ethernet application is included so you can modify it to suit your application requirements.
After testing the board with the example application, you should become familiar with development tools used to take advantage of the board’s functionality. The Eagle 100 Board Support Package (BSP) includes examples to use the board functionality with several development tools. Currently the following compilers and programming languages are supported:
• IAR Embedded Workbench for ARM (ewarm) 5.20
• GNU Toolchain (gcc) for ARM 4.2.3 – CodeSourcery G++ 2008q1
• GNU Toolchain (gcc) for ARM 4.3.0 – devkitARM 23b or WinARM 20080331
• Jumentum BASIC 0.94
• Lua 5.1.3
The tools included in the CDs shipped with the board include a kickstart version of the IAR Embedded Workbench for ARM, one of the GNU Toolchains for ARM, a BASIC interpreter and a LUA interpreter. Project files are included to build C, Assembler and DriverLib applications with both the IAR and CodeBlocks IDEs.
The Eagle 100 Setup CD includes tools and example applications to get you started with the Eagle 100 SBC functionality. The main menu is shown in Figure 2.2. Please select the tools button corresponding to the programming language you will be using and install the required components.
The IAR Kickstart CD installs a 32 KB code-sized limited version of the IAR C/C++ compiler and debugger. The IAR compiler generally produces the smallest code sizes for ARM targets and has excellent debugging capabilities. To install it select the "Install IAR Embedded Workbench" option from the CD main menu shown in Figure 2.3. Follow the instructions in the installation application. We suggest that you use the default directories, and the "Full" installation option.
To load the DriverLib workspace in the IAR IDE, select Programs> Micromint Eagle> IAR> DriverLib Examples from your Windows Start menu. The IAR Embedded Workbench for ARM will start and you will see a screen similar to that on Figure 2.4. Select the Blinky project by right clicking the project name and selecting "Set as Active". To rebuild the project select the "Make" button on the toolbar. You can also right click on the project name to select "Make" or "Rebuild". This will build a binary (.BIN) image file on the "ewarm\Exe\" directory of the project. To run the file you can select use of the firmware download procedures outlined later in this chapter. If the build and download is successful, the user LED on the Eagle SBC will start blinking.
To load the DriverLib workspace in the CodeBlocks IDE, select Programs> Micromint Eagle> CodeBlocks> DriverLib Examples from your Windows Start menu. The CodeBlocks IDE will start and you will see a screen similar to that on Figure 2.5. Select the Blinky project by right clicking the project name and selecting "Activate project". To rebuild the project select the "Rebuild" button on the toolbar. You can also right click on the project name to select "Build" or "Rebuild". This will build a binary (.BIN) image file on the "gcc\" directory of the project. To run the file you can select use of the firmware download procedures outlined later in this chapter. If the build and download is successful, the user LED on the Eagle SBC will start blinking.
All example programs include a Makefile that allows you to build binary images from the command line using the GNU toolchain. The GNU "make" utility is installed as part of the GNU toolchain on the Eagle Setup CD. To build an image using the command line, just change to the project directory and execute "make".
The simplest way to download files to the Eagle SBC is by using a JTAG debugger probe that is supported by IDE in use. When you start a debugging session, the binary image file will be loaded automatically to the board. Using a JTAG debugger also allows you to place breakpoints and watch variables to find problem areas in your application.
To use the J-Link debugger with IAR EWARM, select Projects> Options> Debugger with the project name selected in the workspace. On the "Setup" tab select "J-Link/J-Trace" as the driver and "main" as the location to run to start the debugger after a reset. Then select the "Download and debug" button on the toolbar and then the "Go" button to execute.
The Eagle SBC is shipped with an Ethernet bootloader that can be used to update the firmware on the board from an Ethernet connection. To place the bootloader in update mode you need to press and hold the user LED button while the board is starting up, e.g. via power up or when pressing the reset button. After the board starts up, release the user LED button and you will see the user LED blinking approximately once per second. That indicates the board is ready to receive a firmware update via Ethernet.
The Ethernet bootloader uses the BOOTP and TFTP protocols to temporarily acquire an IP address and copy the binary image to the board. The Luminary Flash Programmer implements a small BOOTP and TFTP server to do this. To load the flash programmer, select Programs> Micromint Eagle> LM Flash Programmer> LM Flash Programmer from your Windows Start menu. Go to the “Setup” tab to see a screen similar to that in Figure 2.6. On “Interface” select "Ethernet Interface". On the Client IP address field enter an IP address that is on the same subnet as your Ethernet adapter but is not used on your network. If you have doubts, you can connect a cable directly from the Eagle SBC to your PC to bypass the network and avoid any potential address conflicts. On the Client MAC address field enter the MAC address of your Eagle SBC, which is the same as the serial number on the board. Finally on the Ethernet adapter, select the interface on the PC to be used for the transfer.
After the setup is complete, you are ready to download the binary image to the board. Switch to the “Program” tab, select the file to download and click the “Program” button.
The bootloader uses the first 8 KB of the flash address space (0x00000000 to 0x00001fff). Programs loaded with the bootloader should be linked to start at address 0x00002000. That is done automatically if you use the "ewarm/application.icf" or "gcc/application.ld" linker scripts used in the examples.
You can overwrite the bootloader if you so desire by using the "ewarm/standalone.icf" or "gcc/ standalone.ld" linker scripts and downloading your binary image via the JTAG. Currently the bootloader can not be overwritten via the Ethernet port.
The Luminary Flash Programmer can also be invoked from the command line. The following command line is equivalent to the procedure in the previous section but uses a command line interface instead of a GUI interface.
lmflash -i ethernet -n 192.168.1.201,192.168.1.210,00-21-A3-00-01-02 blinky.bin
To see all options available from the command line, use “lmflash –h”.
Revised: August, 2008