Title: Senior Design Partnership:
1Senior Design Partnership AmpTraXX2
2About Group 13
Matt Webb Electrical Engineering Earl
Maier  Electrical Engineering         Â
   Minor in Mathematics Talitha Rubio
Electrical Engineering                 Â
Computer Science Minor Daren Ruben Electrical
Engineering
25 Years of Alcorn McBride Experience
3Overview
Goal Create a system that is capable of
processing many channels of audio and
distributing them over standard Ethernet networks
to break-out boxes providing audio channel
selection, signal level audio outputs, and a
Class-D amplified output.
- Reliable
- Network Configurable
- Easily Scalable
- Zero Maintenance
- Very Flexible
4Application Example
- Annual events (Ex. Halloween Horror Nights)
- Problem New environments require changes in
audio distribution and filtering - Solution Ethernet enables you to easily send
signal to anywhere within an existing network.
 Just plug in an AmpTraXX2 unit to add a new
speaker. Â For environments that are being
modified, select a different channel for sound
playback on AmpTraXX2.
5Current Practice
6Improved Practice
7DSP Unit Specifications
- Input and output stage DSP for 8 channels at
96KHz/24-bit - Input/Output routing matrix
- Digital signal processing capabilities per
channel - Four EQ bands (Choose Parametric, LPF, HPF)
- Three topologies (Bessel, Butterworth,
Linkwitz-Riley) - Dynamic Range Compression
- Dante Audio-over-Ethernet I/O
- Web-based monitoring and controls
- View break-out box status and channel selections
- Change equalization, routing, and compression
- Check channel clip status Â
- Optimized for iOS, Android, Windows Phone, BB
- Numerous physical inputs and outputs, 96KHz
ADC/DAC - Integrated 4-port 1000Mbps Ethernet switch
- Front Panel Controls
- 1U Size
8Break-out Box Specs
- Output any eight channels via Dante
Audio-over-Ethernet - Stereo Class-D Amplifier (2x90W RMS _at_ 4Ohms)
- Stereo signal output (Balanced, Unbalanced,
S/PDIF) - Simple human interface to modify settings
- Network monitored and controlled
- Integrated 4-port 1000Mbps Ethernet switch
- Compact Size (mount on rear of small speaker)
9Connector Summary
- Centralized Audio DSP (All rear connections)
- Stereo Unbalanced Inputs -- 2x RCA
- Stereo Balanced Inputs -- 2x XLR Female
- S/PDIF Input -- 1x RCA
- Stereo Balanced Outputs -- 2x XLR Male Â
- S/PDIF Output -- 1x RCA
- 1Gbps Ethernet -- 4x RJ-45
- Power (IEC 60320-1 C13)
- Amplified Break-Out Box (All rear connections)
- Stereo Amplified Outputs -- 4x Binding PostsÂ
- Stereo Balanced Outputs -- 2x XLR Male
- Stereo Unbalanced Outputs -- 2x RCA
- S/PDIF Output -- 1x RCA
- Eurocon GPIO Pin 16x
- 1Gbps Ethernet -- 4x RJ-45
- Power (IEC 60320-1 C13)
10DSP Box
11Breakout Box
12DSP Signal Flow
13BOB I/O Diagram
14Software Diagram
UART
15Dante Brooklyn II
- NDA required
- Supports up to 16 audio channels per TDM
- Supports Gigabit and 100 Mbps Ethernet
- At 96kHz Sampling frequency we can have 32
bidirectional channels of audio. - Simplified configuration management. (Plug and
play network). - All audio devices on the network must be Dante
enabled. - Works with existing LAN networks
- Up to 32 bit audio words
- Redundancy in Ethernet input
16A/D and D/A
Cirrus Logic Codec P/N CS42448
- Purpose
- Analog to Digital
- Digital to Analog
- Volume Control
- Advantage
- Eliminates the need for separate A/D and D/A.
- Features
- Six (6) 24-bit A/Ds
- Eight (8) 24 bit D/As
- Compatible with TDM
- ADC/DAC 192 KHz Sampling Rate
- Digital Volume Control
- I2C SPI capable
17Digital Routing
- DIX 9211 (Digital Audio Interface Transceiver)
- FunctionÂ
- Route the digital audio signal between the CODEC
and Brooklyn II - Provide S/PDIF input and output
- DIX 9211 became a necessity when the decision was
made to use the same PCB layout for both boxes.
18Digital Routing
19Class D-Amp
- Abletec ALC0180 specifications
- 2x90 Wrms/4ohm _at_ 1 THD
- 1x180 Wrms/8ohm bridged _at_ 1 THD
- 2x50 Wrms/8ohm _at_ 1 THD
- Over current protection
- Over temperature protection
- Over voltage protection
20Bridge Mono vs StereoÂ
User will control the amplifier stereo/bridge
configuration via the user interface. Â The
speaker connection to the amp will have to be
changed manually.
21Blackfin DSP ChipÂ
- 132KB of on chip full speed SRAM
- CPU up to 600 MHz
- Core voltage 0.8-1.3V, DPM
- Useful ports SPI, SPORT, TWI
- Up to 48 peripheral control lines
- Extra features atypical of signal processors
- Real-time OS
- Capable 16/32 bit operations
- Sponsor-recommended part
22Real-Time OS
- µCLinux Linux alternative adapted for MCUs.
- Linux kernel Built-in IP connectivity,
reliability, portability, filesystems, free
software - Under 300KB
- Full Linux 2.6 features API, multi-tasking,
stability, drivers - Robust
- Supports C/C applications
- Using a real-time OS relieves developer of
control coding
23ALSA Driver
- ALSA (Advance Linux Sound Architecture)
- ALSA drivers provide audio functionality to the
Linux OS. - Supports all types of audio interfaces consumer
sound cards to professional multi-channel
interfaces - Simplifies application development and provides
higher level functionality - Open-source
- Linux community provides useful tutorials for
driver development
24Stellaris Microcontroller
- Functions
- Monitor temperature and amplifier status
- Control CODEC and DIX
- Control user interface
- Web Server
- Screen
- Requirements
- Support Ethernet
- I2C and SPI capable
- Large memoryÂ
- gt32KB Flash
- Over 10 GPIO
- LM3S8962
- 5-42 GPIO
- UART
- I2C and SSI capable
- CAN and Ethernet capable
- 256KB memory
- Inexpensive
25Front Panel
- The front panel will consist of
- Newhaven Screen
- Rotary Encoder
- Select Button
- Red/Green LED array for status (DSP Box only)
- Blue LED for power
- I2C expandersÂ
26Screen Selection
NHD-0216B3Z-FL-GBW Â Vs. CU16025ECPB-W6J
- Originally CU16025ECPB -W6JÂ
- Changed to        NHD-0216B3Z-FL-GBW due to
I2C capabilities - Couldn't find enough GPIO for serial interface
- 2 lines x 16 characters VFD display
27Gigabit Ethernet Switching
- 1000Base-T Ethernet is required for maximum Dante
channel counts - IEEE 802.1 Audio-Video Bridging (AVB) switches
preferred - Reserve network bandwidth for streaming media
- Shape traffic around streaming media
- Duties
- Provide Brooklyn II module with Ethernet (audio)
- Provide Stellaris with Ethernet
- Provide two additional ports for daisy-chaining
28Marvell 88E6350 Switch
- Very new Marvell part -- NDA required
- 5 PHY 7 MAC w/ GMII for Brooklyn II
- AVB Compatible (802.1AS, 802.1Qat, 802.1Qav)
Dante Primary Stellaris Daisy-Chain Dante
Secondary Daisy-Chain
Brooklyn II
29Audio Clock Distribution
- Three audio clocks control ADC's, DAC's, and
filtering - Master Clock -- Driven by Brooklyn II Module
- Derive LM26003 switching frequency (384KHz)Â
- Derive 24.576MHz for DIX9211
- Send to CODEC, DIX9211 auxiliary inputs
- Bit Clock -- Driven by Brooklyn II Module
- Send to Blackfin SPORT0, SPORT1 PrimarySecondary
- Send to CODEC, DIX9211 auxiliary inputs
- LR/Frame Clock -- Driven by Brooklyn II Module
- Send to Blackfin SPORT0, SPORT1 PrimarySecondary
- Send to CODEC, DIX9211 auxiliary inputs
30Audio Clock Distribution
31Audio Clock Distribution
32TDM Audio Routing
33TDM Audio Routing
34Resistor Mux
The Resistor Mux allows for the DSP box and
break-out box to be developed with the same PCB
layout.
Connections DSP Box CODEC(A/D out) Â gt
BlackFin BlackFin gt CODEC(D/A in) Breakout
Box CODEC(A/D out) gt Brooklyn Brooklyn(out)
gt CODEC(D/A in)
35Power Consumption
36Power Consumption
37Power Supply
LM26003 LM2599 LMZ23608
Synchronizable to an External Clock X X
Adjustable Switching Freq. X X
Power Flags X X
Adjustable Output Voltage X X X
Price 3.52 2.16 16.50
38Power Supply
AC -gt DCÂ Conversion
5V Switching Regulator
39Power Supply
3.3V Switching Regulator
LDO Regulators
40User Interface
- Required Tasks
- Modify DSP settings (EQ, Compression)
- Modify matrix routing
- Assign/modify channel names
- Check clip/overflow status
- Monitor break-out box status on network
- Create great mobile device experience
- Write web apps using jQuery Mobile
- "Native" app feel
- Considerably less programming time
41User Interface Cont.
42User Interface Cont.
43User Interface Cont.
44User Interface Web API
- Create communication interface between web
interface and C code - Required actions
- Get channel listing (name, status, numerical
identifier) - Get equalization parameters (band, type, q,
center freq, gain) - Get compressor parameters (threshold, ratio,
attack, release, gain) - Get matrix routing (indexed by output number)
- Get breakout box status
- Get overflow/clip status
- Rename channel (pass numerical identifier and new
name) - Change matrix routing (pass output identifier,
input identifier) - Change EQ params (pass channel identifier, all
band params) - Change compressor params (pass channel
identifier, all params)
45User Interface Web API
- Utilize JavaScript Object Notation (JSON) for
population of GUI data - Requires JSON encoder in C -- had to write my own
- LOTS of code and a rather large sudden amount of
memory usage - Examples
- Compressor Parameters ipaddress/a/o/3/compparamsÂ
"gain"2.0000,"threshold"10.0000,"ratio"1.5000,
       "attack"10.0000,"release"500.0000,"
