Microcontrollers

What is a Microcontroller?
List_of_ARM_processors

Development Platforms

Arduino

Arduino – Open-Source Microcontrollers running C/C++.
https://www.arduino.cc/
https://en.wikipedia.org/wiki/Arduino
https://www.arduino.cc/en/hardware
Started with Atmel AVR 8-Bit and 32-Bit CPUs and expanded to include ARM Cortex-M Series 32-Bit CPUs.
https://learn.sparkfun.com/tutorials/what-is-an-arduino/all

Raspberry Pi

Raspberry Pi – Open-Source Single Board Computer.
https://www.raspberrypi.com/
https://en.wikipedia.org/wiki/Raspberry_Pi
https://www.raspberrypi.org/
Started with Broadcom SoC ARM-11 32-Bit CPUs and now use Broadcom SoC ARM Cortex-A Series 64-Bit CPUs.

Purpose Built Industrial Microcontroller

Interconnects

List of Network Buses

CAN Bus – A Controller Area Network Bus
https://en.wikipedia.org/wiki/CAN_bus
https://en.wikipedia.org/wiki/CAN_FD
Traditionally found in automobiles but has spread to other domains. CAN is a multi-master serial bus standard for connecting two or more nodes on a CAN network. Physically it’s a differential wired-AND signal bus over CAN High (CANH) and CAN Low (CANL) wires. It’s usually 0 Volts to +5 Volts with <100 to 120 Ohm terminations at each end and should be −27 Volt to +40 Volt tolerant.

Ethernet – Used to connect devices with RJ45 connectors.
https://en.wikipedia.org/wiki/Ethernet
https://en.wikipedia.org/wiki/Ethernet_over_twisted_pair
Ethernet is logically a shared bus medium especially over coaxial cable or when using hubs, although newer implementations use a physical star topology with switching over two twisted pairs or more commonly four twisted pairs of copper wires or fiber optic links.

I²C – Inter-Integrated Circuit; also called I2C and IIC
https://en.wikipedia.org/wiki/I%C2%B2C
Synchronous multi-master/multi-slave packet switched single-ended serial communications bus widely used to connect lower-speed peripheral integrated circuits to processors and microcontrollers usually across different circuit boards. Uses only two bidirectional lines: Serial DAta line (SDA) and Serial CLock line (SCL) both with pull-up resistors to Vdd which is typically +3.3 Volts or +5 Volts.

JTAG – Named after: Joint Test Action Group
https://en.wikipedia.org/wiki/JTAG
JTAG is used to access sub-blocks of integrated circuits for device, board, firmware, and system testing, debugging, diagnosis, and fault isolation usually on embedded systems. Uses a four wire interface with Test Data In (TDI), Test Data Out (TDO), Test Clock (TCK), and Test Mode Select (TMS) Pins with an optional fifth Test Reset (TRST) pin. Usually used at chip levels of typically 0 Volts to +3.3 Volts or +5 Volts.

RS-232 – Point-to-point low-speed serial data link using unbalanced signaling.
https://en.wikipedia.org/wiki/RS-232
Uses a minimum of three wires for Transmitted Data (TXD) and Receive Data (RXD) along with a ground (GND). Can be -15V to +15V or ran down to -3V to +3V but must withstand open circuit voltages of -25 Volts to +25 Volts.

RS-422 – Point-to-point or multi-dropped high-speed serial data link using differential signaling
https://en.wikipedia.org/wiki/RS-422
A minimum of one twisted pair of copper wire can be used for half-duplex operation but usually two pairs (4 wires) are typically used for TX+, TX-, RX+, and RX- lines for full-duplex applications. Uses a single termination resistor at the end of the cable based on the cable impedance and is supposed to be installed at the receiving end of each pair. Uses 0 Volt to +5Volt signals and each line should be -6 Volt to +6 Volt tolerant.

RS-423 – Point-to-point or multi-dropped high-speed serial data link using unbalanced signaling
https://en.wikipedia.org/wiki/RS-423
Uses a minimum of three wires for Transmitted Data (TXD) and Receive Data (RXD) along with a ground (GND). Uses a -5V to +5V signal and each line should be -6V to +6V tolerant.

RS-485 – Point-to-point, multi-dropped, and multi-point high-speed serial link using differential signaling
https://en.wikipedia.org/wiki/RS-485
Used for computer and industrial automation systems and protocols. Uses a minimum of three wires with data transmitted over the A/D- and B/D+ wires (usually together as a twisted pair) with the C/SC/G wire used as a ground reference (but technically could use 5 wires for full-duplex). Uses a termination resistor at each of the cable based on the cable impedance as part of a resistor bias network to pull-up/pull-down the data lines to default values. Uses a 0 Volt to +5 Volt signal and each line should be -7 Volts to +12 Volts tolerant.

SPI – Serial Peripheral Interface
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface
Synchronous serial links used primarily in embedded systems for communications between integrated circuits. Uses four logic signals: Serial CLocK (SCLK), Main Out Sub In (MOSI), Main In Sub Out (MISO), and Chip Select (CS) which is active on a low signal. Usually used at chip levels of typically 0 Volts to +3.3 Volts or +5 Volts.

USB – Universal Serial Bus – Point-to-Point serial links using differential signaling
https://en.wikipedia.org/wiki/USB
https://en.wikipedia.org/wiki/USB_communications
Traditionally used to connect computers to peripherals. Uses a minimum of one twisted pair of copper wire with the data transmitted over the D- and D+ wires (usually together as a foil-wrapped twisted pair along with Vbus and GND wires). Uses a 0 Volt to +3.6 Volt signal and each data line should be 0 Volt to +5 Volt tolerant.