Skip to main content

Microprocessors and -controllers

    audiobook of data sheet ATtiny212_412 recitation
      presentation literature explaining working with AVRs microcontroller vs -processor

      MCU

      An MCU is a group of microcontroller units that share a common architecture, design, and often the same core features

        ARM Cortex-M is a popular MCU family, where multiple manufacturers like STMicroelectronics, NXP, and Microchip produce MCUs that are based on the ARM Cortex-M core. AVR is another MCU family, famously used in the Arduino platform. PIC is a family of MCUs from Microchip Technology, with a range of devices from small 8-bit controllers to more powerful 16-bit and 32-bit versions.

        Within each MCU family, you’ll typically see models that differ by features like:

          Flash memory size RAM size Clock speed Number of GPIO pins Peripheral support (e.g., UART, SPI, I2C, timers, etc.)

          In-System Programming (ISP)

            the act of programming a microcontroller while it is already mounted on the board Contrary to Pre-Programming. You program the contro

            CMSIS-DAP Devices are all devices that can write programs into a microcontroller's memory using JTAG or SWD. ler before soldering it somewhere.

            Available Controllers

            At least 5 of each:

              SEEEDSTUDIO XIAO SAMD21 NO HDRS SEEEDSTUDIO XIAO ESP32C3 NO HDRS SEEEDSTUDIO XIAO ESP32S3 NO HDRS SEEED STUDIO XIAO RP2040 ARDUINO ATSAMD11C14A-SSUT ATSAMD21E18A-AUT ATTINY412-SSFR ATTINY1624-SSFR ATTINY3226-SU AVR128DB32-I/PT
              Xiao RP2040 Pico RP2040 ESP32C3 ESP32S3 SAMD21 ATSAMD11C14A-SSUT ATSAMD21E18A-AUT ATTINY412-SSFR ATTINY1624-SSFR ATTINY3226-SU AVR128DB32-I/PT Type ARM Cortex-M0+ ARM Cortex-M0+ ARM Cortex-M0+ ARM Cortex-M0+ Frequency 133MHz 133MHz 160 MHz 240 MHz 48MHz 48MHz 48MHz 20MHz 20MHz 20MHz 24MHz SRAM 264KB 264KB 400 KB 8MB 32KB 4KB 32KB 256B 2KB 3KB 16KB onboard memory 2MB 2MB 4MB 8MB 256KB 16KB 256KB 4KB 16KB 32KB 128KB I/O-Pins 11 26 11 11 11 12 26 6 12 18 25/26 (1x only In) ADC 4 3 3 9 11 5 6 6 9 15 13 DAC 0 0 0 0 1 1 1 1 0 0 1 Package SOIC-14 TQFP-32 SOIC-8 SOIC-14 SOIC-20 TQFP-32 Price 4,68 $ 5 $ 4,99 $ 7,49 $ 5,4 $ 1,58 $ 4,03 $ 0,59 $ 1,01 $ 1,29 $ 2,06 $

              RP2040 (Raspberry Pi Pico)

              Toolchain:

                Primary: Pico SDK (C/C++), CMake Alternatives: Arduino IDE (via Arduino-Pico Core), MicroPython/CircuitPython

                Workflow:

                  Write code in C/C++ or Python. Build with CMake (Pico SDK) or Arduino IDE. Flash via USB (UF2 bootloader) or SWD debugger (e.g., Picoprobe).

                  Efficiency Tips:

                    Use Visual Studio Code with the Pico SDK extension for CMake integration. Leverage Picoprobe (a second Pico) for debugging.

                    ESP32 (Espressif)

                    Toolchain:

                      Primary: ESP-IDF (C/C++), PlatformIO Alternatives: Arduino IDE (via ESP32 Core)

                      Workflow:

                        Develop in C/C++ (ESP-IDF) or Arduino framework. Build with ESP-IDF CLI or PlatformIO. Flash via USB (esptool.py) or OTA updates.

                        Efficiency Tips:

                          PlatformIO streamlines ESP-IDF/Arduino workflows. Use ESP-Prog or JTAG for advanced debugging.

                          SAMD21/SAMD11 (Atmel/Microchip)

                          Toolchain:

                            Primary: Atmel/Microchip Studio (C/C++) Alternatives: Arduino IDE (via SAMD Core)

                            Workflow:

                              Code in C/C++ (Microchip Studio) or Arduino. Build and flash via USB (UF2 bootloader) or EDBG/SWD.

                              Efficiency Tips:

                                Use Arduino IDE for simplicity; enable verbose upload for debugging. For low-level control, use CMSIS libraries in Microchip Studio.

                                Attiny/AVR128 (AVR Family)

                                Toolchain:

                                  Primary: AVR-GCC + AVRdude Alternatives: Arduino IDE (via ATTiny Core)

                                  Workflow:

                                    Write code in C/C++ or Arduino. Compile with AVR-GCC or Arduino IDE. Flash via ISP programmer (e.g., USBasp, Arduino-as-ISP).

                                    Efficiency Tips:

                                      Use PlatformIO for project management. For tinyAVR (e.g., ATtiny85), optimize code size with -Os compiler flag.

                                      General Workflow Optimization Tips

                                        Unified Environments:

                                          PlatformIO (VS Code) supports all listed MCUs, reducing toolchain setup time. Arduino IDE (with board managers) simplifies entry-level development.

                                          Debugging Tools:

                                            SWD/JTAG: Use for RP2040, ESP32, SAMD21 (e.g., Segger J-Link, CMSIS-DAP). Serial Monitor: Essential for ESP32/RP2040 debugging.

                                            Version Control:

                                              Use git for code management; track dependencies (e.g., submodules for Pico SDK).

                                              Automation:

                                                Write Makefiles or use PlatformIO scripts for CI/CD pipelines.

                                                QFP mit Beinchen seitlich
                                                TQFP ohne Beinchen
                                                Soic-8 8 Beinchen
                                                Punkt oder Kerbe kennzeichnen Pin 1

                                                Putting code onto it

                                                In-System Programming (ISP)

                                                  the act of programming a microcontroller while it is already mounted on the board Contrary to Pre-Programming. You program the contro

                                                  CMSIS-DAP Devices are all devices that can write programs into a microcontroller's memory using JTAG or SWD. ler before soldering it somewhere.

                                                  Serial Peripheral Interface (SPI)

                                                    A standard synchronous serial communication interface used for short-distance communication between a main device and one or more peripheral devices. synchronous (needs clock signal), serial communication multiple secondary devices are possible full-duplex pins:
                                                      MOSI (main out secondary in) MISO (main in secondary out) SCK (clock) SS (secondary select): select which secondary device to communicate with

                                                      Serial Peripheral Data Interface (SPDI)

                                                        do not find any source for it

                                                        Joint Test Action Group (JTAG)

                                                          eletronics manufacturers committee they developed a protocol with the same name mostly used for programming ARM cores pins
                                                            TMS: mode select TCLK: clock TDO: data out TDI: data in nRESET: reset (optional)

                                                            Serial Wire Debug (SWD)

                                                              two-pin variant of the JTAG protocol most common on newer ARM chips pins:
                                                                swdio: in/out swclk: clock

                                                                Unified Program and Debug Interface (UPDI)

                                                                  proprietary single-wire, bi-directional, half-duplex asynchronous can use off-the shelf UART adapters used to program AVR microcontrollers released since 2016, ATTINY412, ATTINY164. more detailed blog article debugging is hidden behind a proprietary interface, but even though you can snoop on the protocol with just a serial adapter and even though the large scale structure of the protocol is known too even more detailed article i did not find out what part of the protocol actually is proprietary and what not.

                                                                  Difference between microcontroller and -processor

                                                                  ...