Newsgroup: it.hobby.elettronica.digitale
Titolo: PIC 16F876 e DAC

Ciao a tutti,
il mio problema è il seguente:
volevo convertire le uscite del PIC 16f876, da digitale ad analoico.
Non volevo utilizzare la porta SPI, ma semplicemente collegare i pin
del pic (ad esempio la portaB) all'ingressi di un convertitore DAC.
Ho provato ad usare un DAC0832 ad 8bit, ma la tensione di uscita è
sempre fissa a 0.5V.
Qualcuno di voi ha esperienza in tal senso? Potreste darmi qualche
consiglio? 
grazie e ciao a tutti


se posti qualche dettaglio in piu' si puo' vedere
hai seguito attentamente le istruzioni del datasheet dello '0830 ?
potrebbe non bastare collegare solo il bus dati
l'uscita del dac e' in corrente va(nno) collegate almeno ad una 
resistenza vesro massa per 'vedere' qualcosa


Ciao mmm e grazie per il tuo interessamento,
ti descrivo subito il mio intento:
.
Il circuito che vorrei realizzare è semplicissimo. Ovvero dal PC
tramite RS232 accendo e spengo 8 led collegati alla porta B del del PIC
16f876. (E fino a qua nessun problema).
Il mio intento era quello di collegare le 8 uscite della porta B del
PIC agli ingressi del DAC 0832 (da DIO a DI7).
E qua sorgono i problemi......   con il  DAC.
In effetti ho scaricato il datasheet del DAC in questione ed avevo
preso in considerazione l'applicazione delscritta nel paragrafo 2.4
(figura 9). Il problema sono però i segnali di sincronizzazione che
non so come collegarli.
Potresti darmi qualche suggerimento a proposito? (sia sui segnali di
sincro. che sui collegamenti che dovrei fare)
Ciao e grazie mille delle risposte

 
P.S. una soluzione piu' economica , praticamente al solo costo delle 
resistenze, era l'uso di un R-2R ladder con i PIC sembrano funzionare 
abbastanza bene

Allora proviamo a vedere se ho capito......
Ho disponibile sul PIC tutta la porta A, ovvero RA0,RA1,RA2,RA3,RA4,RA5
Collego RA0 al pin 19 del DAC (pin dell' ILE)
Collego RA1 al pin 18 del DAC (pin dell' WR2)
Collego RA2 al pin 17 del DAC (pin dell' XFER)
WR1 cosa intendi per gestito dal micro? (Intendi che quando lo stato
della porta B, dove nel mio caso sono i livelli logici a 5V o 0V da
convrtire, devo abilitare nello stesso tempo anche WR1?. Se si deve
essere alto o basso?
Collego RA3 al pin 1 del DAC (pin del CS)
Il resto del prog è chiaro.
ti ringrazio nuovamente

Forse avevo capito male.....
posso collegare direttamente i pin dell' ILE a 5V e quelli del WR2,
XFER e CS a massa?
Se ho capito questi non variano mai, quindi lo potrei fare?
1) In sostanza dovrei abilitare nel PIC l' uscita riferita a WR1 con 1
logico (5Volt),
2) scrivere il dato nella porta B,
3) mettere a zero il bit di WR1
4) ritardo di 1sec.
5) WR1 alto
ciao e grazie

 
per inciso , per fare prove di questo tipo ti conviene tirare su un 
programma che riceve comandi dalla seriale e li traduce in operazioni 
sui pin del micro , con comandi del tipo leggi portx scrivi portx scrivi 
trisx ( per settare la direzione dei pin ) scrivi bit di portx
potra' sembrati una smazzata ma per sperimentare ne vale la pena, in 
questa maniera puoi provare i protocolli di comunicazione senza dover 
riprogrammare il pic ogni volta.

Ti ringrazio mmm dei tuoi consigli, mi metterò subito al lavoro
Ciao e grazie di tutto

Ciao mmm,
volevo aggiornarti sulla sitazione:
Adesso funziona tutto bene, in effetti il segreto è leggere per bene
il datasheet invece di partire a testa bassa come i tori.
Quindi per il momento sono riuscito ad inviare un carattere dalla
tastiera del PC, e convertirlo in una tensione
Cmq ora avevo in mente di acquisire un segnale analogico, elaborarlo
con il pic, mandarlo al DAC e ottenere la nuova tensione analogica.
Diciamo che la seconda parte, ovvero PIC e DAC è pronta, mi manca la
prima
In effetti il segnale che vorrei acquisire si può presentare in 2
stati:
o -60mv oppure +60mv. Vista la piccolezza del segnale avevo pensato ad
un conv. ADC esterno collegato al PIC in SPI.
Sapresti mica darmi qualche consiglio a propostito? 
Ciao grazie

 
De nada
P.S. un consiglio : nno ti conviene continuare i thread se cambi domanda 
rischi di perdere visisbilita'!