New ARM7 Microcontrollers from NXP with LCD support

New microcontroller LPC2478 from NXP company is based on ARM7 core with built in Flash memory and have built in LCD interface. LPC2470 has no Flash memory. LPC24 series have two high speed buses AHB to ensure independent work of peripherals like LCD, 10/100 Ethernet, USB and two channels of CAN. LPC24xx have reasonable low prices that allow these MCU to be used in industries like various gadgets, home appliances, medical equipment where LCD is required and also connection to the internet.   LCD displays are part of our life starting from cell phones, media players and car navigation systems GPS. LCD takes important part in medical environment. Where visual information may be critical. So LPC2478 and LPC2470 goes in front of non expensive and low requirements for LCD interfacing. LPC2478 and LPC2470 supports most of statical LCD displays up to 1024×768 pixels monochrome with fifteen gray levels and color 24bit/pixel TFT panels. Designers of embedded systems have to program LCD functions inside the chip what allows to avoid various conflicts that would occur with external interfacing. LPC2478 comes with 512kB fast internal flash memory with built in error correction to ensure maximum reliability of performance. LPC2478 and LPC2470 only…

Continue reading

JTAG wiggler clone for ARM microcontrollers

The Olimex ARM JTAG clone is well known as there are many schematics in the internet available. Circuits is very simple and seems to be reliable. This adapter can be also set up to work with WinARM tools: ocdremote and gdb/Insight-gdb. In the circuit there is a critical part that needs to be considered – 74HC244 buffer IC. Family of HC support less than 4.8V if powered with 3.3V. But reality shows that Parallel port voltage usually is lower than 5V, so HC will fit. But of course it is better to measure the HIGH state of parallel port pins. To be more sure HC should be replaced by 74LVP244 or 74LPT244. These chips support 5.5V in entry with 3.3V supply but sometimes they are hard to find in the market.

Continue reading

Real time clock of LPC2148

LPC2000 series of microcontrollers have built in Real Time Clock(RTC) unit which is may be used for counting time in order to maintain a calendar and clock. RTC is designed for low power designs that enables to use in battery powered designs. Real time clock is capable to count time in Seconds, Minutes, Hours, Days of Month, Months, Years, Days of the week and Days of Year. Real time module can be clock using distinct 32kHz clock oscillator or internal prescaller from VPB clock. Real time clock unit has additional power supply pins(3.3V) what allows RTC clock to work when system is off – actually power down mode operated from clock battery. As there are many functions in clocks like time units(seconds, minutes, etc,) and alarms, there are quite a number of registers to cover clock functionality. There are several groups of registers: Miscellaneous registers like Interrupt Location Register(ILR), Clock Tick Counter(CTC), Alarm Mask Register(AMR); Time Counter register Group which includes registers that contain Time values(Seconds, Minutes,…); Alarm register group – registers that hold alarm settings and that are compared to Time Group registers. When match occurs an interrupt is generated; Registers that control Reference Clock Divider – with these…

Continue reading

Pulse Width Modulator in LPC2000 ARM7 MCU

In ARM7 microcontrollers PWM is designed as separate module but it has all features as a general purpose timers have, just limited pins are associated. PWM module have improved match module which allows to have six channels of single edge controlled PWM or three double edge controlled PWM. There are seven match registers used with improved update logic. PWM modulator have additional shadow match registers that perform latch effect. This means that you can update match registers on instantly, but new values are taking effect only at the beginning of new cycle. This mechanism ensures that all updates are performed at he beginning of a new cycle through latch enable register(LER). In general purpose timers match registers take effect immediately after they are updated.

Continue reading

Timer Counters in LPC2000 microcontrollers

LPC2000 microcontrollers have at least two 32 bit timer counters. Lets take LPC2148 microcontroller where are two general purpose 32 bit timers that are identical except peripheral base address. These timers are for general purpose that can perform timer and counter operations. Timers have many features: Programmable 32 bit pre-scaler; Up to four 32 bit capture channels that can take snapshots with interrupt generation ability; Four 32 bit match registers that allow generate interrupt on match, generate interrupt and stop timer, generate interrupt and reset timer; Up to four output pins that can be set LOW/HIGH/TOGGLE on compare match;

Continue reading

General purpose ports in ARM MCU

Microcontrollers aren't imaginable without ability to interact with other devices like indicators, input devices or other off-chip devices. For this every MCU have I/O pins that are used to interact with external world. General purpose I/O ports can be accessed via registers who provide enhanced features or simply via port registers. Port registers are allocated to the ARM bus so that fasted possible timing can be achieved. Control of individual bits is possible using single instruction. All port registers are byte and half word addressable. After MCU reset all I/O ports are set to input. Lets take LPC2000 series ARM microcontroller LPC2148. It has two 32 bit general purpose I/O ports PORT0 and PORT1. PORT0 has 30 pins for input/output operations where one is only for output. PORT1 has 16 available pins for GPIO. Each GPIO pins is controlled by four registers: IOPIN – port pin value. Depending on pin direction settings the value from this register can be read; IOSET – Writing “1” to this register sets port value to high state while writing 0 hasno effect. This register works in conjunction with IOCLR; IOCLR – This register is opposite to IOSET. Writing “1” value to it will set…

Continue reading

Programming microcontrollers AduC70xx using boot-loader and ARMWSD utility

Firmware for AduC70xx ARM microcontrollers can be uploaded using built in boot-loader. To work with boot-loader Analog Devices offer to use small free program ARMWSD working under windows system. Program doesn’t require installation. ARMWSD communicates with AduC70xx via COM-port. Simple programming steps looks like this: Connect target board to PC COM port; Go to Configure->Parts and select AduC part:   Then go to Configure->Comms and select serial port and baud rate:     Select other settings if needed (Mass erase, Program, Verify, Protect) in Configure->Flash menu; Press OK to get to main window again. Browse for hex file – only hex files are supported in this program. When you are set, then press Start button – Program starts waiting for boot-loader action:     Now you have to start boot-loader on your target board. As you know entering boot-loader needs some procedure to be done. Manually you have to press button “Download” connected to BM pin, then power on board and rapidly press and release “Reset” button and then release “Download” button. After this AduC70xx enters boot-loading mode and downloads hex file.   Program is simple but it does the job.

Continue reading