Newsgroup: it.hobby.elettronica.digitale
Titolo: Slave RX da due master...

Ciao a tutti
Un parere...
Mi trovo a dover realizzare un dispositivo che deve fare da slave verso due
altri dispositivi che nei suo confronti sono master.
Uno dei due master continua ciclicamente a inviare richieste (circa 50 al 
secondo)
L' altro ogni tanto (puo essere una ogni 10 min o 1 s) ma il suo messaggo è 
un pacchetto unico
non perdibile quindi molto importante ( priorità maggiore)
Usando un normale micro con 1 solo uart vorrei fare così :
Tramite due porte AND collegate a due pin del micro stesso
creo la possibilità di selezionare la linea desiderata
Collego la linea prioritaria ( secondo dispositivo) anche al piedio relativo 
ad un interrupt
sla tansizione di stato per rilevare una eventule comunicazione in arrivo.
Quindi in condizioni normali il micro continua a ricevere dal dispositivo
ciclico (del quale posso perdere qualche pacchetto tanto deve accendere un 
lampadina)
e nel momento in cui ci sia una transizione causata dall' altro dispositivo, 
la routine di
Int relativa tamite la porta AND collegata ad un Pin permete la ricezione 
del solo dispositivo prioritario.
Appena ricevto tutto il pacchetto importante torno a " badare" alla linea 
ciclica
per per ovi motivi deve aver cntinuato la precedente richiesta visto che 
quella prima
non è andata a buon fine...
Puo andare ?
Grazie
Alx PD
[FIDOCAD]
MC 75 30 0 0 690
LI 100 45 130 45
LI 75 30 75 20
LI 75 20 130 20
MC 75 50 0 0 690
LI 100 35 100 55
LI 75 60 75 75
LI 75 75 130 75
SA 100 45
LI 75 40 45 40
LI 75 50 45 50
TY 115 15 5 3 0 0 0 * Port.2 (out)
TY 110 40 5 3 0 0 0 * RX uart mcu
TY 110 70 5 3 0 0 0 * Port.1 (out)
TY 110 90 5 3 0 0 0 * Port.0 (Input + Int)
LI 65 50 65 95
LI 65 95 130 95
SA 65 50
TY 30 45 5 3 0 0 0 * Linea TX2
TY 30 35 5 3 0 0 0 * Linea TX1

 ha scritto nel messaggio 
news:459eb4bd$0$19099$4faf...@reader4.news.tin.it...


 Usando un normale micro con 1 solo uart vorrei fare così :
valuta l'opportunita' di usare una uart software
per ricevere da uno dei due master

 per ricevere da uno dei due master
Ci ho pensato ma credo che mi tenga impegnato il micro
a eseguire un numero maggiore operazioni in genere
tra shift , decrementi  e confronti vari
mentre l'uart con una lettura me la cavo :-)
Per questo mi sembrava poco interessante
Pero non č da scartare
Grazie
Alx 

 Usando un normale micro con 1 solo uart vorrei fare così :
 > [...]
Prenderei in esame la possibilità di utilizzare una UART software, come 
giustamente suggerito da mmm. Io utilizzerei la linea ad alta priorità come UART 
software: UART software non vuol dire che c'è rischio di perdere dati. 
Naturalmente tutto dipende dalla velocità di trasmissione sulla seriale e dalla 
velocità di elaborazione del micro.
Se vuoi usare una soluzione hw come da te proposto, potresti tentare di 
collegare direttamente la linea TX ad alta priorità agli ingressi delle AND 
(ovviamente tra di loro negati da una NOT). L'abilitazione della linea ad alta 
priorità avviene immediatamente sulla transizione negativa della linea TX. La 
disabilitazione avviene con un ritardo (scarica di un condensatore) pari almeno 
al tempo di un byte.
In questo modo potresti evitare l'interrupt e l'impegno di altri 3 bit.
Ma se quello è un pacchetto ad alta priorità, perché non pensi anche ad un 
meccanismo di ACK e di reinvio del pacchetto in caso di fallimento?

 meccanismo di ACK e di reinvio del pacchetto in caso di fallimento?
Non è possibile perchè è in grado solo di trasmettere 1 pacchetto di 14byte 
e non ha la linea RX :-)
Presente gli iButton ? Ti dicono solo chi sono e poi "muoiono" ...
Grazie comunque per gli spunti
Alx PD 

 Presente gli iButton ?
No.

Io userei un micro con CAN :-)
Ti risolvi tutti i problemi di protocollo e le
collisioni le gestisce l' hardware.
Ormai si trovano micro a basso costo Atmel, PIC Phillips
etc... con il CAn controlle integrato
Il costo dell' hardware e' irrosorio, funziona in differenziale
e va da 10Kbps a 1Mbps...
Bye
Brix

 Brix