Friday, August 29, 2014

What is Embedded System?


There are several definition of 'embedded system':
  • "An embedded system is any application where a dedicated computer is built right into the system" according to [Jack Ganssle, The Art of Designing Embedded Systems, 2nd Edition, Newnes, 2008]
  • An application that contains at least one programmable computer (uC, uP or DSP) and which is used by individuals who are in the main, unaware that the system is computer based. [ e Pont, M.J. , Patterns for Time Triggered Embedded Systems, (2001)]
  • Any computer system hidden in any products , David E. Simon, An Embedded Software Primer ,Addison-Wesley Professional; 1 edition (August 15, 1999)
     

Thursday, February 2, 2012

Comparing Specifications of Several ARM Processor Boards

Here is a comparison of specifications of multiple ARM processors.

Technologic Systems TS-7260 Olimex LPC-L2294 Nuvoton Learning Board Nu-LB-NUC140 Tiny Nu Nuvoton M051 SDK LPCXpresso LPC1769 Embedded Artist Mbed LPC1768 Embedded Artist
Photo





Processor ARM9 LPC 2294 ARM7TDMI (NXP) ARM Cortex M0 (Nuvoton) ARM Cortex M0 (Nuvoton) Cortex M3 ARM LPC1769 (NXP) ARM Cortex M3 (NXP)
Clock 200 MHz 60MHz 50MHz 50 MHz 120 MHz 100 MHz
On Chip RAM - 16KB 16KB 4 KB SRAM 64 KB 64 KB
On Chip Flash - 256KB 128KB 64KB of program

4KB data
512 KB 512 KB
On Board RAM 32 MB 8 MB SRAM - - - -
On Board Flash 32 MB 4 MB - - - -
On Chip Oscillator - - Yes Yes Yes Yes
On Board Crystal 14.74 MHz 14.7456 MHz 12MHz, 32kHz 12MHz 12 MHz 12 MHz
Price USD 179 EUR 115.95 (Ref ) USD 119.7 (digikey) USD 19.95 (digikey) EUR 20 EUR 45
Free Compiler & IDE GCC GCC (WinARM) Keil (max 32KB) Keil (max 32 KB) Code Red, max 128KB code onlinehttp://mbed.org/
Ethernet 10/100 on board 10/100 on board - - 10/100 ethernet connector by adding 10/100 ethernet connector by adding
In Circuit Emulator ? available with special JTAG devices Yes Yes Yes Yes
Operating System Linux FreeRTOS CooCox &
FreeRTOS
CooCox
Power Supply 4.5V ~ 20V with on board regulator 4.5VAC / 6 VDC with on board regulator 5V via USB or connector 5V via USB 5V via USB or 3.15V-3.3V DC Via USB 5V or 4.5V ~ 9V DC

ARM Prosessors Parade

This week I managed to collect several ARM boards:
The next job was to compare the abilities of each board.

Update: I had a few hours trying to board from Texas Instruments ARM: Stellaris LM3S8962

Learning Cortex M3 ARM with LPCXpresso development board

LPCXpresso LPC1769 (right) juxtaposed with the LPC2294 from Olimex modules (left)

One quick way to learn ARM Cortex M3 is to use LPCXpresso  board. This board is the result of collaboration between NXP as an ARM microprocessor manufacturers,CodeRed as a manufacturer of compiler and Embedded Artist as a development board manufacturers.

The advantages of this product that I feel:
  • Can be directly used
  • Pins available to connect to peripherals that we want
  • If you want to use a larger development board and complete, can buy the base board from Embedded Artist
  • Existing JTAG
  • Compiler is free of CodeRed can make application to the size of 128k. Is larger than the free software from Keil / IAR
  • There is already ported FreeRTOS for LPCXPresso. It's very easy to try RTOS (Real Time Operating System)
  • LPCXpresso modules available for the class M0 and Cortex Cortex M3
  • Existing ethernet chip, plus live ethernet connector.
  • The price is pretty cheap, € 20

References to noise reduction techniques in electronic system

