collegare 2 PIC insieme

salve a tutti, utilizzo un PIC16F877 che legge i canali dell'ADC e li invia alla RS232. Adesso vorrei collegarne un altro in modo che i canali letti dall'ADC del secondo pic siano inviati al primo, che li manda insieme ai suoi alla RS232.

Come è possibile fare il collegamento? ad es. SPI, RS232, oppure I2C... ...nel caso che il collegamento non avvenga nello stesso circuito, bensì tra hardware separati ci sarebbero problemi di elevata capacità data dalla linea? come è possibile oviare (buffer, driver, o altro)?

Grazie Livio

Reply to
Liv
Loading thread data ...

Metti un commutatore elettronico come il CD4067 o simili che, comandato dallo stesso PIC, legge alternativamente tutti i dati da convertire (multiplexer) e li invia ad un solo ingresso A/D. Il uP seleziona un segnale per volta, lo converte, lo legge e passa al successivo.

Ciao

Reply to
LAB

"Liv" ha scritto nel messaggio news:bLs6e.39455$ snipped-for-privacy@twister2.libero.it...

Se i due PIC sono su sue board separate conviene usare la seriale asincrona da far diventare 232 con un MAX232 (o sequiv.), la seriale gia la usi ma ne puoi implementare una software. Se invece non vuoi puoi usare la SPI ed utilizzare dei driver tipo DS1631. Se i due PIC sono sulla stessa board ciò ha poco senso, visto che conviene usare un mux analogico come ti è stato suggerito, oppure una comunicazione I2C o SPI a 5V, senza particolari accortezze, o addirittura sfruttando il bus parallelo (PORTA D ed E)

J.

Reply to
Regae

asincrona

ne

Infatti i due pic non solo sono su due board separate, ma anche su hardware separati e dovrebbero funzionare anche se un tantino distanti. Quindi penso che la seriale (RS232) sia la soluzione migliore, dato che il MAX232 permette distanze non raggiungibili altrimenti.

"Illuminami" nuovamente: allora, col PIC1 già comunico verso il PC con la RS232. Per comunicare tra PIC1 e PIC2 dovrei utilizzare le uscite seriali del PIC2 e mettere un MAX232 (ovviamente nell'hardware del PIC2). Quindi dal PIC2 userei la seriale harware, mentre nel PIC1 dovrei implementare una seconda seriale via software, per accettare i dati dal MAX232 del PIC2, perchè uso già quella hardware per comunicare col PC.

Quadra tutto?!

_____ | | |PIC1 | | |-----------MAX232--------- PC |_____| | | | MAX232 | | __|___ | | |PIC2 | | | |_____|

Reply to
Liv

"Liv" ha scritto nel messaggio news:ETy6e.40208$ snipped-for-privacy@twister2.libero.it...

Non fa una piega! :-) Per la seriale software... usa in ricezione il pin RB0 (?) così puoi sfruttare l'interrupt sul fronte di discesa per capire quando ti arriva lo start bit di un byte!

J.

Reply to
Regae

Ma il DS1631 è un termometro digitale... ...quale driver intendevi?

L.

Reply to
Liv

"Liv" ha scritto nel messaggio news:LBM6e.60111$ snipped-for-privacy@twister1.libero.it...

L'ora era tarda e Gandalf il grigio stava cavalcando verso le porte di Isengard, pensando a ben altro... quindi si è sbagliato! :-) Volevo dire 2631 (DS non c'entrava proprio niente)

J.

Reply to
Regae

che marca? Che componente è?

Reply to
tornio

"tornio" ha scritto nel messaggio news:BbS6e.41852$ snipped-for-privacy@twister2.libero.it...

Lo fanno in tanti... è un componente comunissimo! E' un quadruplo driver differenziale di linea, Philips ad esempio lo chiama am2631 (ma non ci metto la mano sul fuoco perché l'ora è sempre più tarda e gandalf il grigio sempre più stanco), ma anche national (26ls31), eccetera

J.

Reply to
Regae

Un'altra soluzione potrebbe essere multiplexare entrambe le linee Tx e Rx della seriale del PIC1, in modo da usara alternativamente per comunicare con il PC o con il PIC2.

Dovresti però usare un protocollo che ti consenta di staccare l'ascolto dal PC per passare all'ascolto del PIC2, per esempio avvisando il PC con un messaggio "non posso ascoltarti per tot. tempo" oppure mandandogli semplicemente basso CTS quando vuoi prestare attenzione al PIC2 e abilitando il controllo di flusso hardware della seriale sul PC.

Reply to
Paolo Sancono

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.