130 likes | 255 Vues
This presentation by Aaron Cramer from Western Washington University discusses the design and functionality of the Digitally Configurable Audio Routing Patchbay (DCARP) System. It explores the software architecture, including the use of Cypress PSoC technology, memory requirements for routing configurations, and the user interface for audio routing operations. Key features include a state machine for user inputs, configuration saving and recalling, and efficient resource management. This project showcases innovative audio routing solutions through programmable logic.
E N D
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 • User Data Storage: save up to 50 routing configurations 64Bytes/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: • CSD: 3 digital blocks, 3 analog blocks • SPI: 1 digital block
State Machine Design • System State Machine: • MAIN • ROUTE • SAVE • RECALL
State Description • Prompts user to Route, Save, or Recall • Endless loop monitors keypad for function sensor press, ignores all other input Main State
State Description Route State • Prompts user for source and destination channels • Validates Channels • Calls function to update current configuration and program crosspoint
State Description Save State • Prompts user for configuration number • Validates configuration number • Calls function to store current configuration data in flash
State Description Recall State • Prompts user for configuration number • Validates configuration number • Calls function to retrieve data from flash and program crosspoint
CPU Load • CPU Load: 100% • Sensor polling loops and blocking routines used • CPU is always doing something
Dataflow Diagrams Main.c SnsKeypad.c Capacitive Sensor Keypad MAIN STATE GetSelectedFnc() Sensor 0 INT8U function Sensor 1 Sensor 2 Sensor 3 Sensor 4 ROUTE STATE GetAudioCh() INT8U *ErrCode Sensor 5 Sensor 6 INT8U channel Sensor 7 Sensor 8 SAVE STATE Sensor 9 Sensor 10 Sensor 11 GetConfigNum() INT8U *ErrCode Sensor 12 INT8U config RECALL STATE
Dataflow Diagrams SPI Main.c Route.c INT8U *SourceCh RouteAudio() ROUTE STATE INT8U *Destination *CurrentConfigArray[][] ProgramCrosspointArray() RECALL STATE *CurrentConfigArray[][]
Dataflow Diagrams Main.c ConfigData.c Flash SAVE STATE SaveConfig() INT8U *confignum INT8U *CurrentConfigArray[][] RECALL STATE INT8U *confignum RecallConfig() INT8U newconfig[][]