Di Giacomo Casano  
SEQUENCER

Un altro circuito realizzato dal nostro Sergione Salvitti.

L'attuale centralina per poter disporre anche della parte multimediale deve essere collegata a un personal computer, anche vecchio modello.
Molte persone hanno chiesto più volte se era possibile poter costruire qualcosa che potesse funzionare senza computer.
Questo sequencer, con lettore MP3 incorporato, è stato progettato per poter essere sostituito al personal computer e poter programmare autonomamente la centralina e gli altri circuiti elettronici quali la scheda relé per la porta parallela e il controller per stelle fuochi e relé. Inoltre può eseguire dei brani in formato MP3 registrati su MMC/SD card.

Queste sono le sue caratteristiche:

  • Interfaccia per memory card MMC/SD per memorizzare suoni
    e rumori in formato MP3
  • Decoder MP3 incorporato
  • Due interfacce seriali per connettere fino a due centraline classiche
    e due controller luci a bassa tensione
  • Una interfaccia parallela per connettere l'interfaccia relé
  • Microcontrollore programmabile da interfaccia seriale

Una volta programmato tramite la porta seriale di un PC, il sequencer funziona autonomamente e mantiene memorizzato il programma nella sua memoria FLASH anche dopo l'assenza della tensione di alimentazione.
L'idea iniziale di utilizzare un lettore CDROM per il sequencer è stata scartata per problemi di ingombro e consumo di energia. Inoltre essendo dotati di parti meccaniche in movimento, è facile che vadano soggetti a guasti.
I presepi esposti spesso lavorano continuativamente per ore e per giorni e capita di frequente che, sul più bello, il lettore CDROM si ferma per un guasto meccanico o perchè il laser si è sporcato.
I lettori a stato solido non hanno questo tipo di inconveniente e, visto l'attuale basso costo delle memory card, l'utilizzo di questi dispositivi è ormai alla portata di tutti.
Il circuito e' basato sul microcontroller ATMEGA162 alimentato a 3,3 Volt.
A questo sequencer è possibile (consigliabile) abbinare:

Utilizzando questo sequencer in abbinamento con: 2 centraline, 2 controller luci a bassa tensione e 1 interfaccia relé é possibile creare un sistema multimediale per Presepi con le seguenti caratteristiche:

  • 16 USCITE PER LAMPADE CON 4+4 FASI GIORNALIERE

  • 28 USCITE PROGRAMMABILI IN 4 GRUPPI DA 7 USCITE
    ON-OFF/FUOCHI/STELLE

  • 7 USCITE A RELE' PER CARICHI FINO A 10 A

  • PLAYER MP3 PER MUSICHE E RUMORI AMBIENTALI

 

DESCRIZIONE DEL CIRCUITO:

Nella Fig. 1 è possibile ammirare un'immagine del primo prototipo filato.
Nella parte superiore a sinistra possiamo intravedere l'alimentatore a 3,3 Volt.
In alto al centro il connettore della porta parallela di colore scuro.
A destra possiamo notare il decoder MP3 con il connettore per l'uscita audio.
Al centro spicca il microcontrollore ATMEGA162 nella versione DIL 40.
A fianco il buffer non invertente 74HC541.
In basso a sinistra l'integrato MAX232 con i due connettori per la COM1 e COM2.
In basso a destra s'intravede la memory card.
Il connettore relativo e' stato montato dal lato saldature della scheda.
I collegamenti sono stati realizzati con fili saldati nella parte sottostante della board.
L'unico componente SMD e' il decoder MP3 siglato VS1001K che e' stato saldato alla piastrina millefori tramite un piastrino di adattamento da SOIC28 a DIL20.