Reference to learn the techniques of noise reduction (noise) on the electronic system

In making an electronic system, we will face a mismatch between what we design to what happens in the real world. One reason is the phenomenon of noise (noise). Noise phenomenon are often ignored at design time, but they would appear at hardware implementation.

Here are some references that I've ever used to learn / teach about the EMI (Electromagnetic Interference) / EMC (Electromagnetic Compatibility) / ESD (Electrostatic Discharge):

Textbook References:
Application Notes:

ARM Cortex M0 processor from Nuvoton

Recently I received two pieces of sample development board from Nuvoton . I have not tried them, so in the mean time I can only provide visual description.

The first is the development kit board type NuTiny M051 SDK . It was a board ARM Cortex M0 of the M051 series. Code '051 'is reminiscent of the 8051 processor, and these items are targeted to be competitive with the processor 8051 series. From the price worth it, whereas in the ability of this processor is entered into this type of ARM32. With prices like the price of 8-bit processors, can gain the ability to approach the 32-bit processors.

Close-up of the processor, the processor type is "516 M0 LAN", which means that capacity is 64k Flash ROMnya


According to digikey, the price of this board is USD 19.95
Processor prices have ranged between USD 1.8 to USD 4:23 depending on the number of orders.
This board was also discussed at the forum AVRFreaks





The second board is a starter kit of type Nu-LB-NUC140 . This board is equipped with several peripherals, so here are able to conduct experiments that are quite complex.


Processor type is NU140VE3CN means: CPU Core Cortex-M0, Connectivity Line, APROM size 128K, 16K RAM Size


Nuc spec processor according to user's guide "
The NUC1XX series are ARM ® Cortex ™-M0 core embedded microcontroller for industrial control applications and the which the communication functions needed Rich. The Cortex ™-M0 is the newest ARM embedded processor with 32-bit performance and at a cost equivalent traditional 8-bit microcontroller. 

The NUC1XX series with Cortex ™-M0 core runs up to 50MHz, up to 32K/64K/128K-byte embedded flash, and 4K/8K/16K-byte embedded SRAM, it also integrates Timers, Watchdog Timer, RTC, PDMA, UART , SPI / SSP, I2C, PWM timer, GPIO, LIN, CAN, USB 2.0 FS Device, 12-bit ADC, Analog Comparator, Low Voltage Detector and Brown-out detector.
Peripherals that are already on board starter kit are as follows:
  • 7-segment as the output
  • 3x3 keyboard as an input
  • push button interrupt
  • LCD as a display
  • UART with DB9 connector
  • Buzzer
  • I2C connector
  • SPI connector
  • PS2 connector
  • ADC connector
  • I2S connector
  • LIN and CAN connector
  • SD memory interface for
The price of this board at digikey is USD 119.7

Nuvoton Family of ARM processors can be found at Nuvoton website . The following diagram summarily. It appears that the M051 is the 'lowest of the low' family of ARM Cortex M0, whereas NU140 is its high-end type.

Various AVR Processor Programming Technique

In this article we outline a variety of techniques to upload firmware (program) which in binary (HEX file format) to the Program Flash memory in the AVR microcontroller. There are 4 main techniques outlined are as follows:
  • ISP ( In System Programming ) also called ICSIP (In Circuit Programming System) [1] . In this technique, firmware is loaded into the microcontroller chip with serial protocol . During the uploading process, the microcontroller does not have to be removed from the circuit, hence its name "In System Programming", which means the microcontroller is programmed in its circuit.
  • HVPP ( High Voltage Parallel Programming ). In this technique the firmware is uploaded with the parallel protocol using +12 V voltage which is higher than the working voltage (+5 V).
  • HVSP ( High Voltage Serial Programming ). In this technique the firmware uploaded with the serial protocol and the working voltage of +12 V. This technique is used to replace HVPP technique in devices with limited number of pins.
  • Bootloader . In this technique on we put a small special program in the microcontroller bootloader flash area. The bootloader software can receive firmware applications from outside and then insert it into the application flash memory firmware. When we use a bootloader, flash memory is divided into bootloader flash and application program.