enable"1.0000 - Channel List ipaddress/a/i/chanlist "name""ch0
1","active"1,"io"0,"num"2,"name""Ch2!","acti
ve"1,"io"0,"num"2
46Stellaris/Blackfin API
- Create communication standard between Blackfin
and Stellaris - Designed similar to instruction types for
embedded processors - Multiple command types Read, Write, Acknowledge,
Notification - Read from BF Investigate a DSP parameter or
setting - Write to BF Change a DSP parameter or setting
- Acknowledge Send a command back to Stellaris
after write - Notification Inform Stellaris of signal and
clipping
47Stellaris/Blackfin API
Read Value Write Value Acknowledgement
Notification
48Stellaris/Blackfin API
49ST-BF API Difficulties
- Need to verify that a filter or routing change
actually occurred - Created Acknowledge command type
- Need ability to carry out wide array of actions
based on a command type - Implement function callbacks using void pointers
(function pointers) - Â Create code that works on both compilers
- Use C99 standard integer types conventions
- Create transmit and receive specific functions
for each microcontroller
50Audio Processing Flow
51Â Filtering Types
- Bessel
- Create coefficient generator up to fourth order
- Butterworth
- Implement algorithm to figure out even and odd
Butterworth coefficients - Allow for 1st, 2nd, 3rd, 4th order filters
- generate each section (multiple BIQUAD objects
- Linkwitz-Riley (defined by -6dB at cutoff
frequency) - 2nd order -- 2 first order filters in cascade
- 4th order -- 2 second order butterworth filters
in cascade
52DSP Data Structures
53Current Progress
54Completion Plans
- Matt
- Integrate BF-ST API onto Stellaris EVM
- Verify cross-compilation onto Blackfin EVM
- Inject JSON into web page
- Integrate JSON code onto Stellaris EVM
- Redo equalization screens on GUI
- Write "glue" code to make all libraries work as a
system on Stellaris EVM
55Completion Plans Cont.
- Earl
- Write Newhaven 2x16 VFD screen library
- Write code for Break-out Box menu system
- Codec Library
- DIX9211 Library
- Temperature sensor interaction
56Completion Plans Cont.
- Talitha
- Write primary Blackfin code
- Implement matrix routing
- Implement compression and equalization
activation - Implement hooks for BF-ST SPI API
57Completion Plans Cont.
- Daren
- Write Dante Library
- Create filter algorithms (Butterworth, Bessel,
Linkwitz-Riley) - LPF (1st-4th order)
- HPF (1st-4th order)
- Parametric (2nd order, variable width)
- High/Low Shelving (if time permits)
- Implement algorithms in C for Blackfin
- Troubleshoot possible power supply issues
58Issues
- Dante Library - NDA hurtles, Audinate issues
- No Brooklyn II EVM -- 6000...
- PCB production timeline -- Mid-March if lucky
- GigE switch needs to be reprogrammed to provide
daisy-chain ability - Combining everyone's code
- Cross-platform compilation unknowns (BF-ST API)
59Budget
60Project Budget
- Initial Production Run 5 populated PCBs
- Alcorn paying 10k
- 8 layers
- Blackfin EVMs (2) provided by Alcorn
- Over 800 parts per PCB purchased by Alcorn
- Less than 1000 of WFCF money spent
61Questions?