Skip to content

25. Group Assignment Week 8 - Embedded Programming

This week we are working on embedded Programming individually as well as in group. The following is the group assignment.

Group Assignment

  • Compare the performance and development workflows for other architectures

Group Members:

Microcontroller and Embedded System

Embedded System

System:

A system is an arrangement in which all its unit assemble work together according to a set of rules to perform ore or more tasks.

Embedded system:

As the name suggests, embedded means one thing being attached/fixed to another thing. An embeded system can be described as a computer hardware system having software embedded in it. An embedded system can either be an independent system or it can be a part of a large system. Embeded Systems can also be defined as Microcontroller or microprocessor based system which is designed to perform a specific task

Microcontrollers

A microcontroller is a small and low-cost microcomputer, which is designed to perform the specific tasks of embedded systems The general microcontroller consists of the processor, the memory (RAM, ROM, EPROM), Serial ports, input/output (I/O) peripherals on a single chip. It is also known as an embedded controller or microcontroller unit (MCU).

Microcontroller vs Microprocessor

Types of Microcontrollers

Microntrollers can be divided into various categories based on memory configuration, bit configuration and instruction sets configuration.

Types of Microcontroller based on Bit configuration

8-bit microcontroller:

This type of microcontroller is used to execute arithmetic and logical operations like addition, subtraction, multiplication division, etc. For example, Intel 8031 and 8051 are 8 bits microcontroller

16-bit microcontroller:

This type of microcontroller is used to perform arithmetic and logical operations where higher accuracy and performance is required. For example, Intel 8096 is a 16-bit microcontroller.

32-bit microcontroller:

This type of microcontroller is generally used in automatically controlled appliances like automatic operational machines, medical appliances, etc.

Types of Microcontroller based on Memory configuration

External memory microcontroller:

This type of microcontroller is designed in such a way that they do not have a program memory on the chip. Hence, it is named as external memory microcontroller. For example: Intel 8031 microcontroller.

Embedded memory microcontroller:

This type of microcontroller is designed in such a way that the microcontroller has all programs and data memory, counters and timers, interrupts, I/O ports are embedded on the chip. For example: Intel 8051 microcontroller.

Types of Microcontroller based on Instruction Set configuration

CISC:CISC stands for complex instruction set computer. It allows the user to insert a single instruction as an alternative to many simple instructions.

RISC:RISC stands for Reduced Instruction Set Computers. It reduces the operational time by shortening the clock cycle per instruction.

AVR Microcontrollers

AVR was developed in the year 1996 by Atmel Corporation. The architecture of AVR was developed by Alf-Egil Bogen and Vegard Wollan and the name was derived from its developers and are also known as Advanced Virtual RISC. AVR Microcontrollers are available in 3 categories;

TinyAVR:Less memory, small size, suitable only for simpler applications

MegaAVR:These are the most popular ones having good amount of memory (upto 256 KB), higher number of inbuilt peripherals and suitable for moderate to complex applications.

XmegaAVR:Used commercially for complex applications, which require large program memory and high speed. Comparison between the 3 types of AVR microcontrollers:

Comparison of Microcontrollers

In our group, there are six members. For the purpose of Input and Outputs, the team members are making use of controllers that satisfy their need for the final projects as well. There are three four members making use of ESP32 controller board for the Final Project while two members are using Atmega328 for their final Project. Two members of the team are currently working with the Attiny44 controller board to work with their Input and Output devices.

Therefore, we have compiled below the comparative specificated of different controllers in use in the group.

Controller Attiny44 ESP32 Atmega328
Pins 14 Pins 40 Pins 32 Pins
GPIO 12 39
5 SPI Pins
4 Input only
23 Programmable I/O Lines
Bit Size 8-Bit Xtensa dual-core (or single-core) 32-Bit LX6 microprocessor 8-Bit
Memories 8K byte of In-System Programmable Flash
128/256/512 bytes EEPROM
128/256/512 bytes SRAM
32 general purpose working registers
320 KiB RAM, 448 KiB ROM 4/8/16/32KBytes of In-System Self-Programmable Flash program memory
256/512/512/1KBytes EEPROM
512/1K/1K/2KBytes Internal SRAM
Speed 0-8MHz@2.7-5.5V
0-16MHz at 4.5-5.5V
160 or 240 MHz and performing at up to 600 DMIPS 0-4MHz@1.8-5.5V
0-010MHz@2.7-5.5.V
0-20MHz@4.5-5.5V
Voltage 5V 3.3V 5V
Architecture AVR enhanced RISC architecture Xtensa LX7 dual-core microprocessor or a single-core RISC-V Advanced RISC Architecture
Programmer ISP/FTDI FTDI/USB SMD/FTDI
Remarks - There are different variants of the ESP board with difference in Pin Configurations and Memories

Files

Datasheet of Different Controller Boards
The links to the datasheet of different controller boards is linked below:

  1. Attiny44 Datasheet
  2. ESP32 Datasheet
  3. Atmega328 Datasheet