Developed Embedded System using 8051
Overview
As a part of the course work for the subject Embedded System Design. I Built an 8051-development board utilizing an AT89C51RC2 chip with a 32KB NVSRAM to increase the storage. Designed oscillator, reset, and power conditioning circuits to decrease voltage from 9V to 5V. Interfaced AT89C51RC2 with RS232 using MAX232 IC and charge pump circuitry to talk to the controller through a USB port. Developed drivers to interface EEPROM using I2C bit banging and integrated an SPI-based DAC module to demonstrate its advantages. Also implemented memory mapping and UART communication using interrupts and timers.
Developed PCB Board
Front side of PCB Board
Back side of PCB Board
Labs Performed in this Course
The coursework for the subject involved a series of four progressively challenging labs focused on the development of an Embedded system using the AT89C51RC2 controller. Each lab was meticulously designed to provide a comprehensive understanding of various embedded system concepts, while also enhancing hardware skills and debugging capabilities.
These labs served as invaluable learning experiences, allowing me to gain hands-on knowledge in designing, implementing, and troubleshooting Embedded systems. I successfully completed each lab, and I have attached the corresponding lab reports below for your reference.
These practical exercises not only expanded my technical expertise but also reinforced my ability to apply theoretical concepts to real-world scenarios. The acquired skills in hardware development, debugging, and system integration will undoubtedly prove beneficial in future projects and endeavors within the field of Embedded systems.
Lab 1
The main objective of this lab 1 is to understand the following concepts;
Basics of 8051 Microcontroller
Assembly language coding
Explore different tools for running assembly language code and flashing onto the EFM8BB1 board.
Understanding WINCUPL and WINSIM for SPLD logic.
Soldering, Wire wrapping, and assembling of components on the given PCB.
Familiarize yourself with the Logic analyzer part, Oscilloscope, and chip programmer.
Lab 2
The main objective of this lab 2 is to understand the following concepts;
Working assembly code for LED blinking with timer interrupts.
Understand how to flash NVRAM(EPROM) using python chip-prog Hardware.
Hooking up a logic analyzer to see the state mode and time mode analysis of the design.
Understand the time calculations for the longest and shortest ISR execution.
Understand Timing parameters such as TLLP.
Connect AT89C51RC2 to test the code that successfully worked on the C501 controller by enabling the lowest security.
RS232 connection and understanding the working of it and the necessity of MAX232.
Use the Flip tool to enable circuit flashing of the microcontroller.
Lab 3
The main objective of this lab 3 is to understand the following concepts.
Configure a terminal emulator program on a host computer to communicate over the serial port.
Configuring the hardware to use the NVSRAM as additional XRAM data memory for data reads and writes in the address range of 0x0400-0x7FFF. Which will provide a total of 32KB of system data memory (1KB of XRAM built into the Atmel AT89C51RC2 + 31KB in the NVSRAM).
Assembling PAULMON2 with the as31 assembler and understanding PAULMON2 commands in the terminal emulator by adding extra. asm on top of PAULMON2.
Learn how to use a compiler (e.g. SDCC) to develop C programs.
Learn how to initialize hardware properly in C and to understand Programmable Counter Array.
Continuing ARM STM32 dev board learning with Bare metal coding.
Lab 4
The main objective of this lab 3 is to understand the following concepts.
Understand I2C protocol and implement I2C using Bit bang technique.
We will add a serial EEPROM to our hardware. Implement a bit-banged interface to the EEPROM.
Adding an LCD (with an HD44780 LCD controller) to our board. Implementing an LCD device driver with the SDCC C functions. Learning how to use multiple interrupts and how to handle all interrupts in SDCC.
Understanding of CGRAM to display custom characters on LCD.
Understanding the SPI interface using 8-bit DAC MCP4802 and continuing learning on the ARM board.