SEARCH
TOOLBOX
LANGUAGES
modified on 10 August 2010 at 23:05 ••• 217,859 views

Eagle FAQ

From Manuals

Revision as of 23:05, 10 August 2010 by Support (Talk | contribs)
Jump to: navigation, search

Contents

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. 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.

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.

Frequently Asked Questions - Software

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.

Can I develop and debug code for the Eagle 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.

Why are certain source code statements not executed when single stepping?

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. A common practice during development is to disable optimization when debugging. Compiler optimizations should normally be enabled after most of the debugging is done and the code is stable. For a more consistent debugging environment, the StellarisWare driver library should be compiled with the same options and compiler version as the application.

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.