Go Down

Topic: "Negare" / "Capovolgere" linea seriale a livello Software (Read 1 time) previous topic - next topic

LucianoArdu

#15
Feb 27, 2018, 01:01 pm Last Edit: Feb 27, 2018, 01:21 pm by LucianoArdu
ok, come non detto. Grazie mille Guglielmo per le sempre celeri e utili risposte.

EDIT:
Leggendo le specifiche della SoftwareSerial ho capito che la limitazione è che il pin dedicato all' RX deve necessariamente supportare il  Change Interrupts.
Visto che io sul Mega utilizzo la Seriale3 ho visto che proprio i pin utilizzati dalla UART3 (63 e 64) supportano il Change Interrupts, mentre le altre UART no.
A questo punto tecnicamente sarebbe fattibile? giusto?
Inoltre, per altro progetto simile, se usassi la UART1 un MCU tipo il 1284P lo stesso potrei sfruttare questa funzione, potrei utilizzare la seriale Hardware o quella Software a mio piacimento.
Tutto corretto? o sbaglio qualcosa?
Grazie ancora.

docdoc

Speravo si potesse fare su quella Hardware in quanto tutto il sistema è ormai pronto e definito.
Boh io lo farei via hardware controllato da software, ossia metterei due belle porte XOR (tipo un 7486), una per TX e una per RX ed un pin per il controllo della logica. Ossia una cosa del tipo:



Per cui se il pin "Inv" lo metti a LOW hai la normale logica, con HIGH hai la logica invertita.



Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

gpb01

Puoi usare SOLO i pin ed le MCU che l'autore ha deciso di gestire nella SoftwareSerial (salvo che non ne fai una tua versione e gestisce altri pin che, comunque, devono poter essere collegati ad un change interrupt).

Ora, per la MEGA, l'autore parla dei pin:  10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69) quindi ... puoi usare i due pin 63 e 64.

La SoftwareSerial dovrebbe supportare anche l'ATmega1284P ... non so però bene su quali pin ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Boh io lo farei via hardware controllato da software, ossia metterei due belle porte XOR (tipo un 7486), una per TX e una per RX ed un pin per il controllo della logica.
... soluzione senz'altro da preferire e sicuramente più affidabile della SoftwareSerial che, come si sale di velocità (oltre i 9600 bps) ... comincia a predere colpi ... ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

LucianoArdu

Boh io lo farei via hardware controllato da software, ossia metterei due belle porte XOR (tipo un 7486), una per TX e una per RX ed un pin per il controllo della logica. Ossia una cosa del tipo:



Per cui se il pin "Inv" lo metti a LOW hai la normale logica, con HIGH hai la logica invertita.




Si certo, questa è una ottima soluzione, ma è comunque una modifica Hardware.
Come ho già specificato non posso modificare l' attuale Hardware (se non con sistemi esterni come già faccio con 2 NPN). Per eventuale nuovo progetto Hardware di certo questa è una delle migliori soluzioni utilizzando la seriale Hardware.

Grazie ancora ;)

Silente

Allora DEVI usare una seriale software, che ti permette di fare quanto ti serve. Il problema é che non puoi usare velocità superiori a 9600 (velocità standard)
Dove va un numero va una variabile, una funzione e/o  un test.
Per ottenere devi spiegare

Strumenti/Formattazione automatica fino alla morte!
Cristianesimo:bibbia='C':K&R

Go Up