1 / 19

Programmable Drum Machine

Programmable Drum Machine. System Software Design Engineer: Mac Gainor Western Washington University. Introduction. MCU Specifications Memory Requirements Kernel Choice Kernel Design Overall System Design. MCU. TMS320C6713 DSP Dual Fixed/Floating Point Multipliers

yachi
Download Presentation

Programmable Drum Machine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmable Drum Machine System Software Design Engineer: Mac Gainor Western Washington University

  2. Introduction • MCU Specifications • Memory Requirements • Kernel Choice • Kernel Design • Overall System Design

  3. MCU • TMS320C6713 DSP • Dual Fixed/Floating Point Multipliers • Two Multichannel Audio Serial Ports (McASP) • Two General-Purpose Timers • 15 General-Purpose I/O Pins • Bus Frequency: 225MHz

  4. Memory • 262k Internal RAM Available • Estimated Program Requirement: 10kBytes • 256k Flash ROM Available • Estimated Program Requirement: 25kBytes

  5. Kernel Choice • DSP/BIOS • Scalable Real-Time Multi-Tasking Kernel • Designed for C6000 Series DSP • Real-Time Analysis Tools • Semaphore and Mutual Exclusion Implementation

  6. Kernel Design • Prioritized Kernel Events • HWI • SWI • Tasks • Idle • Kernel Tick Time: 32uS

  7. Hardware Interrupts • McBSPRec Interrupt (Generate Semaphore) • Frequency: 44kHz • Period: 22.7uS • Execution Time: 0.1uS(max) • ADC Receive Interrupt (Generate Semaphore) • Frequency: ~1.6kHz • Period: ~625uS • Execution Time: 0.1uS(max)

  8. Software Interrupts • Clock Interrupts • ADC Receive (Generate Semaphore) • Period: 32uS • Execution Time: .1uS(max) • LCD Transmit (Generate Semaphore) • Period: 32uS • Execution Time: .1uS(max) • UI Task Frequency (Generate Semaphore) • Period: 9.98ms • Execution Time: .1uS(max)

  9. Tasks - Overview

  10. StartTask() • Description: The purpose of the start task is to run initialization code for different hardware and software modules. The start task must initialize interrupts, LCD, and DSK peripherals. • Period: One Shot • Execution Time: ~600mS

  11. ClockTask() • Description: The clock task provides software interrupts at 32uS intervals. The clock task must count up to 312 to reach approximately 10mS. The 10mS SWI is used to post a UITask(). • Period: ~9.98ms(Periodic) • Execution Time: 10uS(max)

  12. CodecTask() • Description: The periodic codec task pends on a codec semaphore and an output buffer mutex. The output buffer is sent to the codec and the next output is calculated. • Period: 2.27uS(Periodic) • Execution Time: 0.45uS(max)

  13. ADCRecTask() • Description: The ADC Receive Task checks to see if a new analog input has been received into an input buffer. If so, it pends on the output buffer mutex and copies the input data to the output array. • Period: 32uS(Periodic) • Execution Time: 0.5uS(max)

  14. UITask() • Description: The user interface task runs every 10mS and polls the GPIO pins looking for a button press. If a button press is found, the LCD display task semaphore is posted for changes to be displayed. • Period: 10mS(Periodic) • Execution Time: 10us(max)

  15. LCDTask() • Description: The LCD task runs when the user interface task posts a semaphore. This task looks for changes in the effects selection and sends appropriate messages to the LCD. • Period: 10mS(Periodic) • Execution Time: 1uS(max)

  16. CPU Load Max Load: 44.70% HWI SWI TASKS

  17. Library Description

  18. System Data Flow

  19. System Data Flow (cont)

More Related