Comunicazione in SPI da PIC16F84 a PGA2311 (o CS3310)

Mar 02, 2010 7 Replies

Ciao a tutti, =E8 possibile gestire una comunicazione seriale SPI adottanto un microcontrollore PIC16F84 ? Dovrei comunicare con un solo PGA2311 che =E8 un controllore di volume digitale per 2 canali. Dal sito della microchip vedo che alcuni microcontrollori hanno integrate delle "Digital Communication Peripherals" che possono essere configurate anche come SPI a 3 fili, ma il 16F84 non ce l'ha. Che cosa sono queste Digital Communication Peripherals ? Sono indispensabili per la comunicazione SPI o aiutano nella compilazione del codice riguardo tale comunicazione seriale? grazie


Lucast85 ha scritto:

è un hardware dedicato,all'interno del uC, che ti aiuta a gestire la comunicazione SPI. se proprio vuoi usare 16F84 puoi fare il tutto gestendo la comunicazione SPI in modo software.....ma visti i prezzi di questi uC ti conviene acquistarne 2 per i tuoi scopi con integrata la periferica SPI. emi

Il 02/03/2010 14.09, Lucast85 ha scritto:

Si puoi farlo tranquillamente tramite software, se ti serve solo per quello è inutile utilizzare pic superiori.

Ok grazie! Da quel che ho capito dovrebbe bastare un segnale di clock inferiore a

6.25Mhz (letto sul datasheet del pga2311) mettiamo ad esempio 1MHz sul pin SCKL del pga, un segnale attivo basso sul chip select input CS solo quando scrivo dati sul pga, infine invio i 2 byte che controllano i 2 canali con bit di durata 1/fclock sul pin SDI (del pga). In questo tipo di comunicazione, il segnale di clock deve essere sempre attivo, o solo quando devo comunicare con i vari dispositivi ?

Si di solito si mette CS basso, mandi il primo BIT su SDI e confermi con SCLK 0>1>0 . Poi devi vedere sul datasheet magari tra i due byte ci vogliono dei CLK o settare il CS per il byte sucessivo. Il CLK va mandato solo per confermare il BIT non serve clock continuo, per quanto riguarda la velocità non farti problemi con un pic anche a

10Mhz non hai problemi ci stai dentro.

Alternativa : usi un PIC16F873 che ha la SPI a bordo. Tempo fa feci un accrocchio che acquisiva da un potenziometro lineare (alla scala logaritmica ci pensa il PGA231x) una tensione (per mezzo dell'ADC) e la mandava a 3x PGA2310 per fare un controllo volume a 6 canali

Ciao CG

ica

In effetti dovrei fare un accrocchio simile al tuo, con un display lcd

16*2 (hd77480) per la visualizzazione dei livelli volume, il pga2311, ricevitore/decodificatore ir per l'acquisizione dei dati (aumento e riduzione volume, bilanciamento e mute) da un telecomando universale, ed infine un encoder rotativo per gestire il volume da una manopolina esterna... Ho disponibile sia un PIC16F84 che un PIC16F876. Col primo i pin che ho disponibili dovrebbero appena bastare ad occhio e croce, col secondo ho anche l'hardware SPI. Dato che =E8 il mio primo lavoro con i pic e sicuramente proceder=F2 piccolissimi passi, quale mi consigli? La difficolt=E0 di programmazione e progettazione per i due pic, dovrebbe essere la stessa ?

Ok....

usa il secondo....ha anche più memoria programma e ram

Sono identici, solo che il secondo ha più I/O e periferiche. Se vuoi farti male programmando in assembly, il secondo ha più banchi di registri. Se programmi in C ci pensa il compilatore

Ciao CG

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required