Skip to content
This repository has been archived by the owner on Jun 1, 2024. It is now read-only.

Programmable devices

Scrappers Team edited this page Oct 14, 2022 · 9 revisions

Programmable devices represent the core for operating the embedded projects

They can be categorized into MCUs (Microcontroller uints) and MPUs (Microprocessing uints) in general.

Here is a short comparison of the major differences:

MCU MPU
Simple reduced instruction set (RISC) Extended instruction set
Cheap Expensive
All the components are on the same package Components (ram and gpu) are separated around the cpu
On-chip Flash memory and EEPROM External flash ROM (SdCard, BIOS/UEFI CHIPs)
Doesn't support an OS bootloader Supports an OS bootloader (the Arm-A genre)
Doesn't support GPU and monitor processing Supports GPU and monitor processing
Arduino Uno/Nano/Mega - ATMega32A/328p/16/128 - PIC Arduino Due/Protenta - Arm Cortex M0/0+/3/3+/5/5+ - Raspberry Pi4b Arm-A - Beaglebone
image image
image image
image image
image image
image

Embedded devices architectures:

  • Hardware organization (pinout - architectural diagrams).
  • Event triggered architecture.
  • Time triggered architecture.
  • Polling architecture.
  • Programmable logic.
  • Mapping the device architectures to software design patterns.

Popular drivers and protocols:

  • GPIO (General purpose input/output).
  • USART or RS232 interface (Universal Synchronous/Asynchronous Receiver Transmitter).
  • SPI (Serial Peripheral interface).
  • ADC Protocol (Analog-Digital Converters, uses SPI internally).
  • I2C or TWI (Two wire serial interface).
  • PWM (Pulse width modulation).
  • ISP (In-serial programming interface, uses SPI).
  • File Systems.
  • Server sockets.

Tools used:

  • Compilers and linkers.
  • Debuggers.
  • ISP Programmers (In-Serial Programmers).
  • IDEs (Integrated development environments), e.g: Arduino IDE, MPLab.X IDE, Eclipse and CLion...

Where to study more about the differences to decide your work ?

General Specific Architectures
image image
image
image

Which one to choose ?

According to your preferences and some other factors (for example what's the programming language you want to use, the type of projects you do and the expertise level you are currently in).