Joe Blubaugh Diana Mui David Sutherland Matthew Swallow.

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Jordan Barry Victor Brzeski
Programmable Interval Timer
By: Russ Butler ECE4220 Spring 2012 Dr. DeSouza May 2, 2012.
I/O Unit.
DATA COLLECTION USING ZIGBEE NETWORK Timothy Melton Moscow, ID.
1 Homework Reading –Review previous material on “interrupts” Machine Projects –MP4 Due today –Starting on MP5 (Due at start of Class 28) Labs –Continue.
Interrupts What is an interrupt? What does an interrupt do to the “flow of control” Interrupts used to overlap computation & I/O – Examples would be console.
Design of a Control Workstation for Controller Algorithm Testing Aaron Mahaffey Dave Tastsides Dr. Dempsey.
Midterm Tuesday October 23 Covers Chapters 3 through 6 - Buses, Clocks, Timing, Edge Triggering, Level Triggering - Cache Memory Systems - Internal Memory.
DMX512 Programmable Theater Lighting Controller Jeff Sand and Kris Kopel Advisor: Dr. Don Schertz May 8, 2001.
Coordinate Based Tracking System
Chapter 7 Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats.
INPUT/OUTPUT ORGANIZATION INTERRUPTS CS147 Summer 2001 Professor: Sin-Min Lee Presented by: Jing Chen.
The 8051 Microcontroller and Embedded Systems
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Introduction to Embedded Systems
USART interrupt.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
EE 446 Project Assignment Top Design Sensor Components Pin Assignment and Configuration Completed Physical Setup Project Tasks.
Volume. 1-the idea of the program is to increase, decrease the volume. 2-the program does the following: A-PF8:decrease the volume B-Pf9:increase the.
Lecture Set 9 MCS-51 Serial Port.
CoE3DJ4 Digital Systems Design Chapter 6: Interrupts.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
The iBlueBot By Walid Mnif, Tamer Shadid, Lim Seang FINAL PRESENTATION ECE /24/2003.
Khaled A. Al-Utaibi  Interrupt-Driven I/O  Hardware Interrupts  Responding to Hardware Interrupts  INTR and NMI  Computing the.
Team 6. Code Modules Codec Bluetooth Module Rotary Encoder Menu State Machine.
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
Page 1 D&C EBV Seminar June 2003 Motor Demo C868 Chevillot/Jansen June 2003 N e v e r s t o p t h i n k i n g. Infineon C868 Hands On Training CAPCOM6.
Universal Asynchronous Receiver/Transmitter (UART)
Chapter 8 Serial and Parallel Port Interfacing Valvano’s Intro. To Embedded Systems.
Autonomous Helicopter James LydenEE 496Harris Okazaki.
Advanced Microprocessor1 I/O Interface Programmable Interval Timer: 8254 Three independent 16-bit programmable counters (timers). Each capable in counting.
Atmel Atmega128 Overview ALU Particulars RISC Architecture 133, Mostly single cycle instructions 2 Address instructions (opcode, Rs, Rd, offset) 32x8 Register.
Features of the new Alibava firmware: 1. Universal for laboratory use (readout of stand-alone detector via USB interface) and for the telescope readout.
FLAC Audio Player An ability to decode files stored in the FLAC format. An ability to select files stored on the device. An ability to display visualization.
1 Interrupts, Resets Today: First Hour: Interrupts –Section 5.2 of Huang’s Textbook –In-class Activity #1 Second Hour: More Interrupts Section 5.2 of Huang’s.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Nick Kwolek David Duemeler Martin PendergastStephen Edwards.
©2008 R. Gupta, UCSD COSMOS Summer 2008 Peripheral Interfaces Rajesh K. Gupta Computer Science and Engineering University of California, San Diego.
Humble Hubble Team 18 Tim Brown. Abstract The proposed project is a self-aiming telescope. This telescope will obtain its global position and the local.
Digital Control CSE 421.
CSCI1600: Embedded and Real Time Software Lecture 16: Advanced Programming with I/O Steven Reiss, Fall 2015.
Inside the dsPIC33FJ256GP710. Let’s call it a dsPIC33 PIC uC series made by Microchip Compiler, simulator, other goodies are free Programmable in C Can.
SOFTWARE NARRATIVE PRESENTED BY: JUSTIN LINDLEY Team # 15: Acoustic Storm Interweaving the impressive visual power of electricity and the visceral emotion.
Performed by: Lior Raviv & Zohar koritzki Instructor: Reuven Nisar הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion - Israel institute of technology.
EE/CS-352: Embedded Microcontroller Systems Part V The 8051 Assembly Language Interrupts.
Phillip Byers Jonathan Mulvaine Josh Schortgen Michael Broski TEAM BOAR.
CS-280 Dr. Mark L. Hornick 1 Sequential Execution Normally, CPU sequentially executes instructions in a program Subroutine calls are synchronous to the.
Steve Andre Eric Glover Shaun Greene Russell Willmot.
Team 6. Guitar Audio Amplifier Audio Codec DSP Wireless Adapter Motor Array PC LCD Display LED Arrays Pushbutton or RPG Input Device
Closed Loop Temperature Control Circuit with LCD Display Mike Wooldridge ECE 4330 Embedded Systems.
Microcontroller basics Embedded systems for mortals.
Intel 8259A PIC EEE 365 [FALL 2014] LECTURE 21 ATANU K SAHA BRAC UNIVERSITY.
Transmitter Interrupts Review of Receiver Interrupts How to Handle Transmitter Interrupts? Critical Regions Text: Tanenbaum
Interfacing Touch screen via lpc21xx Resistive touch screens can be a great way to enable complex user input in your projects inexpensively and with a.
Digital Sound Projection ECE 477 Group 6 Software Narrative Steve Anderson Mike Goldfarb Shao-Fu Shih Josh Smith.
1. PIC ADC  PIC18F877 has 8 analog input channels i.e. port A pins(RA0 to RA5) and port E pins(RE1 and RE2). These pins are used as Analog input pins.
Homework Reading Machine Projects
Digital Control CSE 421.
Lesson Objectives Aims Key Words Interrupt, Buffer, Priority, Stack
Homework Reading Machine Projects Labs
Joe Blubaugh Diana Mui David Sutherland Matthew Swallow
CSCI1600: Embedded and Real Time Software
Blinkers ++ Team 5.
Transmitter Interrupts
ECE 477 Digital Systems Senior Design Project  Spring 2006
CSCI1600: Embedded and Real Time Software
Surjo Dutta and David Friedman
Presentation transcript:

