This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARMwizard, freeware application to setup LPC2xxx registers using graphic interface

Note: This was originally posted on 28th March 2011 at http://forums.arm.com

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.

The application is called ARMwizard and is currently 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
  • Note: This was originally posted on 5th April 2011 at http://forums.arm.com

    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 function radio buttons in I/O treeview are now grayed and not selectable
    • 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
    Alexan Eramian
  • Note: This was originally posted on 11th April 2011 at http://forums.arm.com

    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 Eramian
  • Note: This was originally posted on 16th May 2011 at http://forums.arm.com

    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 Eramian
  • Note: This was originally posted on 31st May 2011 at http://forums.arm.com

    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 Eramian
  • Note: This was originally posted on 1st June 2011 at http://forums.arm.com

    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
  • Note: This was originally posted on 2nd September 2011 at http://forums.arm.com

    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
  • Note: This was originally posted on 2nd September 2011 at http://forums.arm.com

    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.

    What is new

    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

    Visit
    http://alexan.edaboard.eu/http://alexan.edaboard.eu/

    Best regards
    Alex
  • Note: This was originally posted on 3rd May 2012 at http://forums.arm.com

    What is new in v2.2.2

    "¢ Fixed: The drop down list contents in several peripheral settings were empty so the peripherals couldn't be set properly (EINT, ADC, Timer, PWM, SPI, SSP).


    What is new in v2.2.1


    "¢ Fixed: The replace list was saved even when the cancel button was clicked in the "save as" dialog.
    "¢ Added: A swap button that can invert the list content, it swaps the old with the new values
    "¢ Added: Button to apply the replace operation to an external file


    Visit http://alexan.edaboard.eu

    Best regards
    Alex
  • Note: This was originally posted on 19th May 2012 at http://forums.arm.com

    ARMwizard has been updated to version 3.0

    I'm very excited about this new version, I have added several new models that many of you have been asking.
    I have also added the pinout images of the new models for quick reference (showMCU button).
    If you are using the LPC11xx or LPC12xx then you have to wait a little longer, they will be added soon.

    Please note that according to the NXP user manual the reserved bits 7:6 of IOCON have a reset value of 0 for the I2C pins (P0.4 and P0.5) in LPC1311/13/42/43 (this is also the case in the 11xx manual but not the 1315 or 11Uxx).
    Bit7 is responsible for setting the analog/digital mode of the pin even when reserved and this is why the value of bit7 is 1 in every other pin of the mcu so it doesn't make sense to make an exception and have a value of 0 in a digital I2C pin.
    I have asked the NXP support and they replied that the value is 0 as the manual says but I still doubt the answer and I believe it was based on the user manual without further thought.
    After a discussion in the LPC2000 forum I have concluded that the values mentioned in the user manual are wrong so note than in the application I set the value of b7:6 to 1.
    If you have an LPC1311/13/42/43 and after testing you think that the value I use is wrong please email me.


    What is new in v3.0

    v3.0.0
    "¢ Fixed: In LPC177x/8x bit7 value in the IOCON register of pins P0.7, P0.8, P0,9 should be 1 and not 0
    "¢ Added: Group GPIO and EDGE/LEVEL PIN GPIO for LPC13xx, LPC11xx
    "¢ Added profiles for LPC11Uxx_(33p)  LPC11U12/14/24/34/35
    "¢ Added profiles for LPC11Uxx_(48p_QFP)  LPC11U12/13/14/23/24/34/35/36/37
    "¢ Added profiles for LPC11Uxx_(48p_BGA)  LPC11U14/24/35
    "¢ Added profiles for LPC11Uxx_(64p)  LPC11U24/35/36/37
    "¢ Added profiles for LPC1311/13/42/43   33pin, 48pin
    "¢ Added profiles for LPC1315/16/17/45/46/47 33pin, 48pin, 64pin
    "¢ Added profiles for LPC1776/78/86/88  144pin, 180pin


    Visit http://alexan.edaboard.eu

    Best regards
    Alex
  • Note: This was originally posted on 25th May 2012 at http://forums.arm.com

    ARMwizard has been updated to version 3.1.0


    "¢ Fixed: The max operating frequency for the ADC peripheral in LPC175x/6x was 14MHz instead of 13MHz [nxp41306 in LPCware.com]
    "¢ Fixed: In the interrupt initalization of Cortex M0 the priority setting is now placed before enabling the interrupt.
    "¢ Fixed: The Interrupt priority comment was wrong, the priority level for CortexM0 is 0(highest) to 3(lowest).
    "¢ Added profiles for LPC11xx_(33p)  LPC11xx33/101, LPC11xx33/201, LPC11xx33/301 (33 pin)
    "¢ Added profiles for LPC11xx_(48p)  LPC11xx48/101, LPC11xx48/201, LPC11xx48/301 (48 pin)
    "¢ Added profiles for LPC11Lxx_(33p)  LPC11xx33/102, LPC11xx33/202, LPC11xx33/302 (33 pin)
    "¢ Added profiles for LPC11Lxx_(48p)  LPC11xx48/102, LPC11xx48/202, LPC11xx48/302 (48 pin)
    "¢ Added profiles for LPC11XLxx_(33p)  LPC11xx33/103, LPC11xx33/203, LPC11xx33/303, LPC11xx33/323, LPC11xx33/333 (33 pin)
    "¢ Added profiles for LPC11XLxx_(48p)  LPC11xx48/103, LPC11xx48/203, LPC11xx48/303, LPC11xx48/323, LPC11xx48/333 (48 pin)  
    "¢ Added profiles for LPC11C12_14_(48p)  LPC11C12, LPC11C14 (48 pin)
    "¢ Added profiles for LPC11C22_24_(48p)  LPC11C22, LPC11C24 (48 pin)
    "¢ Added profiles for LPC11Exx_(33p)  LPC11E11, LPC11E14 (33 pin)
    "¢ Added profiles for LPC11Exx_(48p)  LPC11E12, LPC11E13, LPC11E14 (48 pin)
    "¢ Added profiles for LPC11Exx_(64p)  LPC11E14 (64 pin)
    "¢ Added profile for mbed LPC11U24 board (LPC11U24_MBED) including an image with the board pinout.The Led pins (0.8, 0.9, 0.10, 0.11) are set as output only and
    the two UART pins (0.18, 0.19) connected internally to the USB uart emulator are inputs with only the uart alternative function available.
    I have also removed the OD, HYS, INV and pull up/down modes from these pins.


    Visit http://alexan.edaboard.eu

    Best regards
    Alex
  • Note: This was originally posted on 2nd July 2012 at http://forums.arm.com

    ARMwizard has been updated to version 3.2.0
    • Added profile for LPC11Axx
    • bug fixes
    To download or read the list of changes visit http://alexan.edaboard.eu

    Best regards
    Alex
  • Note: This was originally posted on 30th July 2012 at http://forums.arm.com

    ARMwizard has been updated to version 3.3.0

    "¢ Added profile for LPC12xx
    "¢ bug fixes

    To download or read the list of changes visit http://alexan.edaboard.eu

    Alex