Monday, 25 December 2023

PIC Course with IIT Bombay

 Embedded Lab Course with PIC18F4550

by IIT Bombay 2017-18


Overview: Below course was conducted as an outreach initiative of Wadhwani Electronics Lab, IITB under the Virtual Labs Project by the Ministry of Human Resource and Development (MHRD), GOI. The controller used in this course is a PIC18F4550 based development board we designed and manufactured at WEL. This course will help you in adapting any other μController platform, design & develop an embedded system, interface variety of peripherals & implementing various communication protocols.

Prerequisites: Knowledge of μC, embedded-C programming, MPLAB IDE, debugging, comm. Protocols

Getting things done: Installing MPLAB and Introduction to PIC board
 
Kindly go through this video tutorial. This board is powered by USB. For programming the device, USB bootloader mode is used as it's much faster and economical to program than PIC emulator by Microchip. Linker file provided is necessary to build program with this controller.


Check FAQs section incase of any queries or comments below. Do not get confused with header files used in code. It's just a means to shorten the length of the program. The syntax might change as per controller used but the algorithm remains the same. The below course is strictly performed on PIC18F4550 board. If you are using any other μC, study it's Datasheet thoroughly. 

Revision of basics of C- programming:
  • Store 10 different numbers in 10 consecutive memory locations. Then clear these memory locations (Use array to store numbers in memory and its pointer to clear content)
  • Find the sum of N numbers starting from 1 and store the partial sum values in N consecutive memory locations. Your program should result in having 1, 3, and 6 in initial memory locations. The value of N should be taken between 10-20.
  • C-program to read 10 numbers from one set of location and copy these numbers to a different set of location.
  • C-program to sort 5 numbers (stored in memory location) in an increasing order using any sorting algorithm. Store the sorted numbers in some other memory location. (contents of the original array should not be destroyed or re-ordered.)

    Solution

Saturday, 13 October 2018

RTOS


Embedded Systems & RTOS

Pune University study material

uCosII:

  • Multitasking in μCOS II RTOS using minimum 3 tasks on ARM7.
  • Semaphore as signaling & Synchronizing on ARM7.
  • Mailbox implementation for message passing on ARM7.
  • Queue implementation for message passing on ARM7.

Cortex:

  • Interfacing LPC1768 to Seven Segment


  • Generation of PWM Signal for Motor Control using LPC1768


Linux:

  • Download pre-configured Kernel Image, File System, bootloader to target device- ARM9.



  • Writing simple application using embedded Linux on ARM9.



  • Writing Program to blink LED on ARM9 with Linux
  • Writing “Hello World” device Driver. Loading into & removing from Kernel on ARM9 board

DIP

Digital Image Processing

Pune University study material


    • To perform basic operations on images


    • To perform conversion between color spaces


    • To Write a Program without using direct functions to perform Histogram equalization


    • To implement smoothing & sharpening filters in Spatial domain


    • To implement frequency domain filters- Smoothing and sharpening filters


    • To perform image restoration -create a noisy image and filter it using suitable filter


    • Write a program without using direct functions to perform edge detection


    • To implement morphological operations-erosion, dilation, opening and closing on binary image

VLSI

VLSI Design & Technology

Pune University study material

  •   Design and Implementation of 4 bit ALU using VHDL
  • Design and Implementation of Universal Shift Register using VHDL
  • Design and Implementation of FIFO Memory using VHDL
  • Design and Interfacing of LCD With FPGA
  • Design of CMOS Inverter, NAND, NOR, Half Adder
  • Design of CMOS 2:1 Multiplexer
  • Design of CMOS single bit SRAM.

Tuesday, 22 May 2018

Interrupt controller

Interrupt controller The Vectored Interrupt Controller (VIC) accepts all of the interrupt request inputs and categorizes them as Fast Interrupt reQuest (FIQ), vectored Interrupt ReQuest (IRQ), and non-vectored IRQ as defined by programmable settings. The programmable assignment scheme means that priorities of interrupts from the various peripherals can be dynamically assigned and adjusted. FIQ has the highest priority. If more than one request is assigned to FIQ, the VIC combines the requests to produce the FIQ signal to the ARM processor. The fastest possible FIQ latency is achieved when only one request is classified as FIQ, because then the FIQ service routine does not need to branch into the interrupt service routine but can run from the interrupt vector location. If more than one request is assigned to the FIQ class, the FIQ service routine will read a word from the VIC that identifies which FIQ source(s) is (are) requesting an interrupt. Vectored IRQs have the middle priority. Sixteen of the interrupt requests can be assigned to this category. Any of the interrupt requests can be assigned to any of the 16 vectored IRQ slots, among which slot 0 has the highest priority and slot 15 has the lowest. Non-vectored IRQs have the lowest priority. The VIC combines the requests from all the vectored and non-vectored IRQs to produce the IRQ signal to the ARM processor. The IRQ service routine can start by reading a register from the VIC and jumping there. If any of the vectored IRQs are pending, the VIC provides the address of the highest-priority requesting IRQs service routine, otherwise it provides the address of a default routine that is shared by all the non-vectored IRQs. The default routine can read another VIC register to see what IRQs are active

PIC Course with IIT Bombay

 Embedded Lab Course with PIC18F4550 by IIT Bombay 2017-18 Overview: Below course was conducted as an outreach initiative of Wadhwani Elect...