HELP da esperti PIC ad un principiante

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

Reply to
antoniobanchi
Loading thread data ...

Qualcosa di più semplice no?!?Per quanto hai detto prima non so aiutarti, non ho mai fatto cose del genere e inoltre son un po' fuori allenamento. Comunque mi sembra qualcosa di abbastanza complesso,soprattutto come primo progetto,però se hai architettato tutto ciò magari ci riesci. In ogni caso buona fortuna!! Forse posso dirti qualcosa sulla parte finale del tuo post:

Infinito è una parola grossa...diciamo tante volte:sui datasheet dei vari pic trovi l'indicazione di quante volte è proggrammabile la flash

Un progrrammatore(in rete ce ne sono tanti...i più gettonati sono quelli della stirpe Propic),un programma che gestisca la fase di scrittura, anche qui ce ne sono diversi e free (Icprog...), un ambiente di sviluppo, MPLAB scaricabile gratuitamente dal sito della Michrochip.

Qui le risposte possono essere un po' diverse.Innanzitutto l'MPLAB contiene al suo interno un simulatore che può essere utile,ma che come tutti i simulatori ha delle limitazioni per quanto riguarda la capacità di simulare certi aspetti (es.eventi asincroni...). Esiste poi l'in-circuit debugger (ICD e ICD2) che è uno scatolotto che ti consente di debuggare in tempo reale il tuo programma e ti consente di fare altre cose carine...inoltre ti consento di programmare il micro. A quanto ne so lo schema dell'ICD è disponibile da qualche parte in rete, quello dell'ICD2 no.Quest'ultimo ad esempio ti serve se decidi di utilizzare la serie 18 dei micro.(Ah dimenticavo il programmatore che ti ho suggerito prima credo non supporti la serie 18...)

Beh sì ogni micro ha il suo assembler ovviamente, ma esistono anche altre possibilità: in particolate il C.Per la serie 18 la Michrochip mette a disposizione un compilatore demo;per le altre serie esiste un compilatore con qualche limitazione(a meno che non si acquisti la versione completa) della HI-TECH

formatting link
Esistono anche poi altri linguaggi, in particolare il BASIC...cerca in rete!!

Perbacco:

formatting link
formatting link
formatting link
Magari per provare i tuoi circuiti può esserti utile
formatting link

Non saprei, ma i compilatori che ti ho suggerito hanno delle librerie che rendono la comunicazione "più semplice".

Spero di averti dato qualche informazione utile.

Ciao Marco

Reply to
Marco

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.