SparkFun Forums 

Where electronics enthusiasts find answers.

Everything ARM and LPC
By alexan_e
#123943
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
Alexan Eramian
Last edited by alexan_e on Sat May 19, 2012 3:22 pm, edited 4 times in total.
#124103
By alexan_e
#124193
Polux rsv wrote:Great tool.
Why not covering LPC1100, LPC1300 and LPC1700 ?

Angelo
Hi

I have started the application for my projects actually and I was only using the smallest LPC2103 and only for some simple IO slections,
Then I thought that I could also add the other 21xx which are similar and add more functions.
In version 1.3 I checked a few datasheets and I saw that 22xx,23xx,24xx were similar and could also be added.
So in version 1.3.1. I'm actually working on adding 24xx chip profiles but as I'm checking the datasheet I'm making changes to be able to work with these.
For example in LPC2478 that I'm adding there is the PINMODE register for the pull up/down resistor so I had to add one more icon to the treeview I/O,
the fast GPIO should be set independent for the 5 ports because two of them (0,1) can work both ways but 2,3,4 can only work with FIO,
Also the interrupt vectors which are now 32 instead of 16 or the clock divider that can be set in different values for each peripheral etc.

After there changes I suppose that I could also add the 17xx (it is the only one I've checked from the ones you mention) maybe with a few more changes,
For now I'm trying to add 2xxx devices first.

Best regards
Alex
By alexan_e
#124587
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
By alexan_e
#125140
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

Visit
http://alexan.edaboard.eu/

Best regards
Alex
By alexan_e
#127271
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.

Visit
http://alexan.edaboard.eu/

Best regards
Alex
By alexan_e
#128031
ARMwizard updated to version 2.0

What is new

• 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

Visit
http://alexan.edaboard.eu/

Best regards
Alex
By alexan_e
#128111
ARMwizard updated to version 2.0.1

What is new
• Added support for LPC1751/52/54/56/58/59

Visit
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.

Best regards
Alex
By alexan_e
#132795
ARMwizard updated to version 2.0.2

What is new

• 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, SCS, INTWAKE registers
• 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

Visit
http://alexan.edaboard.eu/

Best regards
Alex
By William_Gaatjes
#132810
Hello, i have a question.

Do you think it is possible to add the SAM7S and SAM7X series from atmel as well in the near future ?

I am still attempting to make my free ARM IDE. I am still busy with it and creating standard functions and manuals.
I would love to add a link to your software as well.

Right now the support for various chips is limited in W-ARM. When i have reached my initial goals, i am planning to partially rewrite the W-ARM manager that it will instead of having the supported processors hard coded in the source, i want to make (or just read an existing ?) special MCU file where the name and the specifics of each MCU is present. Then the W-ARM manager reads the file at startup and can use this information to present visual options and to create the make file and the linker file used to control GCC.

I am going to update the screenshots on this link within the hour from moment of posting.
By alexan_e
#132819
William_Gaatjes wrote:Hello, i have a question.

Do you think it is possible to add the SAM7S and SAM7X series from atmel as well in the near future ?
I'm afraid not, it is already hard for me to support the NXP chips but at least the chips are similar in many peripherals functions and register names.
To implement mcu from other manufacturers would take too much time for me and would require a redesign in many areas of the application.

Thank you for your comments
Alex