Joe Blubaugh Diana Mui David Sutherland Matthew Swallow

Two seperate devices to be programmed DSP (dsPIC33) DFT algorithm performed on audio input Peak detection and frequency analysis SPI communication with micro Micro (PIC24) SPI communication with DSP SPI communication with USB controller UART communication with LCD Menu/push buttons Motor control

Discrete Fourier Transform Peak Detection Frequency information PIC24 dsPIC33 Audio In String Frequencies SPI Where the magic happens…

Tuning mode? Full ADC sample set taken? FFT Peak detect (precise) Build SPI transmission packet Transmit packet over SPI Take more samples Message received from micro? Start Note detect (not as precise) Determine request YesNo Yes Transmission error Mode change Tuning mode MIDI mode

Interrupt driven code ADC triggered on 2800 Hz timer interrupt when sampling SPI Polling loop code FFT on ADC complete Frequency analysis (note, peak detection)

Why the hybrid interrupt/polling approach? ADC sampling rate is timing critical, must be interrupt triggered FFT, frequency calculations must happen after samples taken Calculations should be completed in order and as fast as possible, should not be interrupted. Hence, polling loop is best option for these steps

Frequency Decode SPI1 PWM Motor Control User Interface MIDI Assembly USB Control PWM UART SPI2 Motors LCD Vinculum USB Controller PIC24

Interrupt driven code SPI packet reception from DSP Saves data to circular buffer to be processed later Menu/UI Pushbuttons are externally debounced and attached to EXTINT pins LCD commands added to a circular buffer and serviced by low-priority ISR triggered by 50Hz timer interrupt USB communication via SPI Only active during “MIDI transcription” mode Bytes assembled from MIDI polling loop routine ISR entered on first SPI2 write Highest priority interrupt

More interrupt driven code… Motor control algorithm 20 Hz timer interrupt Timer initialized for 20Hz to set PWM period Interrupt will be enabled and utilized to perform motor control calculations Take frequency information from circular buffer Determine rotation direction which increases frequency Decrease motor speed as frequency becomes close to desired one by varying PWM duty cycle

Determine new motor speed Determine motor directions Start YesNo Determine new motor direction Is this the sixth motor? Write PWMDTY register No Yes Has this positive motor direction been determined? Exit ISR 20Hz timer ISR

Interrupts can be prioritized so that certain ISRs take precedence over previously operating ones LCD timer interrupt (50Hz) USB SPI transmission DSP communication SPI Motor control timer interrupt (20Hz) External push button interrupts (EXTINT)

Polling loop code MIDI transcription Save off pointers to header section for later modification Write corresponding note data to buffer when note changes Either when mode has stopped, or 128 bytes have been acquired, initiate USB SPI interrupt by writing SPI2TXBUF Modify the header sections with number of bytes written to each “track”

Why is the code mainly interrupt-based? Prioritization Certain processes need precedence USB over… well, anything Pushbuttons/UI service before LCD UART transmission Some routines are big… Organization ISRs help to organize code into manageable chunks that happen at discrete periods of time In contrast to… A giant, unruly polling loop where higher priority tasks have to wait for lower ones to complete

Questions?