Skip to main content
Version: FILS English

Welcome

Welcome to the Microprocessor Architecture class.

During the class you will learn how to design and implement a hardware device.

You takeaways from the course are:

  • learn how computer hardware works;
  • learning how a microprocessor (MCU) works, using as an example the STM32U5 MCU from the STM32 Nucleo-U545RE-Q and RP2 MCUs from the Raspberry Pi Pico W and Raspberry Pi Pico 2 W;
  • building the hardware device either using a breadboard, a prototyping board or a printed circuit board (PCB);
  • learning how to develop the software that controls hardware in Rust;
  • presenting the hardware device at the PM Fair show.

Team

Alexandru Radovici Alexandru Radovici

Course Professor
GitHub: alexandruradovici
alexandru.radovici@upb.ro

Genan Omer Genan Omer

Responsible for Lab Materials
GitHub: genan2003
genan.omer@stud.fils.upb.ro

Irina Bradu Irina Bradu

Lab Professor
GitHub: Irina Bradu
irina.bradu@upb.ro

Dănuț Aldea Danut Aldea

Lab Professor
Responsible for software
GitHub: danutaldea
danut.aldea@oxidos.io

Andrei Zamfir Andrei Zamfir

Lab Professor
Responsible for hardware
GitHub: ZamfirAndreiPaul
andrei.zamfir@wyliodrin.com

Roy Bachynskyi Roy Bachynskyi

Lab Professor
GitHub: Roy Bachynskyi
roi.bachynskyi@stud.fils.upb.ro

Cristiana Precup Cristiana Precup

Lab Professor
GitHub: cristianaprecup
cristiana.precup@wyliodrin.com

Eva Cosma Eva Cosma

Lab Professor
GitHub: Eva Cosma
eva.cosma@wyliodrin.com

Victor Lișman Victor Lisman

Lab Professor
GitHub: victorlisman
victor.lisman@oxidos.io

Timetable

ActivityGroupDayHourRoomProfessor
Lab1221EAa - first halfThursday12 - 14ED 217Roy Bachynskyi
Lab1221EAb - second halfThursday10 - 12ED 218Irina Bradu
Lab1221EBa - first halfThursday16 - 18ED 218Cristiana Precup
Lab1221EBb - second halfThursday10 - 12ED 218Victor Lișman
Lab1221ECThursday8 - 10ED 218Andrei Zamfir
Lab1221EDa - first halfThursday14 - 16ED 217Eva Cosma
Lab1221EDb - second halfThursday8 - 10ED 217Dănuț Aldea
Lab1221EEAThursday14 - 16ED 218Irina Bradu
Lab1222EBBThursday12 - 14ED 218Omer Genan

Grading

PartDescriptionPoints
Lecture testsYou will have a test at every class with subjects from the previous class.0.2p
Final Lecture testYou will have a test during one of the lectures in May.1.8p
LabYour presence at every lab will be graded.1p
Lab TestA final test at the lab - will scale your lab grade1p
ProjectYou will have to design and implement a hardware device. Grading will be done for the documentation, hardware design and software development.3p
Final TestYou will have to take an exam during the exams session.4p
TotalYou will need at least 4.5 points to pass the subject.11p

Rules

  1. You can be absent without motivation at a maximum of 2 labs.
  2. Labs CANNOT BE RECOVERED
  3. You can justify your absence from the lab (medical reasons) within a maximum of 2 weeks from the date of your absence
  4. Each student must come with their group to the lab, if there are problems you must announce in advance.
  5. You can be late for lab up to 10 minutes
  6. Students who are catching up on the subject can participate at labs only if there are free places
  7. You will need a github account with your full name and a real profile photo
  8. You need at least 4.5 points to pass the exam

Bibliography

Theory

  1. Joseph Yiu, The Definitive Guide to ARM® Cortex®-M23 and Cortex-M33 Processors

Hardware

  1. STMicroelectronics, *STM32U5 ARM 32bit Series Reference Manual
  2. Raspberry Pi Ltd, RP2350 Datasheet
  3. Raspberry Pi Ltd, RP2040 Datasheet
  4. Charles Platt, Encyclopedia of Electronic Components, Volumes 1, 2, 3
  5. Paul Scherz, Simon Monk, Practical Electronics for Inventors, 2nd edition

Software

  1. Steve Klabnik, Carol Nichols, The Rust Programming Language
  2. Rust Team, Rust Embedded, The Discovery book
  3. Raspberry Pi Ltd, Getting started with Raspberry Pi Pico-series

Crates

  1. embassy_rp crate documentation
  2. embassy_rp examples rp2040
  3. embassy_rp examples rp235xa
  4. embassy_stm32 crate documentation
  5. embassy_stm32 examples stm32u5
  6. embassy_stm32 examples stm32f4