...

Mini project ECE 362: Microprocessor Systems and Interfacing

Posted on: 2025-01-03
ECE 362 Purdue University Project Team

published

During the first semester at Purdue University I attended ECE 362. A class based in Microprocessor Systems and Interfacing in which we learned the components and circuits of a microprocessor and how to use and implement them from scratch. The course consisted in two main blocks the lectures and the labs. The labs consisted in programming and implementing all the theoretical knowledge learned in lectures. During the semester we went through this main topics: 

  • Microprocessor set up
  • GPIO
  • Interrupts
  • Timers
  • DMA(Direct Memory Access)
  • DAC(Digital to Analog Conversion)
  • ADC(Analog to Digital Conversion)
  • Instruction decoder
  • Assembly language -advanced
  • Serial Communication Interfaces
    • I2C
    • UART
    • ISP

The workflow was based on weekly work. Two lectures and one lab implementing the topics covered during that week lectures plus a graded homework using a quiz format.

At the end of the semester, the labs related to assembly code didn't require the use of the microprocessor and the motherboard, so professors encouraged as to come up with an idea of a project to implement what we learned for an 8% of the final grade. 

My team was composed of three amazing students and now also good friends of mine.

Since I was an exhange student and therefore new at Purdue a group of three guys (Emiliano, Gideon and Patrick) , that I met during lab sessions, offered me the opportunity to work in this project with them.

We started coming up with different ideas for the projects like a math game, a desk lamp with an integrated clock, etc. But none of them were approved by the GTAs since they were very simple. After three failed attempts Gideon and Emiliano came up with a completely new idea that finally was approved by the GTA. 
After that, we had two weeks to implement our game. It consisted in using the microprocessor connected to four buttons, an LED matrix, a TFT module with SdCard reader, a 8-segment display, and an LCD display to resemble the famous game of the snake. We wanted to give it a twist so we changed the score system instead of points per food eaten we would use the survival time as score. To make it challenging we came up with an idea of adding a count down counter that will increase when eating food.

After all this primary development of the project we started to make it. I was in charge of the SdCard reader included in the TFT module to read and write the highest score in a physical long lasting memory.