Comunicazione in SPI da PIC16F84 a PGA2311 (o CS3310)

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

Reply to
Lucast85
Loading thread data ...

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
Reply to
emilio

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.

Reply to
NNTP

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 ?
Reply to
Lucast85

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.
Reply to
NNTP

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

Reply to
CG Audio Laboratories

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 ?
Reply to
Lucast85

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

Reply to
CG Audio Laboratories

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.