PRESEPIO ELETTRONICO MULTIMEDIALE

SEQUENCER



Nativita' in legno realizzata da Costantino Conti - 1995

SOMMARIO





Foto 1 - Pannello frontale del Sequencer

A sinistra si nota il LED ON di presenza alimentazione.

A destra si nota la presa stereo per l'uscita audio del decoder MP3.

Al centro si nota il pulsante di reset utile per sincronizzare il caricamento del programma tramite la porta seriale.

In basso a destra la memory card spunta fuori dalla fessura predisposta per l'inserzione/disinserzione  della memoria contenente i file MP3.


PRESENTAZIONE



A distanza di 6 anni dalla pubblicazione del progetto della centralina classica mi trovo nuovamente a pubblicare un progetto molto interessante per i Presepisti.

L'attuale centralina deve essere pilotata da un Personal Computer per poter disporre anche della parte multimediale.

E' sufficiente utilizzare un vecchio computer multimediale, ma molte persone hanno chiesto piu' volte se era possibile poter costruire qualcosa che potesse funzionare senza computer.

Ho pensato di realizzare un sequencer (con lettore MP3 incorporato) che disponesse delle seguenti caratteristiche:


Una volta programmato tramite la porta seriale, il sequencer funziona senza PC 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 e' stata scartata per problemi di ingombro e consumo di energia.

A tale scopo avevo iniziato la sperimentazione di un controller con interfaccia IDE da collegare ad un lettore CDROM - vedi progetto CDX14.

Alla fine, nonostante il sistema fosse economico, ho escluso questa alternativa per il fatto che il sequencer con il CDROM avrebbe richiesto un contenitore molto grande e un alimentatore abbastanza potente.

Quello che si risparmia inizialmente con l'uso di un lettore CDROM, viene poi  perso a motivo della spesa per l'acquisto del contenitore e dell'alimentatore.

Un altro fattore che mi ha indotto ad utilizzare un sistema di memorizzazione a stato solido e' stato il fatto che i lettori CDROM non sono molto affidabili.

Essendo dotati di parti meccaniche in movimento, e' facile che vadano soggetti a guasti.

I presepi esposti spesso lavorano continuativamente per ore e per giorni e capita di frequente che, sul piu' bello, il lettore CDROM si ferma  per un guasto meccanico o perche' il laser si e' 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  e'  ormai alla portata di tutti.





Foto 2 - Primo prototipo del Sequencer

Nella  Foto 2 possiamo ammirare un'immagine del primo prototipo.

Nella parte superiore a sinistra possiamo intravedere l'alimentatore a 3,3 Volt.

In alto al centro il connettore della porta parallela.

A destra possiamo notare il decoder MP3 con il connettore per l'uscita audio.

Al centro spicca il microcontrollore ATMEGA162 nella versione DIL 40.

Sopra 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.

L'unico componente SMD e' il decoder MP3 siglato VS1001K nella versione SOIC28 a 28 pin.

TORNA AL SOMMARIO


ABBINABILE AL SEQUENCER



A questo sequencer e' possibile (consigliabile) abbinare:

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

Per maggiori dettagli sul collegamento delle schede far riferimento alle prove di sistema


TORNA AL SOMMARIO

DESCRIZIONE



Di seguito viene riportata una breve descrizione del circuito.

A motivo della complessita' del circuito, lo schema elettrico e' stato disegnato su 4 diversi sheets come segue:


MICROCONTROLLORE - Sheet 1


Il circuito e' basato sul microcontroller ATMEGA162 alimentato a 3,3 Volts.

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 puo' essere controllato manualmente tramite il pulsante  e la resistenza R1 da 100 ohm.


Il circuito di reset puo' anche essere controllato dalla interfaccia di programmazione connessa al connettore SIP1.

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 piu' 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.


CIRCUITO D'ALIMENTAZIONE - Sheet 2

Il circuito di alimentazione converte la tensione continua d'ingresso compresa tra 5 e 15 Volts nella tensione a 3,3 Volts.

E' stato deciso di utilizzare un'unica tensione a 3,3 Volts per il fatto che sia il decoder MP3 che la memory card devono essere alimentati necessariamente a bassa tensione.

Per semplicita' anche gli altri componenti del circuito sono alimentati a 3,3 Volts, microcontrollore compreso.

L'alimentatore di tipo lineare e' basato sull'integrato LM317T nella versione TO220.

Il diodo D1 serve a proteggere il circuito dalle inversioni di polarita'.

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 qualita' di riproduzione dell'audio.


DECODER MP3 E SD - Sheet 3

Il decoder MP3 e' costituito dal noto VS1001K che comprende al suo interno sia il decoder che il convertirore 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.


INTERFACCE SERIALI E PARALLELA - Sheet 4

Il sequencer dispone di 2 interfacce seriali: COM1 e COM2 e un' interfaccia parallela: LPT1

L'interfaccia LPT1 puo' essere facilmente collegata all'interfaccia rele' 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.


TORNA AL SOMMARIO

DOCUMENTAZIONE COSTRUTTIVA



Di segiuito viene riportato un elenco dei documenti disponibili per la realizzazione della scheda:




Foto 3 - Pannello posteriore del Sequencer

Nella  foto del pannello posteriore del Sequencer possiamo notare:

A sinistra l'ingresso della tensione di alimentazione.

Al centro il connettore della porta parallela per la scheda rele'.

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.

TORNA AL SOMMARIO

 


DATA SHEET COMPONENTI



Di  seguito viene riportato un elenco dei componenti piu' importanti:

TORNA AL SOMMARIO

TOOLS DI SVILUPPO E PROGRAMMAZIONE



