I thought it would be nice to have an application where all the initialization values for the microcontroller registers could be easily set up using a graphic interface but I wasn’t able to find any commercial or free application so I have started my own application available as a freeware.
I have called the application ARMwizard and it is already in version 1.3. I keep adding more settings and I will also add more LPC2xxx series models in future versions, the application can support LPC21xx, LPC23xx, LPC24xx etc. The current version includes mcu profiles for LPC2101/2/3, LPC2104/5/6, LPC2131/2/4/6/8, LPC2141/2/4/6/8
The application can help set up the registers of Philips (NXP) LPC2xxx ARM7 microcontrollers, it is mainly designed to be used with KEIL uvision but the created code can easily be modified (mainly the interrupt functions) for other compilers because all the register names are the ones used in the datasheet of NPX.
It generates the initialization code with the selected settings, fully commented and including register values and interrupt functions, you just have to copy it in a new project to have a starting point in a few minute, this should make the development of applications much easier and faster.
The settings include:
* GPIO, select inputs/output direction or any alternative pin function using a convenient graphic interface and also a quick selector which has all the functions in groups.
* Interrupts, select from a list any of the available interrupts sources and add them to the selected vector, the functions will be created automatically.
* External Interrupts, set the external interrupt options using combo boxes.
* A/D converter, set any aspect of the ADC (mode, channels, interrupts etc.) with explanation for every setting and see the calculated clock and sample rate without having to calculate anything.
* Timers, set any aspect of 16/32 bit timers (mode, MAT, CAP, interrupts etc.) with explanation for every setting and automatic clock calculation.
The application is a Windows executable but is completely compatible with Linux using WINE, it doesn’t need any installation, just unzip the downloaded file and run the application. It doesn’t write anything to system folders or the registry, to remove the application you just delete the executable file and the include folder.
You can see snapshots of the application and sample of the generated code in http://alexan.edaboard.eu
Best regards Alex
I have called the application ARMwizard and it is already in version 1.3.
theoritically the slower the revision numbers move, the better a product is.
If a product was perfect from the onset there would never be but revision 1.0
Erik
v1.0 was my first release , not the finished product, it was when I started to developer the application. I have added many functions since that first release and I have worked many hours each day to develop an application that I think will be useful to anyone using LPC2xxx mcu. Each time I add new functionality to the application (ADC,Timers etc) I increase the version number so when I say that it is already in version 1.3 I mean that many functions have been added since the first release and I believe that it is a good thing, that doesn't mean that the application is full of bugs.
Best Regards Alex
"If a product was perfect from the onset there would never be but revision 1.0"
Never possible if you hunt a moving target. Everytime NXP adds a new chip, it may contain something that can't be handled using existing templates or configuration files.
The interesting thing with program updates if the amount of improvements in the program in relation to the number of bug fixes. A perfect product would be a product where new releases only included improvements but needed no bug fixes.
Looks nice but it is a little late for me...fir new products we are abandoning the LPC24xx family in favor of LPC17xx chips...
Hi
I have updated the application to version 1.3.1
What is new -Added LPC2420, LPC2458, LPC2460/68, LPC2470/78 -Added save/load to store/restore configuration (I/O, interrupts, ADC, Timers etc.) -The reserved alt. pin functions can't be selected. -Added Pull up/down resistor setting for LPC23xx/24xx -The peripheral clock dividers can be different for each peripheral for 23xx/24xx support
Visit http://alexan.edaboard.eu/
Best regards Alex Eramian
ARMwizard updated to version 1.3.2
What is new -Added the complete LPC23xx series mcu (LPC2361/62/64/65/66/67/68/77/78/87/88) -The ADC channels that are not available are now disabled (grey checkbox) -The interrupt initialization for 24xx has been fixed. -The selected mcu profile is shown with red in the mcu selector -The fast interrupt is shown with blue color (vectored isr shown in red) in the available interrupt selector
ARMwizard updated to version 1.4
What is new
- Added the PWM settings tab to set all the registers of pulse width modulation - The last loaded configuration file (.sav) is stored and used as default path/name when you restart the application and press load configuration. [Simon B.] - The PR register of Timers, MR0 register of PWM and CLKDIV of ADC have a right click function to set value by target frequency or period. [Simon B.] - The CCLK clock frequency is always common and can't be set individually for each peripheral. - Added individual PCLK setting for each timer for chips that support it (23xx, 24xx). - ADGINTEN (in ADC) is now enabled by default since the reset value of the register is 1. - The load button is now enabled when the application starts.
ARMwizard updated to version 2.0
• Added support for LPC17xx chips, includes LPC1763/64/65/66/67/68/69 mcu profiles • Added pin setting for open drain and repeater mode for LPC17xx • Added GPIO interrupt trigger edge selector to enable interrupts for selected GPIO pins • CLKDIV register of A/D can also be set by target sample rate ( in addition to A/D frequency) • When Timer2 & Timer3 is used the PCONP enable bit is set to enable the timer operation
I need support for LPC1788 :-)
I will add more 17xx chips but for now you can use the application for the parts that are the same like ADC, timers, pwm, interrupts etc. You can copy paste the specific parts that you need, it will still save you time for your project but the I/0 tab and GPIO results will not be valid for your chip until the correct profile is added because of the different pin number and functions.
Alex
ARMwizard updated to version 2.0.1
What is new • Added support for LPC1751/52/54/56/58/59
You can download the new version from http://alexan.edaboard.eu
I had to release v2.0.1 one day after v2.0 because I have added the LPC175x chips and I had to make a few changes in the application to work correctly with them (no capture registers are available in timer 2 and 3 in these chips). A download of only the profiles wasn't an option, sorry for the inconvenience.
DOES NOT WORK WITH STM32!
The application has been designed to support the NXP chips only, STM32 is completely different compared to the LPC chips.
Why scream?
Have you been taught that people will listen to you if you scream?
Think again.
ARMwizard updated to version 2.0.2
• Removed: __irq prefix from LPC17xx functions [Phil Young LPC2000 forum] • Added: The missing exception interrupts for LPC17xx • Added: Bit masking for reserved bits of PCONP register • Added: Support for LPC177x/8x having the IOCON register (LPC1774/ 76/ 77/ 78/ 85/ 86/ 87/ 88) • Added: In quick selector if a pin of a function group is set then the group is also shown with a checkbox • Fixed: when the external match checkbox were enabled in timers the match control register stop and reset bits were disabled. • Fixed: The motor PWM input pins were shown in the SD/MMC section of quick selector • Fixed: a few pins functions in LPC2470/78 were not commented
ARMwizard updated to version 2.0.3
There were a couple of bugs that had to be fixed and I didn't want to wait until the next version because they were limiting the functionality of the application, basically they affect the LPC17xx.
v2.0.3 • Fixed: the Pclock couldn't be set over 100MHz in LPC17xx ADC, now the limit is 200MHz [Johann Zimmermann] • Fixed: in LPC17xx the Pclock divider is now common and can be set to 1/1 - 1/31