Lavoro nell'informatica da 15 anni e da sempre mi diletto di elettronica, ma non ho mai avuto a che fare con i microcontroller. Vi prego, pertanto, di scusare la mia ignoranza in merito, ma è proprio per questo che vi chiedo aiuto. Vengo al problema. Sto costruendo un sistema di diffusione sonora centralizzato per la mia abitazione (sonorizzazione di 5 stanze con sorgenti centralizzate) e sono arrivato al punto che la logica di controllo sta diventando troppo complessa e soprattutto ingombrante (usando esclusivamente CMOS serie 4000), e quindi avrei pensato di avventurarmi nel mondo a me sconosciuto dei microcontroller. Questa è l'architettura del sistema: Cd e Tuner come sorgenti centralizzate (il Cd è un normalissimo lettore da PC dal quale prelevo il segnale digitale per inviarlo ad un convertitore DA separato; il Tuner è un componente Gewiss da installazione in scatole a tre elementi; entrambi sono stati modificati in modo da permettere il controllo remoto - con relè - dell'avanzamento traccia CD e di ON/OFF e cambio canale per il tuner) La logica centrale di controllo deve gestire: accensione delle sorgenti quando almeno una delle 5 stanze risulta attiva e spegnimento viceversa; avanzamento traccia e scan delle tracce del cd quando richiesto dalle varie stanze; cambio canale del tuner quando richiesto dalle varie stanze. In ognuna delle 5 stanze è presente un amplificatore, ovviamente i diffusori, ed una logica di controllo e visualizzazione comandata da telecomando a infrarossi. La logica di controllo si deve occupare di gestire le funzioni dell'amplificatore, di visualizzzare lo stato (sorgente e volume) e di inviare i segnali di acceso, cd skip, cd scan, cambio canale tuner all'unità centrale.
La logica di controllo dell'amplificatore e di visualizzazione è la più complessa e lo spazio a disposizione (scatola incassata a parete da tre elementi) è scarso, e questo mi ha indotto a pensare al PIC. La logica locale prevede 5 pulsanti sul telecomando con le seguenti funzioni: ON/OFF che deve accendere l'amplificatore e tutta la parte di controllo e visualizzazione (questo segnale è bistabile ed attiva un relè sul ricevitore ad infrarossi) SOURCE che si occupa di selezionare l'opportuno ingresso dell'amplificatore: gli ingressi sono 4 (cd, phono, tuner e aux) e necessitano di 4 segnali (1 attivo per volta) di comando separati, a meno di inviare i 4 bit in seriale e successivamente decodificarli sull'amplificatore, magari montando sullo stesso un ulteriore PIC. In alternativa, sull'ampli è previsto un 4022 che si occupa di selezionare gli ingressi, ed a questo sarebbe sufficiente portare un segnale di clock. VOLUME + e - che si occupa di gestire il livello di uscita dell'ampli sul quale si trova un AD7528 (convertitore DA a 8 bit) utilizzato per la regolazione del livello (256 livelli di volume). Questo necessita di una parola a 8 bit che rappresenta il livello desiderato ed un clock su un pin che si occupa di accettare la suddetta parola alternativamente per il convertitore destro e sinistro (essendo stereo). Non posso portare la parola a 8 bit in parallelo poichè non ho cavi sufficienti, per cui ho 2 possibilità: sull'ampli è già predisposto un contatore up/down (2 contatori 4029) e quindi potrei utilizzare questi portando all'ampli soltanto il clock per contare ed il segnale di up/down; la seconda soluzione è quella di portare tutti i segnali in seriale e decodificarli sull'ampli, come per la sorgente, con un altro PIC MUTE segnale bistabile che cortocircuita l'ingresso dell'ampli. In questo caso è sufficiente portare un filo all'ampli. DISPLAY installato nella stessa scatola a parete che contiene il ricevitore a infrarossi, nonchè la logica di controllo e visualizzazione. Questo (probabilmente un 2x16 LCD a matrice di punti) deve visualizzare la sorgente selezionata (Cd, Phono, Tuner, Aux), il livello del volume (con una barra che cresce all'aumentare del livello), il muting (indicando MUTE e facendo lampeggiare la barra che rappresenta il livello) e la funzione di scan del cd, solo se la sorgente attiva è il CD (indicando SCAN e magari facendo scorrere la parola CD).
Ora passo alle domande:
E' il caso di utilizzare un PIC? Se si quale? uno della serie PICAXE????? (il numero delle porte I/O dipende dalla scelta se trasmettere tutto in seriale o meno, per la memoria dati necessaria non saprei dire - devo salvarmi la sorgente selezionata ed gli otto bit che rappresentano il livello del volume?) E' il caso di trasmettere tutto in seriale e quindi utilizzare un PIC anche sull'ampli? E' il caso di utilizzare un PIC anche sull'unità centrale di controllo che altrimenti necessita di 7 IC (1 x 555, 1 x 4013, 1 x 4040, 1 x
4075, 1 x 4070, 2 x 4093)? I PIC con flash rom si scrivono e si cancellano all'infinito senza più problemi di UV o di scrittura una sola volta? Qual'è il setup minimo indispensabile per programmarli? Come faccio a verificare se il programma funziona senza costruire tutto l'hardware? Esistono dei sistemi di sviluppo software che permettono di interfacciare il PIC col PC e verificare il risultato dei programmi? C'è un sistema di debug? I PIC si programmano con un assembler proprietario o cos'altro? Sapete indicarmi qualche link dove un profano come me puù apprendere i primi rudimenti di programmazione? Quale display LCD utilizzare (interfaccia semplice con il PIC)?Ringrazio chi ha avuto la pazienza di leggermi fino a questo punto, e ringrazio ancor di più soprattutto chi avrà anche la pazienza di aiutarmi rispondendo a questo post.
Ciao