A compact but powerful, PICAXE microcontroller. Very popular in education due to its low cost and small size, but also very popular in a wide range of hobbyist projects.
This chip supports up to 18 inputs/outputs with 11 analogue/touch sensor channels.
All M2 series parts support enhanced features such as configurable i/o pins, parallel tasks, ring tone music and touch sensor inputs.
Click here for more M2 series information.
The PICAXE-20M2 replaces the older PICAXE-20M chips.
|Memory Capacity (bytes)||2048||2048||2048||2048||4096||4096||4096|
|Byte Variables (bytes)||28||28||28||28||56||56||56|
|Max. Freq. (MHz)||32||32||32||32||64||64||64|
|Tune (ring tones)||Yes||Yes||Yes||Yes||Yes||Yes||Yes|
The same software, BASIC language and USB download cable is shared between all the PICAXE chips.
|PICAXE-20M2 Microcontroller Datasheet||PDF Datasheet|
|M2 Series Product Summary||PDF Datasheet|
Current 20M2 production firmware is version 8.A Known Issues: ISSUE - PAUSE DOES NOT WORK CORRECTLY DURING INTERRUPT ON A MULTI-TASK PROGRAM To workaround this issue use the command 'pause_int' instead of 'pause' within an interrupt in a multi (parallel) task program. Single task programs work correctly. ISSUE - VERY FIRST LINE OF INTERRUPT: ROUTINE SHOULD NOT USE VARIABLES (LET, INC, DEC, IF VAR = etc.) A 'inc' or 'dec' or certain expressions may not work correctly if it is used as the very first line in the 'interrupt:' subprocedure. To workaround this issue add another command, such as 'pause 1', before the let/if command is used within 'interrupt:' ISSUE - PWMOUT BIT1 IS ALWAYS SET TO 0 Bit 1 of the 10 bit duty value value is always written as 0. To workaround this issue use 'pwmduty' or see https://www.picaxeforum.co.uk/showthread.php?27900 ISSUE - USE OF THE SERRXD OR READINTERNALTEMP COMMAND SETS PIN C.5 TO INPUT (IF CURRENTLY OUTPUT) A 'serrxd' or 'readinternaltemp' command will incorrectly make the pin C.5 an input. To workaround this issue use pin C.5 as an input, or issue a 'output C.5' as the next command. ISSUE - USE OF THE CALIBADC COMMAND SETS PIN C.7 TO ANALOGUE INPUT (IF CURRENTLY OUTPUT) A 'calibadc' command will incorrectly make the pin C.7 an analogue input. To workaround this issue use pin C.7 as an analogue input, or issue a 'output C.7' as the next command. Alternately to convert back to a digital input use 'adcsetup = 0' as the next command. ISSUE - CALIBADC IS UNSTABLE AT M32 CLOCK FREQUENCY To workaround this issue use two consecutive 'calibadc' commands to give time for the Vref to settle. ISSUE - CALIBADC MAY BE UNSTABLE AFTER FVRSETUP WITH VALUE OTHER THAN 1.024 Calibadc requires an internal 1.204 Vref. If other Vref value is currently in use (from previous fvrsetup) the first calibadc value read may be unstable. To workaround this issue use two consecutive 'calibadc' commands to give time for the Vref to settle. ISSUE - NAP 1 CAUSES RESET AT K31 CLOCK FREQUENCY To workaround this issue do not use 'nap 1' after 'setfreq k31' All other values (e.g. 'nap 2') work correctly.