Di seguito viene riportato un elenco dei tool usati per lo sviluppo del progetto:

TOOLS DI SVILUPPO

SOFTWARE MP3 ENCODER

DOCUMENTAZIONE

TUTORIALS


TORNA AL SOMMARIO

FIRMWARE



Il firmware e' diviso in due parti: BOOTLOADER e SEQUENCER

LISTA DEI FILE SORGENTE DEL BOOTLOADER


main.c - Contiene 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 settare correttamente le variabili di ambiente di WINAVR

Tutti i sorgenti sono contenuti nel file
bootloader.zip

E' comunque preferibile utilizzare l'ultima versione aggiornata di file contenuta nel CD ROM.

LISTA DEI FILE SORGENTE DEL SEQUENCER

sequencer.c  - Contiene il programma principale
prova.c - Contiene il programma principale di prova
uart.h uart.c - Driver per l'interfaccia seriale
timer.h timer.c - Driver del timer 1
ports.h ports.c - Driver dell'interfaccia parallela
vs1001k.h vs1001k.c - Driver del decoder mp3
spi.h spi.c - Driver dell'interfaccia spi
mmc.h mmc.c - Driver della memory card
mp3.h mp3.c - Player mp3
decode.h decode.c - Decoder del pseudo-code
schedule.h schedule.c - Scheduler
code.c - File contenente il pseudo-code
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 settare correttamente le variabili di ambiente di WINAVR
compila.bat - Batch file per compilare separatamente un file *.c

Tutti i sorgenti sono contenuti nel file atmega162.zip

E' comunque preferibile utilizzare l'ultima versione aggiornata di file contenuta nel CD ROM.

TORNA AL SOMMARIO


COMPILATORE ENCODE



Per la programmazione del sequencer e' necessario generare mediante script un file contenente un codice intermedio.

Il file contenente il codice intermedio si chiama: code.c.

Per generare il file code.c a partire dai batch files viene utilizzata l'utility:"ENCODE"

Una volta disponibile il file code.c e' necessario compilarlo e linkarlo con l'ambiente WINAVR per generare il file sequencer.hex

Il  file sequencer.hex viene poi caricato nella  FLASH del microcontrollore  tramite la porta seriale utilizzando  l'utility AVRPROG disponibile all'interno dell'ambiente  integrato AVR STUDIO.

LISTA DEI FILE SORGENTE DEL COMPILATORE ENCODE

encode.c encode.h - 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 correttamente le variabili di ambiente di DEV-CPP


Tutti i sorgenti sono contenuti nel file exec.zip

E' comunque preferibile utilizzare l'ultima versione aggiornata di file contenuta nel CD ROM.

TORNA AL SOMMARIO

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 in 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 effettuato tramite il PC.

Prima di tutto devono essere installati i seguenti programmi:

Il file sorgente puo' 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 verra' utilizzato per il caricamento della Flash del sequencer.

TORNA AL SOMMARIO

PROGRAMMAZIONE



La programmazione del microcontrollore viene realizzata scrivendo dei batch file di testo.

Una volta preparati i batch file, vanno eseguiti i seguenti passi:


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 e' contenuto ua serie di file di esempio.


TORNA AL SOMMARIO


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.



Foto 4 - Due tipi di memoria usata per i tests - MMC da 32 Mbytes e SD da 128 MBytes



Foto 5 - Retro delle memory card - Notare che sono molto simili

Le memory card devono essere formattate in modalita' 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 nomer del file deve essere 8+3 con estensione uguale a: "mp3".

Per la preparazione della memory card e' possibile preparare i file mp3 da un disco CD-AUDIO utilizzando il tool :  CCDA-XTRACTOR.

Produrre tutti i file mp3 nella medesima directory e rinominare i files come 01xxxxxx.mp3, 02xxxxxx.mp3 ...etc.

Con l'ausilio di un lettore di memory card per PC eseguire i seguenti passi:


Per  semplicita', all'interno del CDROM e' possibile  effettuare una prova come segue:



Foto 6  - Lettore MMC/SD per PC con interfaccia  USB
 
TORNA AL SOMMARIO

CD ROM



Il CDROM contiene:


TORNA AL SOMMARIO

SEQUENCER PRONTO ALL'USO



E' possibile su richiesta ricevere il sequencer pronto all'uso.

La scatola contiene:


Il sequencer e' gia' pronto all'uso per coloro che dispongano della centralina classica.

Seguire la seguente procedura:


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.

TORNA AL SOMMARIO


LINK UTILI



UNIVERSITY OF QUEENSLAND
ALBERTO RICCI BITTI PERSONAL PAGE
AVR & ELECTRO LINKS
AVR Embedded Microcontroller Resources
Bootloader for the ATMEL AT MEGA series of processors (WinAVR port)
AVR-ASSEMBLER-TUTORIAL
DICK CAPPELS' PROJECT PAGES
DONTRONICS
EVERTOOL
LARRY BARELLO'S HOME PAGE
I.R.BOT
JESPEER'S AVR PAGES
PETER FLEURY HOME PAGE
ROBS-PROJETCS
STELIOSCELLAR
AVR WEBRING


Accessing a Compact Flash Card from BASCOM
FAT16 FILE SYSTEM DRIVER FOR COMPACTFLASH
AVR-DOS FOR BASCOM-AVR
PROCYON AVRLIB
EE 476 FINAL PROJECT PORTABLE MP3 PLAYER
MMC TO SERIAL ADAPTER
MP3 MOBILE PLAYER
MICROCHIP MMC SOURCE CODE
TINY MP3 PLAYER
64MB MMC UND PIC-MIKROCONTROLLER


TORNA AL SOMMARIO