modified on 3 January 2013 at 20:20 ••• 201,923 views

Eagle FAQ

From Manuals

Jump to: navigation, search


Frequently Asked Questions - Hardware

How much current is required by the Eagle controllers?

On typical operating conditions, the current requirements are as follows. Note that I/O devices may increase total current requirements so the complete system should be considered when sizing power requirements.

Eagle 50: +5V@115mA
Eagle 50E: +5V@225mA
Eagle 100: +5V@250mA

Are digital inputs compatible with 5V logic?

Yes. On the LM3S microcontroller the high-level input voltage (VIH) has a minimum of 2.0V and a maximum of 5.0V. The low-level input voltage (VIL) has a minimum of -0.3V and a maximum of 1.3V.

What are the maximum data rates for on-board ADCs and DACs?

The Micromint Eagle can sample the ADC at 500 kHz. The DAC can be updated at a maximum of 150 kHz for 1 channel. The data transfer is 16-bits at 25 MHz which is a total of 640 nS per data transfer but the DAC has a settling time of 6 µS so the total time needed is 6.64 µS. All 4 channels of the DAC can be updated at a maximum of 116 kHz. This is accomplished by sending the data for all 4 channels and updating all of the outputs on the last data transfer.

What LCD displays can be used with the Eagle controllers?

The examples include a driver for a standard character LCD with an HD44780 controller. We have tested an AZ Displays LCD p/n AMC2004D-FL-GBS-D and a Lumex LCD p/n LCM-S02004DSF. Both LCDs are 4 lines by 20 characters. Other LCD displays can be used with driver or interface changes.

Can 9V or 12V supplies be used with the Eagle?

If the LCD is not being used the Eagle can be powered with a maximum of 16 VDC.

What character LCD is recommended for use with the Eagles LCD connector?

AZ Displays ACM2004D series is recommended for use with the Eagle.

What keypad is recommended for use with the Eagles keypad connector?

A Grayhill 4x4 matrix keypad or equivalent keypad will work with the Eagle. For example Grayhill’s part number 96BB2-006-F.

Frequently Asked Questions - Software

How do I install the USB Debug Ports driver on Windows 8?

Windows 8 implements a Driver Signature Enforcer that does not allow you easily install unsigned drivers. Please follow the procedure below to install the drivers for the Eagle 50 USB debug port.

  • 1. Download and unzip the Eagle 50/50E USB Debugger Drivers
  • 2. Move your mouse to the top right hand corner of your screen to bring out the sidebar
  • 3. Click on the “Settings” icon
  • 4. Click on “Change PC Settings” in the lower right hand corner of the “Settings” bar
  • 5. Click on “General” in the PC Settings App
  • 6. Scroll down on the right hand side of the screen and select “Restart now” under the “Advanced startup” section
  • 7. After the computer restarts click on “Advanced options”
  • 8. Click on “Startup settings”
  • 9. Click on “Restart”
  • 10. When prompted press the number 7 to select “Disable driver signature enforcement”
  • 11. Plug in the Eagle 50 to the computers USB port
  • 12. Open Windows 8’s “Device Manager”
  • 13. Double click on “Stellaris Evaluation Board” under “Other Devices” in “Device Manager”
  • 14. Click “Update Driver”
  • 15. Click “Browse My Computer for Driver”
  • 16. Click the “Browse” button and find where the driver was unzipped on your computer
  • 17. Click “Next”
  • 18. When Windows 8 warns you that the driver is not signed click “Install driver software anyway”
  • 19. In “Device Manager” double click the second instance of “Stellaris Evaluation Board” under “Other Devices”
  • 20. Perform steps 14 through 18 for the second instance
  • 21. In “Device Manager” double click “USB Serial Port” under “Other Devices”
  • 22. Perform steps 14 through 18 for the USB Serial Port

What is the difference between standalone and application mode?

Application mode assumes a bootloader is used at 0x0000 so the application is relocated to 0x2000. Standalone mode assumes no bootloader is used so the application is relocated to 0x0000. To use standalone mode (no bootloader), link with standalone.ld (gcc) or standalone.icf (IAR) and load the binary at 0x0000. To use application mode, link with application.ld (gcc) or application.icf (IAR) and load the binary at 0x2000. The bootloader must be at 0x0000 if you use application mode.

The bootloader allows firmware updates from the Ethernet port (Eagle 50E) or serial port (Eagle 50). If you will be doing firmware updates via the USB device port or a JTAG, a bootloader is not required. If you will be doing debugging, it is easier to debug applications in standalone mode without a bootloader. Debugging with a bootloader present requires loading it before the application, which makes the setup more complex. Most applications do not use a bootloader but the default Eagle setup uses one so customers without a USB debug port or a JTAG have a way of updating their firmware.

If I use the ASSERT() macro to in my code, will it produce a fault when it fails?

No. ASSERT() normally does not produce a fault. ASSERT() is a commonly used macro in C programming to check parameter values when debugging code. To enable the ASSERT() logic, you need to define the DEBUG constant when compiling. Otherwise, it is an empty macro which is the desired behavior at runtime after the application is debugged.

Covering all possible values or sequences with ASSERT() is not its intent and is not really practical. In StellarisWare when ASSERT() fails, the __error__() function is called. You need to implement this function in your code to perform your desired action, such as displaying an error message on the desired output port.

Will an example program compiled for the Eagle 50 run on an Eagle 50E and Eagle 100?

Yes, it will as long as it uses peripherals that are in common. The common peripherals between the Eagle 50, 50E and 100 board are COM1 (UART0), COM2 (UART1), ADC, micro SD Card interface, and optional SPI DAC. The common peripherals for the I/O plus option on the Eagle 50 and 50E are the RS485 port, I2C Real-Time Clock, LCD, and Keypad. The memory map for these peripherals are identical between the Eagle 50, 50E, and 100.

Can I develop and debug code for my Micromint ARM Cortex-M3 controller using a Linux PC? a Mac OS X workstation?

Yes. CodeBlocks, Eclipse, OpenOCD and GNU cross compilers for ARM are available for Windows, Linux and Mac OS X. EWARM is only available for Microsoft Windows.

What filesystem types, volume size and filename formats are supported on microSD cards?

The code examples use the FatFS 0.04b library which supports FAT12, FAT16 and FAT32 filesystems. We have tested 4GB microSD cards but the library supports larger volumes. The filename format is 8.3. Long file names are implemented in FatFS 0.07 or above.

How can I detect if the application is compiled with IAR or GCC?

You can use compiler predefined macros as in the example below.

#if defined(__IAR_SYSTEMS_ICC__)
  /* Code to use with IAR compiler */
#elif defined(__GNUC__)
  /* Code to use with GCC compiler */
  #warning Compiler is not supported

For more details on predefined macros, consult the C preprocessor manuals.

GNU C Preprocessor

Why are some source code statements skipped and some variables unavailable when debugging?

When you enable code optimization, the object code does not necessarily follow the same sequence as the source code. Optimizing compilers like IAR or GCC use loop unrolling, loop collapsing, branch elimination and other techniques that rearrange code to increase execution speed and/or reduce code size. These changes could also eliminate the need for some variables. A common practice during development is to disable compiler optimizations when debugging. The desired optimizations should normally be enabled after most of the debugging is done and the code is stable. For a more consistent debugging environment, any libraries used by the project should be compiled with the same options and compiler version as the application.