Below area descriptions of each technique.

AVR programmer with ISP via the Parallel Port

Parallel port on the Desktop PC
On this type of programmer, programming is inserted through the port SPI (Serial Peripheral Interface) in the AVR microcontroller. This technique is also known as ISP ( In System Programming ), which means that the microcontroller can be programmed on a system that has been soldered, without the need for removing the microcontroller from the PCB. In this technique, the pin-pin AVR ISP directly controlled by the parallel port of a PC.
There are two variants of this type of circuit, the programmer without the programmer with the buffer and buffer. Without a buffer circuit block diagram is as follows:
Avr-programmer-parallel-direct.png
Block diagram of the circuit with the buffer is as follows:
Avr-programmer-parallel-with-buffer.png
Examples of this type of programmer hardware settings are as follows:
As a pair programmer hardware, software on the PC is also required to do programming. Examples are as follows:

AVR programmer with ISP through serial port with bit banging

Simple block diagram
Avr-programmer-serial-bit-banging.png
Pin-pin serial port is controlled by the ISP from the PC. Programming does not use serial communication protocol, but uses a bit-banging method [5] . Examples of the circuit can be viewed at the following URL. http://www.lancos.com/siprogsch.html .
Software on the PC can use PonyProg [6]
Advantage of this programmer is simple and fairly robust, rarely damage the port using the PC as a parallel port. The disadvantage requires a serial port on board in a desktop PC, so can not use the serial port of the USB serial.

AVR programmer with ISP through serial port with serial protocol

Avr-programmer-serial-with-microcontroller.png
On the programmer, the PC communicates via a serial protocol with a microprocessor. This microprocessor then controls the pin-pin ISP AVR microcontroller to be programmed. The series of examples

AVR programmer with ISP through the USB port with bit-banging

At the programmer of this type, a microprocessor (microprocessor programmer) is used to receive signals directly from the PC USB without using a special chip USB. The microprocessor is then programmed the chip programmer AVR via ISP connection. Usually these techniques take advantage of such library for AVR USB V-USB [10] and USBtiny [11] .
Avr-usb-programmer-with-microcontroller.png
Example of a series of open source:
  • Doper AVR [12] "AVR-Doper is an STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP). It comes with a built-in USB to Serial adapter to connect directly to USB."
  • USBprog "An open source all purpose tool (AVR ISP, ARM7/ARM9, AT89, JTAG, RS232, IO)" [13]
  • USBasp [14] . "USBasp is a USB in-circuit programmer for Atmel AVR controllers. It simply consists of an ATMega88 or an ATmega8 and a couple of passive components. The programmer uses a firmware-only USB driver, no special USB controller is needed." Examples of implementation USBasp [15]
  • Tiny USB ISP [16]
Examples of finished products:
Some software that can be used:
  • Khazama software can be used as a front-end [18]

HIGH VOLTAGE PROGRAMMER (HV PROGRAMMER)

This flash programmer to access the AVR via the parallel port on the AVR, not through the port ISP At +12 V programming voltage required on a particular pin, therefore this technique is called high voltage programmer. High voltage here is not in the tens or hundreds of volts, but only +12 V. The main advantages are the programmer can be used to program the AVR chips that could be turned off SPI or Resetnya pin. The disadvantage is a fairly complex circuit programmer and a programmed microcontroller chip must be removed from the PCB.
Avr-high-voltage-programmer.png
There are several series of based-based programmer STK500 board as follows:
High voltage parallel programmer is simple:

Programmer AVR with the bootloader via serial port

At the programmer of this type, the AVR to be programmed is activated once a small program called a bootloader. PC sends the software to be programmed into this bootloader program, then program the bootloader will program the Flash memory with the desired program.
Avr-programmer-serial-with-bootloader.png
Examples of the bootloader software
Variations of this programmer is to use a USB to Serial device, so it can be used on Desktop / Laptop with a USB port but no serial port.

Images on a computer USB port

Avr-usb-programmer-with-usb2serial.png
Example: