In-Circuit Emulators for 8051 Devices. | TMS320VC5416
Products. | Gang Programmers. |
ARM Based Embedded Application Module
The ARM EAM is designed to help the designers take up ARM projects easily and finish the same in less time than before without compromising any features of the ARM devices.
Now, the concept of the EAM is introduced taking the NXP device LPC2138 as reference. The concept is same for the other ARM EAM using the Atmel controller, AT91SAM7S256.
The LPC2138 ARM EAM is designed to evaluate the performance of the NXP 16/32 bit ARM7TDMI CPU and subsequently use it in real time applications. Keyboard and Display are the two important interface units required by all the embedded applications. To interface keyboard and display, at least 15 to 20 I/O lines are required. ARM CPU has plenty of on chip peripherals and their functions are multiplexed with I/O lines. If we reserve 15 to 20 I/O lines for keyboard and display, we cannot use most of the peripheral functions of ARM CPU. Since the keyboard and display are the slower devices, when we interface them with high speed ARM CPU, ARM execution power is also wasted.
To avoid the above difficulties, we have introduced one Secondary Onboard Controller (SOC) in the EAM board. This SOC is controlled by SPI protocol and supports all the standard input and output modules. SOC frees all the ARM I/O lines for user applications and it takes care of controlling I/O modules.
EAM hardware along with Proto board enables you to study various interfacing options using LPC2138 device. Many interfacing options and plenty of examples should enable you to gain the required confidence in taking up your next project using NXP 32-Bit ARM7 Micon.
The hardware is supported with plenty of software examples using these peripherals in all possible options.
More information on SOC operation and its role in micro controller application is explained here in detail. As you know, most of the embedded applications require some sort of interacting facilities with the outside world using keyboard, LCD or LED display indications, Real Time Clock, Switches and etc. You might have used different peripheral controllers to handle these functions in your earlier designs. Then, most often, your main controller may take care of these peripheral functions along with its main application or control tasks.
Now we are going to check the possibility of using a microcontroller as a secondary controller to undertake all these peripheral functions independent of the main controller and relieve the same to concentrate fully on the main and important tasks. Again, for the sake of discussion, assume that your microcontroller manages few common peripheral functions like a keypad, LCD Module, and few inputs and outputs along with the main control job. Naturally your program control loop may look like following:
As you can observe from above, your controller spends most of its time in managing peripheral functions than the main task. Because of this, main task or application gets less attention from the microcontroller and as a result the accuracy, resolution and speed of the execution reduced significantly. This scene is very common in data acquisition applications where signal sampling and processing demand more time and power from the controllers. Then you start looking for powerful micro controllers giving more processing power for the tasks in hand. Most often, these slow operating peripherals waste the processing power of the high-speed micro controller and practically important tasks get less attention than expected.
These days the availability of plenty of low cost micro controllers gives the designers an opportunity to separate these time consuming peripheral functions from the main-controller and enable that to give maximum attention to the main tasks at hand. Because of this arrangement, the tasks are attended to at a faster rate than earlier and error conditions are managed without any delay. As a result the control loop becomes shorter and gains more speed and the reliability of the task execution improves many times as shown here:
Since there is an exclusive micro controller handling peripheral functions, you can accommodate few more facilities to introduce more sophistication in user interacting part of your applications and let the main controller manage the required important tasks with small control loop. But, you need to establish a kind of reliable communication link between two controllers to exchange data between themselves. With this arrangement, you need not use high-powered or speed micro controllers for the same application and need not compromise on user interaction features.
Now, the flexibility and range of peripheral functions purely depend on the micro controller you select for these functions. By avoiding high-speed controllers, the cost of the application stays within your desired budget. As you can note, these days low end micro controllers, especially 8-bit controllers available at very attractive pricing. So, with a little investment on this second controller, you can gain more in other areas. Another indirect benefit you can derive out of this arrangement is that you can protect the details of all peripheral functions from the curious eyes of your competitors. Especially, when you use I/O functions extensively in the industrial environment, you may find this as an advantage.