Nella Fig. 8 e nella Fig. 9 è visibile un'immagine del prototipo montato.  
Nella Fig. 8 si può notare sulla destra l'asola per l'inserimento della MMC/SD card e il jack stereo di uscita per l'audio.
Nella Fig. 9, pannello posteriore, vediamo:
A sinistra l'ingresso della tensione di alimentazione.
Al centro il connettore della porta parallela per la scheda relé.
A destra i due connettori relativi alla COM1 e COM2 alle quali connettere fino a due centraline classiche e due controller luci a bassa tensione mediante l'utilizzo dell'apposito cavo splitter.


DOCUMENTI:

Per via della complessità del circuito lo schema elettrico e' stato disegnato su 4 diversi fogli e precisamente:

MICROCONTROLLORE Fig. 2
DECODER MP3 E SD Fig. 3
INTERFACCE SERIALI E PARALLELA Fig. 4
CIRCUITO D'ALIMENTAZIONE Fig. 5



Fig.2 - Microcontrollore:

Il circuito e' basato sul microcontroller ATMEGA162 alimentato a 3,3 Volt.
Il clock e' stato fissato a 8 MHz ed e' costituito dalla rete: CC1, CC2 e X1 collegata ai pin 18 e 19 del microntrollore.
Il circuito di reset e' costituito dalla rete RC: CE1, R4 per un tempo di reset di circa 100 ms.
Il reset può essere controllato manualmente tramite il pulsante e la resistenza R1 da 100 ohm.
Il circuito di reset può anche essere controllato dalla interfaccia di programmazione connessa al connettore SIP1.
Tramite questa interfaccia e l'apposito connettore è possibile programmare il microcontrollore attraverso l'interfaccia parallela del PC usando il programma Ponyprog.
Tramite questa interfaccia e l'apposito connettore e' possibile programmare il microcontrollore attraverso l'interfaccia parallela del PC usando il programma Ponyprog.
Questo tipo di programmazione viene usato soltanto la prima volta per inserire il programma BOOTLOADER.
Una volta che il programma di bootloader e' stato installato, le modifiche sul programma applicativo in FLASH possono essere effettuate più agevolmente mediante l'impiego della porta seriale e della feature AVRPROG disponibile all'interno di AVR STUDIO della ATMEL.
Il connettore SIP2 e' stato introdotto per poter utilizzare l'interfaccia JTAG.
 

Fig. 3 - Decoder MP3 e SD

Il decoder MP3 e' costituito dal noto VS1001K che comprende al suo interno sia il decoder che il convertitore DAC.
Il decoder usa un quarzo da 24 MHz e dispone delle alimentazioni analogica e digitale separate per ridurre il rumore.
Particolare attenzione deve essere prevista per la realizzazione del circuito stampato nel separare le alimentazioni relative alla parte digitale e alla parte analogica.
 

Fig. 4 - Interfacce seriali e parallela

Il sequencer dispone di 2 interfacce seriali: COM1 e COM2 e un' interfaccia parallela: LPT1
L'interfaccia LPT1 può essere facilmente collegata all'interfaccia relé tramite un flat a 16 fili.
La COM1 viene usata come interfaccia seriale primaria dalla quale scaricare il file per la programmazione del microcontrollore.
Nel normale funzionamento viene usata per il collegamento della prima coppia di centralina classica e controller luci a bassa tensione.
La COM2 permette di collegare una seconda coppia di centralina classica e controller luci a bassa tensione.
 

Fig. 5 - Alimentazione

Il circuito di alimentazione converte la tensione continua d'ingresso compresa tra 5 e 15 Volt nella tensione a 3,3 Volt.
E' stato deciso di utilizzare un'unica tensione a 3,3 Volt per il fatto che sia il decoder MP3 che la memory card devono essere alimentati necessariamente a bassa tensione.
Per semplicità anche gli altri componenti del circuito sono alimentati a 3,3 Volt, microcontrollore compreso.
L'alimentatore di tipo lineare e' basato sull'integrato LM317H.
Il diodo D1 serve a proteggere il circuito dalle inversioni di polarità.
I due condensatori CF2 e CE2 realizzano il circuito di filtraggio della tensione d'ingresso.
La rete R5, R6, R7 predispone l'integrato U2 a generare una tensione d'uscita secondo la seguente formula:
VO = 1,25 X (R5 + R6 + R7) / R5
Due circuiti LC: (L1, CF3, CE3) e (L2, CF4, CE4) separano la tensione digitale VDD dalla tensione analogica VAA per eliminare eventuali disturbi che potrebbero deteriorare la qualità di riproduzione dell'audio.


