A Hybrid Approach to Embedded DSP Laboratory
David Jun, Douglas Jones, Minh Do [email protected] Embedded DSP • Streaming vs. batch data processing Embedded DSP • Streaming vs. batch data processing
Cannot interrupt and change filter on-the-fly! Real- me Data Processing • Sample-by-sample processing
Digital- Analog- Signal Processing to- to-Digital Analog
• Block-based processing
Digital- Analog- Buffers Signal Processing Buffers to- to-Digital Analog A New Hybrid Course
Lab! Platform! Language! FIR filtering! TI c55x DSP! ASM! Sample-by-sample Multi-rate processing! TI c55x DSP! C! IIR filtering! TI c55x DSP! C! Spectrogram! Nexus 7! C/C++! Block-based Image Equalization! Nexus 7! C/C++! Independent group projects begin! Graphical user interfaces! Nexus 7! Java! Group projects continue until end of semester! Embedded Pla orms Processor Power 1000 mW Applica on Processors
100 mW Performance Processors
10 mW Microcontrollers Processor Speed 1MHz – 300MHz 100MHz – 1GHz >1GHz, mul core • Simple sensing/processing • Motor control • Mobile consumer • Embedded interfaces • DSP • Retail point-of-sale • Arduino • Industrial automa on • Raspberry PI
• TI MSP430 • TI C2000 • Qualcomm Snapdragon • Atmel • Microchip PIC32 • TI OMAP • ARM Cortex-M0 • ARM Cortex-M4 • NVIDIA Tegra Embedded Pla orms Processor Power This course 1000 mW Applica on Processors
100 mW Performance Processors Google Nexus 7
10 mW Microcontrollers TI c55x DSP Processor Speed 1MHz – 300MHz 100MHz – 1GHz >1GHz, mul core • Simple sensing/processing • Motor control • Mobile consumer • Embedded interfaces • DSP • Retail point-of-sale • Arduino • Industrial automa on • Raspberry PI
• TI MSP430 • TI C2000 • Qualcomm Snapdragon • Atmel • Microchip PIC32 • TI OMAP • ARM Cortex-M0 • ARM Cortex-M4 • NVIDIA Tegra A New Hybrid Course
Lab! Platform! Language! FIR filtering! TI c55x DSP! ASM! Multi-rate processing! TI c55x DSP! C! IIR filtering! TI c55x DSP! C! Spectrogram! Nexus 7! C/C++! Image Equalization! Nexus 7! C/C++! Independent group projects begin! Graphical user interfaces! Nexus 7! Java! Group projects continue until end of semester!
How do you learn development tools in a week? Simplifying Development
Challenge: accelerate new platform adoption by minimizing extraneous overhead and exposure to irrelevant complexities!
Signal Signal Processing Processing Setup in C Code in Na ve C code Code Memory Memory Exposed ! NDK SDK Setup Code Android OS Audio ADC DMA Interrupts Touch Codec Mic Cam Wireless
Hidden ! screen TI c55x DSP! Google Nexus 7! Experiences from Spring 2013 • Everyone completed structured Android labs Prior Programming Experience 28
14 12 7 6 5
vhdl asm c/c++ java matlab other • Independent project – use the pla orm that fits the project!
Nexus Tablet C55x DSP FPGA VST on PC 11 3 1 1 Independent Projects 2013
Groups that used systema c debugging tended to be successful, regardless of the chosen pla orm
Image Processing! Audio Processing! § Image filtering! § Chessboard annotator! § Adaptive acoustic § Image halftoning! § Hand gesture LMS filtering! recognition! § Video enhancement § Karaoke! in dimly lit Multimodal Processing! § Audio equalizer! environments! § Visual head tracking for § Speech-based person § Handwritten zip code 3d audio! ID! parser! § Music visualizer! § Sheet music reader! Communications! § Multimodal person ID! § FM transceiver!