Università degli Studi di Trieste DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA Corso di Laurea in Ingegneria Elettronica SVILUPPO DI UN PROTOTIPO DI SIMULATORE POLIFONICO PER CONCERTO DI CAMPANE Laureando: Relatore: Francesco Guzzi Prof. Sergio Carrato Correlatore: Ing. Piergiorgio Menia Trieste, 12 marzo 2013 PREMESSA E SPECIFICHE: ● Simulare un gruppo di 12 campane → 12 semitoni ● Sistema da collegare ad un sequencer esterno. ● Riproduzione campioni audio pre-registrati → 10 s ● Gestione ritardi. ● 2 file per campana PLAY 1 ● → 24 file Latenza < 10 ms. PLAY 2 ... PLAY 24 ● DELAY 1 PLAYBACK DELAY 2 1 PLAYBACK ... ... DELAY DELAY 24 1 PLAYBACK Basso costo totale. SEQUENCER ESTERNO INTERFACCIA REMOTO PC 2/ 16 MEMORIA CAMPIONI AUDIO OUT SOLUZIONE IMPLEMENTATA PLAY 1 PLAY 2 ● Boot istantaneo. ● Bassa latenza. ... ... ... 24 ingressi digitali. ... ... ● ● ● ● ● 1 uscita monofonica analogica. MODULO 1 MODULO 2 MCU BUS MODULO 12 PLAY 24 Ritardi programmabili per ogni voce. BUS Gestione da remoto. BUS Soluzione a memoria distribuita PC 3/ 16 OUT MODULO VS1000mod ● 12 moduli ● Alimentazione 5 V. ● Formato DIP32. ● File in formato VORBIS (o WAV). ● SoC VS1000 programmabile. ● Funzioni tipiche in ROM istruzioni. ● Poca RAM istruzioni. ● Sorgenti firmware di default. ● GPIO a livelli CMOS. ● FLASH SPI da 16 Mbit. → 23,7 s ● Uscita audio analogica lineout 4/ 16 START FIRMWARE CUSTOM – Usa funzioni di libreria del firmware originario – Accesso FLASH-SPI – Lettura/scrittura filesystem a blocchi – “Raw” TX/RX UART – Implementato decoder software WAV – GPIO “manuale”. – Protocollo → upload file. → set volume. 5/ 16 Init audio structs Set Pll GPIO conf Init SPI Set Hook Enable interrupts Auto Addressing Check upload startup Check volume startup Main code Endless loop UPLOAD FILES: protocollo – Implementato protocollo a pacchetto di tipo “stop and wait” – Risposta ACK / NACK – ByteStuffing / De-stuffing – Campo dati a lunghezza variabile (MAX 240 Byte) – Gestione timeout, overflow, address-mismatch – Struttura pacchetto: [STX] || [Indirizzo][Tipo_pacchetto][num_sequenza][dati][C HK] || [ETX] 6/ 16 SISTEMA DI CONTROLLO – Triggerare esecuzione dei file audio dopo il delay programmato. – Rimanere in ascolto sulla porta seriale per esecuzione comandi. • • Propri “Helper” –12 x 2 Input e Output digitali. – 1 uscita per pilotare il reset moduli; – UART – memoria non volatile; – Prototipo con ATMEGA16L 7/ 16 SISTEMA DI CONTROLLO 8/ 16 BUS SERIALE MULTIDROP – Tutti i nodi in ascolto – Tx solo se indirizzo coincide – RS232 logica invertita – Idle “alto” – Buffer digitali IN/OUT 9/ 16 Software di gestione 10/ 16 SISTEMA DI MISCELAZIONE Attenuazione [dB] SIMULAZIONE Frequenza [Hz] 11/ 16 SCHEMA FINALE SOMMATORE – Partitore idealizzato – Uso di entrambi gli opmap nel package 12/16 MODULO ALIMENTATORE – Alimentazione 12 V CC → 5 V → 3.3 V – 80 mW / modulo (consumo tipico in play) 13/16 CONSIDERAZIONI FINALI – Sistema prototipo funzionante egregiamente. – Test protocollo con azioni disturbanti – Unplug cavo durante trasmissione. – Generazione di semplici errori nel pacchetto. – Problemi / semplicità derivanti da: – scelta del sistema modulare. – uso di campioni pre-registrati. 14/16 SVILUPPI FUTURI – Implementazione di una funzionalità di “sequencer autonomo” tipo “carillon”. – Play standalone ma gestione su PC. – Auto-apprendimento del tempo di ritardo. – Riduzione firmware moduli. – Miglioramento sicurezza protocollo. 15/16 Grazie per l'attenzione.