FIRMWARE

Il firmware è stato scritto usando il linguaggio C per micro AVR e precisamente:

WINAVR Compilatore C per i micro della seria AVR
DEV-CPP Ambiente di compilazione MINGW
AVR STUDIO Ambiente di debug e programmazione ATMEL
PONYPROG SW di programmazione per inserire il bootloader

E' stato diviso in due parti: BOOTLOADER e SEQUENCER.
 

IL BOOTLOADER
E' così composto:

COMPOSIZIONE DEL BOOTLOADER:
main.c   E' il programma principale
serial.c serial.h Driver della seriale
assembly.s assembly.h Parte del programma in linguaggio assembler
  defines.h Definizioni
makefile   Makefile
setenv.bat   Batch file per impostare le variabili di ambiente WINAVR

 

IL SEQUENCER
Ovviamente il programma del SEQUENCER è più complesso ed è così composto:

COMPOSIZIONE DEL SEQUENCER
sequencer.c   E' il programma principale
prova.c   E' il programma principale di prova
uart.c uart.h Driver per l'interfaccia seriale
timer.c timer.h Driver del timer 1
ports.c ports.h Driver dell'interfaccia parallela
vs1001k.c vs1001k.h Driver del decoder mp3
 spi.c  spi.h Driver dell'interfaccia spi
mmc.c mmc.h Driver della memory card
mp3.c mp3.h Player MP3
decode.c decode.h Decoder del pseudo-code
code.c   File contenente il pseudo-code
schedule.c schedule.h Scheduler
  avrlibdefs.h Definizioni per il nuovo compilatore winavr
  cpuclock.h Definizione del clock CPU
  encode.h Definizione dei pseudo-code
dummy.c   File dummy usato da prova.c al posto di code.c
  global.h Definizione globali
  types.h Definizione dei tipi
makeprova   Makefile per la generazione di prova.hex
makeseq   Makefile per la generazione di sequencer.hex
setenv.bat   Batch file per impostare le variabili di ambiente di WINAVR
compila.bat   Batch file per compilare separatamente un file *.c

 

IL COMPILATORE ENCODE
Per la programmazione del sequencer è necessario generare mediante script un file contenente un codice intermedio di nome code.c.
Per creare il file code.c viene utilizzata l'utility ENCODE.
Una volta creato il file code.c, dobbiamo compilarlo e linkarlo con l'ambiente WINAVR in modo da generare il file sequencer.hex.
Questo file deve essere poi caricato nella FLASH del microcontrollore tramite la porta seriale utilizzando l'utility AVRPROG disponibile all'interno dell'ambiente integrato AVR STUDIO.

COMPOSIZIONE DEL COMPILATORE ENCODE
encode.c encode.h E' il programma principale
parser.c parser.h parser per il riconoscimento dei tokens
tokens.c   Funzioni relative ai tokens individuati
  types.h Dichiarazione dei tipi
makefile   Makefile
setenv.bat   Batch file per settare le variabili di ambiente di DEV-CPP

 

INSTALLAZIONE E TEST
Il controller dispone di un programma per effettuare il boot tramite la porta seriale COM1.
Al momento del restart viene avviato il programma bootloader che rimane attivo per un periodo di 5 secondi in attesa di ricevere i comandi da AVRPROG.
Se al termine dei 5 secondi non viene ricevuto alcun criterio, il programma effettua il restart nella maniera classica e parte l'ultima applicazione che era stata caricata nella memoria FLASH.
Prima di effettuare ogni prova bisogna generare il file applicativo sequencer.hex e scaricarlo nella FLASH del microcontrollore.
La generazione di questo file viene effettuata tramite il PC.
Prima di tutto devono essere installati i seguenti programmi:

