During my undergraduate years I had a keen interest in embedded systems, especially in micro controllers and real time systems. I started with writing simple programs using 8086 assembly language and learnt the concepts behind interfacing ICs with microprocessors. This helped me to postulate the design of a microprocessor based incandescent lamp brightness control system. Later, in one of my most interesting projects, I used the parallel port of a computer to interface a circuit containing 7-segment LEDs, where the goal was to display rolling text on a set of seven segment LEDs. Control systems formed the foundation for most of my classes in Instrumentation. A mathematical model of a gravity flow tank using Matlab Simulink is proposed and its behavior is analyzed in the presence of a flow controller. Virtual instrumentation is an emerging field where an instrument can be fully constructed and tested using a software tool. Labview is one such tool and we use it to build a virtual Linear Variable Differential Transformer (LVDT) which allows us to study its behavior under different configurations. Following is the list of projects in this page,
Scrolling Text on Seven Segment Displays Using A Computer's Parallel Port
Mathematical Modeling Of A Gravity Flow Tank Using Matlab Simulink
Fading Effects For An Incandescent Lamp Using an 8086 Microprocessor
Virtual Instrumentation - Linear Displacement Measurement Using Inductive Transducers
Scrolling Text on 7-Segment Displays Using A Computer's Parallel Port
This project was done at BITS, Pilani during Spring 2005. Thanks to my collaborator K.S Srinidhi.
The goal of this project is to display a scrolling text on to a set of 7-segment LEDs. We use the parallel port (printer port) of a computer to send data to the 7-segment displays. A computer program asks the user to enter a text which is displayed scrolling through the seven-segment displays. The program also allows users to enter the scrolling speed and to specify the number of 7-segment LEDs. An important concept illustrated by the project is the time division multiplexing. Note that all the 7-segment displays share a common data bus. The PC places the 7-segment code for the first digit/character on the data bus and enables only the first 7-segment display. After delay of a few milliseconds, the 7-segment code for the digit/character is replaced by that of the next charter/digit, but this time only second 7-segment LED is enabled. After the display of all characters/digits in this way, the cycle repeats itself over and over again. Because of this repetition at a fairly high rate, there is an illusion that all the digits/characters are continuously being displayed. For each type of character/digit, a particular combination of signals is sent to the 7-segment LED, the details of which can be found in the README file. A shift register is used to enable exactly one of the seven segment displays. Since the displays used are common cathode type, it is enabled by making its ground pin low. The shift register’s output pins are connected to the ground pin of each of the displays and in each cycle it sends out a specific combination such that only one 7-segment display is enabled at a time.
Downloads: Readme Source Code Simulation [console output] Implementation Details Fonts
Figure: Chasis Layout
Figure: Circuit Diagram
Mathematical Modeling Of A Gravity Flow Tank Using Matlab Simulink
This project was done at BITS, Pilani during Spring 2005, as part of a class on ‘Industrial Instrumentation & Control’ under the guidance of Prof. Surekha Bahnot.
The goal of this project is to model a gravity flow tank using Simulink and study its behavior in the presence of a flow controller. A mathematical model is the use of mathematical language to describe the behavior of a system. A mathematical model of the system (usually a set of differential equations) is solved by numerical methods, and the results are shown in a graphical format preferably printed as plots with time as the abscissa. A good understanding of the dynamic response of systems is required if they are to be controlled effectively. MATLAB - Simulink is used to present a dynamic simulation of a gravity-flow tank. Simulink is a software package for modeling, simulating, and analyzing dynamical systems. It supports linear and nonlinear systems, modeled in continuous time, sampled time, or a hybrid of the two. Systems can also be multivariate, i.e., have different parts that are sampled or updated at different rates. Our aim is to build a simulation such that one can monitor the liquid level (in the tank) and the outflow rate for different values of inflow rates, which may also be a function of time. Finally, we implement an On/Off output flow controller so that a desired output flow is achieved at steady state.
Downloads: Source Code Project Report
Figure: Block diagram with feedback control. Sub-systems: TANK and PIPE.
Figure: Change in output flow rate over time (without any flow control mechanism).
Figure: Change in output flow rate with On/Off controller. Desired steady-state velocity: 3ft/s
Fading Effects For An Incandescent Lamp Using an 8086 Microprocessor
This project was done at BITS, Pilani during Spring 2004 as part of a class on ‘Microprocessor Programming and Interfacing’.
The goal of this project is to design a microprocessor based system for controlling the intensity of an incandescent lamp. Two push button switches are provided, one for switching on the lamp and the other for switching off the lamp. When the On switch is pressed momentarily, the intensity of the lamp is varied from zero to maximum value within the time specified in the memory location FADEIN, only when it is previously in an OFF state. Similarly on pressing OFF switch, the lamp should be switched off only if previously it has been in the ON state, from full intensity to zero intensity within the time period specified at the memory location FADEOFF. The values at FADEIN and FADEOFF should be set by the user. The intensity of the lamp and nature of bulb should also be considered while designing. The key component in our design is the Triac (Triode for alternating current) which when triggered conducts current to the lamp until the current drops a below threshold.
Downloads: System Description Circuit Diagram Source Code [8086 Assembly]
Figure: Circuit Diagram
Virtual Instrumentation - Linear Displacement Measurement Using Inductive Transducers
This project was done at BITS, Pilani during Fall 2004, as part of a class on ‘Transducers and measurement systems’ under the guidance of Prof. Surekha Bahnot.
Differential transformers are used to measure very small displacements of the order of millimeters, while the variable-inductance transducers are used to measure reasonably larger displacements of the order of a few inches. The goal of this project is to simulate a Linear Variable Differential Transformer (LVDT) using a software tool called Labview (version 6.1). The device thus constructed is called a virtual instrument (VI). The LVDT is an electro-mechanical device designed to produce an AC voltage output proportional to the relative displacement of the transformer and the armature. In this VI the user is free to manipulate the various parameters governing the construction of the LVDT such as core length, core permeability, number of turns of the coils, excitation voltage, frequency, etc. The user can also set parameters according to a desired linearity range. The VI enables real-time testing by providing a slider control to directly control the position of the core and simultaneously displays the outputs. A plot of the output voltage versus the displacement can also be obtained to test the linearity range of operation.
Downloads: Design Document Source Code
Figure: Front Panel
Figure: Internal design and logic
Embedded Systems - Assembly Programming
Includes the following programs written in assembly language,
Program to generate a pseudo random sequence. The code generated must be an 8-bit orthogonal Walsh code.
A Set of 10 signed nmbers are stored from location DATA in RAM. Seperate out the even parity numbers and store them from location EVEN, seperate out the odd parity numbers, and store them from location ODDD. Arrange the even parity numbers in ascending order and odd parity numbers in descending order.
Assume that eight boolean variables are stored at location DATA with the following bit assignment: 7 6 5 4 3 2 1 0 ==> x7 x6 x5 x4 x3 x2 x1 x0. write a program to evaluate the boolean expression: 7x2x1x0 + x3x0 + x5x4x3
Downloads: Source Code
Hardware Configuration Layer for ST Nomadik System on Chip (SoC)
This work was done at STMicroelectronics, Noida during 2005 - 2006 as part of my final year undergraduate practice school project. My role as an intern involved in the development and testing of Hardware Configuration Layer (HCL) for a set of communication IPs on ST Nomadik SoCs. In the first phase of the project, developed a stress testing framework, which was used to perform and analyze mass data transfer within components (like I2C, SSP- synchronous serial port, MSP, UART, etc.) in the SoC. Later part of my work involved the development of HCL for USB controllers from two different vendors. The work required me to study the ARM processor architecture, SoC system specs and device driver concepts. Chip level debugging was done using Lauterbach Trace32, CATC USB analyser, etc. Project Report and related info available on request.
Modifying SimpleScalar Branch Predictor