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
"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.
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
ARMwizard updated to version 2.1 , added SPI/SSP settings
What is new:
• Fixed: There were cases where the CCR1.0 checkboxes were not shown for PWM • Fixed: The PCLK divider range was 1/1 - 1/8 instead of 1/1 - 1/31 for LPC177x/8x • Fixed: The PWM power control bits (PCONP) were not set to turn on the peripheral in LPC177x/8x • Fixed: The ADC1 power control bits (PCONP) were not set to turn on the peripheral in LPC2134/36/38 • Fixed: There was an erron in the name of the included header for LPC2141 • Fixed: In LPC175x/6x the right click on the pull up/down triangle didn't change the mode correctly (from up<->down) • Added: All edit box values can now be increased/decreased using the up/down arrow keys (like spin edits) • Added: For desktops with vertical resolution lower than 660 the ARMwizard form is reduced to 550px and a scrollbar is shown • Added: SPI/SSP settings for all the included mcu models • Added: Set the power control bits (PCONP) to enable every used peripheral even if the default setting after reset is on
Visit http://alexan.edaboard.eu