WINAVR
AVR STUDIO 4
SCRIPT DI BASE

Il file sorgente può essere scritto con un semplice editor di testo sullo stile dei file batch usati per il controllo da PC.
Il file/files prodotti vanno compilati per generare il file sequencer.hex che verrà utilizzato per il caricamento della Flash del sequencer.


PROGRAMMAZIONE

Come già detto la programmazione del microcontrollore viene realizzata scrivendo prima dei batch file di testo. Una volta che li abbiamo scritti dobbiamo eseguire i seguenti passi:

      1) Compilazione dei batch file e generazione del file sequencer.hex
      2) Programmazione del microcontrollore

Per la compilazione del batch file usare lo script: genera.bat <nomefile.bat>
Il file sequencer.hex prodotto viene scaricato tramite la porta seriale del PC collegata all'interfaccia COM1 del sequencer usando il tool AVRPROG contenuto in AVR STUDIO 4.

Nella directory presepio del CDROM e' contenuto una serie di file di esempio.
 

PREPARAZIONE DELLA MEMORY CARD
La memory card deve contenere i file in formato MP3 per la riproduzione audio.
E' possibile utilizzare sia memory card del tipo MMC che memory card del tipo SD a partire da 32 Mbytes fino a 1 Gbytes.
Nella Fig. 10 possiamo vedere i due tipi di memoria usata per i tests: una MMC da 32 Mbytes e una SD da 128 MBytes
Nella Fig. 11 possiamo vedere le due cards viste dal retro. Notare la stretta somiglianza.

Le memory card devono essere formattate in modalità FAT16 e non devono contenere sottodirectory. Tutti i file devono quindi risiedere nella directory principale.
Ogni file deve essere nominato con le prime due lettere numeriche da 01 a 99.
Il formato del nome del file deve essere 8+3 (DOS) con l' estensione uguale a: "MP3".

COME PREPARARE I FILES IN FORMATO MP3

E' possibile estrarre i files audio da un CD e convertirli nel formato MP3 usando il tool : CD-DA EXTRACTOR.
Una volta creati, rinominare i files come 01xxxxxx.mp3, 02xxxxxx.mp3... ecc.

Con l'ausilio di un lettore di memory card per PC (in Fig. 12 è visualizzato un modello), eseguire le seguenti operazioni:

        1) Formattare la memory card con file system FAT16
        2) Copiare tutti i file mp3 generati nella directory principale della memory card
        3) Togliere la memory card dal lettore del PC e inserirla nel sequencer

Verificare che il sequencer riproduca correttamente i brani mp3

 

DOCUMENTAZIONE COSTRUTTIVA

Tutti i documenti, manuale, schemi, pcb ecc. si possono scaricare dalla finestra 'downloads'.

Chi vuole tutto pronto può richiedere all'autore il progetto già montato e funzionante.
L'indirizzo web è il seguente: www.salvitti.it.
E' disponibile anche un CDROM (da richiedere sempre all'autore) contenente:

  • Musiche in formato MP3
  • Tools per la programmazione del microcontrollore
  • Script di base
  • Documentazione

Per chi ha realizzato la centralina, il sequencer montato è già pronto all'uso.
Seguire la seguente procedura:

  • Collegare il cavo seriale della centralina classica all'ingresso COM1 del sequencer.
  • Inserire la memory card nello slot del sequencer.
  • Accendere la centralina
  • Accendere il sequencer

