digitally configurable audio routing patchbay
DESCRIPTION
Digitally Configurable Audio Routing Patchbay. DCARP System Software Presentation Aaron Cramer Western Washington University 2009. General System Design. MCU: Cypress PSoC CY8C21001 Bus Frequency: 24MHz Memory Requirements: ROM ~ 7.2 KB - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/1.jpg)
Digitally Configurable Audio Routing Patchbay
DCARP System Software PresentationAaron Cramer
Western Washington University2009
![Page 2: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/2.jpg)
General System Design
MCU: Cypress PSoC CY8C21001Bus Frequency: 24MHzMemory Requirements:
ROM ~ 7.2 KB User Data Storage: save up to 50 routing
configurations64Bytes/Configurations * 50 Configurations = 3.2 KB
Program Storage: ~ 4.0 KB RAM ~ 450 Bytes
Copy 64Byte blocks from Flash Miscellaneous variables, user module data, etc.
PSoC Resources Used:o CSD: 3 digital blocks, 3 analog blockso SPI: 1 digital block
![Page 3: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/3.jpg)
State Machine Design
System State Machine: MAIN ROUTE SAVE RECALL
![Page 4: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/4.jpg)
State Description
Prompts user to Route, Save, or Recall
Endless loop monitors keypad for function sensor press, ignores all other input
Main State
![Page 5: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/5.jpg)
Route StatePrompts user for source and
destination channelsValidates ChannelsCalls function to update
current configuration and program crosspoint
State Description
![Page 6: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/6.jpg)
Save StatePrompts user for
configuration numberValidates configuration
numberCalls function to store
current configuration data in flash
State Description
![Page 7: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/7.jpg)
Recall StatePrompts user for
configuration numberValidates configuration
numberCalls function to retrieve
data from flash and program crosspoint
State Description
![Page 8: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/8.jpg)
CPU Load
CPU Load: 100% Sensor polling loops and blocking routines used CPU is always doing something
![Page 9: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/9.jpg)
Module Description
Module Functions DataMain.c Main(), ErrHandler() INT8U CurrentConfigArray[][],
INT8U SourceCh, INT8U DestCh, INT8U ConfigNum
SnsKeypad.c DynamicSensorScan(), DynamicBaselineInit(), GetAudioCh(), GetSelectedFnc(), GetConfigNum(), GetValidSensor()
Route.c ProgramCrosspointArray(), RouteAudio(),
ConfigData.c SaveConfig(), RecallConfig() INT8U NewConfig[][]
Cypress Modules
APIs
CapSense CSD CSD_Start(), CSD_ScanSensor(), CSD_UpdateSensorBaseline(), CSD_bIsSensorActive(), CSD_SetRefValue(),
SPI Master SPIM_Start(), SPIM_SendTxData(), SPIM_bReadStatus()
LCD LCD_Start(), LCD_PrString()
E2PROM E2PROM_Start(), E2PROM_bE2Read(), E2PROM_bE2Write()
![Page 10: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/10.jpg)
Dataflow Diagrams
Main.c SnsKeypad.c
MAIN STATE
GetSelectedFnc()
INT8U function
ROUTE STATE
GetAudioCh()
GetConfigNum()
SAVE STATE
RECALL STATE
INT8U *ErrCodeINT8U channel
INT8U *ErrCode
INT8U config
Capacitive Sensor Keypad
Sensor 0
Sensor 1
Sensor 2
Sensor 3
Sensor 4
Sensor 5
Sensor 6
Sensor 7
Sensor 8
Sensor 9
Sensor 10
Sensor 11
Sensor 12
![Page 11: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/11.jpg)
Dataflow Diagrams
Main.c Route.c
ROUTE STATE
RouteAudio()
INT8U *SourceCh
INT8U *Destination
ProgramCrosspointArray()
RECALL STATE
*CurrentConfigArray[][]
SPI
*CurrentConfigArray[][]
![Page 12: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/12.jpg)
Dataflow Diagrams
SAVE STATE INT8U
*CurrentConfigArray[][]
SaveConfig()
Main.c ConfigData.c
Flash
INT8U *confignum
RECALL STATE INT8U newconfig[][]
INT8U *confignum
RecallConfig()
![Page 13: Digitally Configurable Audio Routing Patchbay](https://reader036.vdocuments.site/reader036/viewer/2022062322/5681444f550346895db0ec8c/html5/thumbnails/13.jpg)
Questions?