Il led verde del sequencer si accende all'inserzione dell'alimentazione.
Dopo 5 secondi il led rosso del sequencer si accende e il programma dovrebbe partire in automatico.

 
Fig. 1: Prototipo
Fig. 2: Schema elettrico
Fig. 3: Schema decoder MP3
Fig. 4: Interfacce
Fig. 5: Alimentatore
Fig. 6: PCB Lato saldature
Fig. 7: PCB Lato componenti
Fig. 8: Prototipo
Fig. 9: Pannello posteriore
Fig. 10: MMC e SD cards
Fig. 11: Retro delle cards
Fig. 12: Lettore USB
Lato posteriore di un altro prototipo.
Fig. 13: Altro pannello post.
Pannello frontale di un altro prototipo.
Fig. 14: Altro frontale
Circuito stampato doppia faccia.
Fig. 15: Circuito stampato
 
 
 
 
Schema elettrico CPU
Scarica il file in formato ZIP Vedi il documento in formato PDF
Schema elettrico Decoder
Scarica il file in formato ZIP Vedi il documento in formato PDF
Schema elettrico Interfacce
Scarica il file in formato ZIP Vedi il documento in formato PDF
Schema elettrico Aliment.
Scarica il file in formato ZIP Vedi il documento in formato PDF
Circuito stampato
Scarica il due files in formato ZIP Vedi il documento in formato PDF lato componenti Vedi il documento in formato PDF lato saldature
Sorgenti Bootloader
Scarica il file in formato ZIP.  
Sorgenti Sequencer
Scarica il file in formato ZIP.  
Sorgenti Encoder
Scarica il file in formato ZIP.  

TOOLS DI SVILUPPO

AVR STUDIO
LINK
PONYPROG
Scarica il file in formato ZIP.  
WIN-AVR
LINK
DEV-CPP
Scarica il file in formato ZIP.  
CDDA-XTRACTOR
Scarica il file in formato ZIP  

TUTORIALS

AVR STUDIO
LINK Tutorial su AVR Studio (inglese)
PONY PROG
LINK Tutorial sull'uso di PonyProg (inglese)
GNU C per AVR
LINK Tutorial sul compilatore C per AVR (inglese)

DOCUMENTAZIONE

AVR LIBC user manual
Scarica il file in formato ZIP. Manuale d'uso della libreria AVR libc (inglese) Scarica il file in formato PDF. Manuale d'uso della libreria AVR libc (inglese)
Installazione di WINAVR
Scarica il file in formato ZIP. Come installare l'ambiente WINAVR (inglese) Scarica il file in formato PDF. Come installare l'ambiente WINAVR (inglese)
8 Bit AVR instructions set
Scarica il file in formato ZIP. Lista delle istruzioni assembler (inglese) Scarica il file in formato PDF. Lista delle istruzioni assembler (inglese)

DATA SHEETS COMPONENTI

 Micro ATMEGA162
Scarica il file in formato ZIP. Datasheet micro ATMEGA162 Scarica il file in formato PDF. Datasheet micro ATMEGA162
LM317
Scarica il file in formato ZIP. Datasheet LM317 Scarica il file in formato PDF. Datasheet LM317
VS1001K  -  MP3 decoder
Scarica il file in formato ZIP.Datasheet decoder MP3 VS1001K Scarica il file in formato PDF.Datasheet decoder MP3 VS1001K
ST202 (MAX232)
Scarica il file in formato ZIP. Datasheet MAX232 Scarica il file in formato PDF. Datasheet MAX232
8 Bit AVR instructions set
Scarica il file in formato ZIP. Lista delle istruzioni assembler (inglese) Scarica il file in formato PDF. Lista delle istruzioni assembler (inglese)

MANUALE D'USO

Scarica il file in formato ZIP. Manuale d'uso. Scarica il file in formato PDF. Manuale d'uso
 
Maggiori informazioni si possono reperire nel sito di Sergio Salvitti: www.salvitti.it.

Mail:
salvitti.geo@yahoo.com

Torna all'indice della sezione Tecniche

 

 Visite dal 06-09-2005
Ultimo aggiornamento pagina: 30-09-2005