Se sei già registrato           oppure    

Orario: 02/05/2024 09:53:11  

 

Energia Alternativa ed Energia Fai Da Te > PPTEA

Pagine: (2)   [1]   2    (Ultimo Msg)


Comunicazione tra PPTEA <> PPTEA, problema di comunicazione master slave
FinePagina

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 25/5/2013,00:37

PPTEA 4.2.0

CIAO A TUTTI

ho programmato 2 pic in modo da creare una comunicazione seriale tra loro e non riesco più a cavarci i piedi. I due programmi li ho presi dalla discussione della domotica.


10 'PPTEA-PING PONG DUE PPTEA:PPTEA MASTER
20 SETIO=&H400FF
25 SERIALSPEED=SPEED_9600
27 CONSTANT ATTESA_MAX_RISPOSTA=1 ' ASPETTO AL MAX 1 SECONDO
30 USBOUT ="TEST PING/PONG MASTER"
40 CNT++
47 STR="<ping>"
48 PRINT "ERRORI:" & NR &"--> " & STR
50 SERIALOUT=STR
55 RESET_TIMER
60 H=SERIALINPSTR
65 IF TIMER > ATTESA_MAX_RISPOSTA THEN :NO_RESPONCE
70 IF H="" THEN 60
75 IF H="<pong>" THEN 90
77 NR++
80 PRINT "ERRORE:" & H
90 WAITMS 250
100 GOTO 40
150 :NO_RESPONCE
155 PRINT "NESSUNA RISPOSTA"
156 BEEP
157 SERIALCLOSE
160 NR++
170 GOTO 40


e

10 'PPTEA-PING PONG DUE PPTEA:PPTEA SLAVE
20 SETIO=&H400FF
25 SERIALSPEED=SPEED_4800
30 USBOUT ="TEST PING/PONG SLAVE"
60 H=SERIALINPSTR
70 IF LEN(H)=0 THEN 60
72 IF H="<ping>" THEN 80
76 PRINT H
78 GOTO 156
80 RASPSEND="<pong>"
90 CNT++
156 BEEP
157 PRINT "N:"&CNT
170 GOTO 60

i risultati del dialogo tra loro è questo

MASTER
ERRORE:<ping>
ERRORI:50--> <ping>
ERRORE:<ping>
ERRORI:51--> <ping>
ERRORE:<ping>
ERRORI:52--> <ping>
ERRORE:<ping>
ERRORI:53--> <ping>

SLAVE
N:655361
0.000000
N:33685504
0.000000
N:33685504
N:655361
N:1
N:655361
N:655361

ho dovuto inserire la riga 25 per differenziare la SERIALSPEED
SERIALSPEED MASTER maggiore dello SLAVE ... es: MASTER 9600 --- SLAVE 4800 (se uguali, SLAVE non riceve NULLA)

ho provato ad invertire le programmazioni nei pic, il risultato non cambia
ho creato una terza scheda inserendo un terzo pic, alternando le programmazioni, il risultato non cambia.

PS: è normale che collegando i soli pin 17-18-gnd il pic si autoalimenti? senza dare il +5 ?

CIAO
marpad

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 25/5/2013,05:53

Vediamo un po di capirci qualcosa...la comunicazione tra due PPTEA avviente incrociando TX-RX e mettendo la massa in comune,quindi 17 con il 18 dell'altro pic , il 18 con il 17 dell'altro pic e massa comune.Se non alimenti uno dei due pic...è normale che avvengono cose strane. La linea 80 dello slave è meglio che sia SERIALOUT="<pong>". Fai la prova ...se continua a non funzicare...farò alcune prove lunedì.
Ciao
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 25/5/2013,08:21

La velocità della seriale DEVE essere uguale per entrambi; in caso contrario, può accadere che uno dei due riceva qualcosa, ma sicuramente non i dati che ha inviato l'altro. Innanzitutto, collega ogni PPTEA correttamente, alimentazioni e tutto; poi, quale versione di firmware usi? (ops, visto ora in testa al tuo msg... 4.2.0) Prima della 3.2 ci sono stati diversi problemi con la seriale, venuti fuori proprio con la domotica... Personalmente, nelle varie prove fatte con le seriali, ho avuto problemi solo collegando una stampantina termica rs232, ma tutto si è risolto impostando questa a 4800 anzichè facendo lavorare il PPTEA a 9600...
Volevo giusto sperimentare una comunicazione PPTEA-PPTEA via convertitore RS232-Bluetooth... vedo di combinare qualcosa...
Come consigli: fai le prove a 4800, poi sali; usa un MAX232 e prova a far inviare i dati dal PPTEA al PC, (puoi usare hyperterminal di win) e viceversa, per entrambi; poi prova a farli parlare tra loro...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 25/5/2013,09:05

CITAZIONE (NonSoloBolleDiAcqua @ 25/5/2013, 06:53)
La linea 80 dello slave è meglio che sia SERIALOUT="<pong>"

Ok, provo

grazie

marpad

 

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 25/5/2013,09:34

CITAZIONE (MarKoZaKKa @ 25/5/2013, 09:21)
La velocità della seriale DEVE essere uguale per entrambi; in caso contrario, può accadere che uno dei due riceva qualcosa, ma sicuramente non i dati che ha inviato l'altro. Innanzitutto, collega ogni PPTEA correttamente, alimentazioni e tutto; poi, quale versione di firmware usi? (ops, visto ora in testa al tuo msg... 4.2.0) Prima della 3.2 ci sono stati diversi problemi con la seriale, venuti fuori proprio con la domotica... Personalmente, nelle varie prove fatte con le seriali, ho avuto problemi solo collegando una stampantina termica rs232, ma tutto si è risolto impostando questa a 4800 anzichè facendo lavorare il PPTEA a 9600...
Volevo giusto sperimentare una comunicazione PPTEA-PPTEA via convertitore RS232-Bluetooth... vedo di combinare qualcosa...

la cosa strana è che se la velocità della seriale è uguale per entrambi, lo SLAVE non da il risultato di risposta. Ho provato fino a 57600, si parlano e comunicano l'errore, solo se SLAVE è inferiore.

Inizialmente ho provato comunicando con la 3.2 <> 4.2, vorrei fare una tastiera Wi-Fi (SLAVE 4.2 seriale <> MASTER 3.2 Wi-Fi/seriale <> SLAVE 3.2 Wi-Fi) e riscontravo già questi problemi, pensando che fosse un problema di frm diversi ho successivamente agg. entrambi a 4.2 ottenendo lo stesso risultato.

CITAZIONE (MarKoZaKKa @ 25/5/2013, 09:21)
Come consigli: fai le prove a 4800, poi sali; usa un MAX232 e prova a far inviare i dati dal PPTEA al PC, (puoi usare hyperterminal di win) e viceversa, per entrambi; poi prova a farli parlare tra loro...

Grazie

ciao
marpad

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 27/5/2013,11:16

Ho provato questo codice, facendo parlare una 3.2 con una 4.2.0... vedi se ti funziona...


10 PRAGMA INTERNAL_EEPROM
20 SERIALSPEED=SPEED_4800
30 SETIO=&H60000
40 CADS=0
50 OUT=0
60 WAITMS 1000
70 TS=TIMER
80 DTAOUT=CHR((Rnd MOD 24)+65)
85 SERIALOUT=DTAOUT
86 DTAIN=""
90 DTAIN=DTAIN & SERIALINPSTR
100 WAITMS 100
110 IF LEN(DTAIN)<20 AND TIMER-TS<0.5 THEN 90
120 IF DTAIN<>"" THEN 130
122 T=(Rnd MOD 100)+25
125 WAITMS T
126 GOTO 70
130 USBOUT=DTAIN
140 LCDCLEAR
150 LCDPOS=17
160 LCDWRITE=DTAIN
165 SERIALCLOSE
170 GOTO 70



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 29/5/2013,20:31

ciao Markozakka

ho un "HIN202" secondo te è compatibile .... posso utilizzarlo al posto del max232?

grazie
marpad

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 31/5/2013,06:58

L'HIN202 dal datasheet è pin-compatibile con il MAX232, quindi direi che puoi utilizzarlo senza problemi... Occhio ai collegamenti di TX ed RX... faccine/smile.gif
Il codice che ho postato funziona?



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 31/5/2013,14:54

mi sono fermato.

Sto seguendo il tuo consiglio, provo ad eseguire un collegamento rs232 diretto con il pc per ogni singola scheda ... dovrei riuscire ad individuare se il problema è il pcb o pic ...

Approfitto dell'occasione per mettere le mani avanti con i lavori (mentali) ... il collegamento tra pic poterebbe essere wi.fi (PPTEA 3.2) o filare (tutti i pic PPTEA 4.?.?) ... se filare, e dando per scontato che il cavo passerà nelle tubazioni elettriche ... è conveniente usare RS-232 oppure RS-485 .... ????

grazie
marpad

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 31/5/2013,15:43

...attenzione, il wi.fi. è un collegamento RF a 433MHz, non un link wireless ethernet...
Io ho usato con successo dei transceiver CAN-BUS per il collegamento via cavo, di cui parlo nel thread della domotica... che tratta devi coprire?
Se puoi, fai comunque il test con il mio codice, collegando direttamente i due pptea, incrociando ovviamente TX ed RX...




Modificato da MarKoZaKKa - 31/5/2013, 17:01


---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 31/5/2013,16:58

ok, sono pronto, stasera faccio le prove con il tuo codice

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 14/6/2013,23:20

da qualche giorno sto giocando con una coppia di adattatori RS232/Bluetooth avanzati da un lavoro... per farli funzionare con il PPTEA in maniera corretta, ho dovuto rispolverare nella memoria tutti i cavi null-modem che conosc(ev)o, ritrovando quello con "fake handshaking", ovvero che riporta i segnali di handshaking verso lo stesso apparato, senza trasmetterli all'altro. In questa maniera si perde il controllo hardware della trasmissione (il trasmettitore richiede la possibilità di trasmettere, il ricevente gli da il via libera, il trasmettitore invia dati fino all'esaurimento del pacchetto o fino a che il ricevente non lo ferma) ma, per velocità basse e pacchetti dati corti, non crea problemi. In pratica, si tratta di ponticellare tra loro i pin 1-4-6 ed i pin 6-7 (del connettore DB9), e collegare solamente pin TX/RX e la massa dell'adattatore al PPTEA, ovviamente via il ben noto MAX232 o simili. In questo modo, la linea DSR(6) e la linea DTR(4), nonchè la linea RTS(7) e la linea CTS(8) sono rigirate sul adattatore, che crede di avere il via libera e invia e riceve dati senza problemi. Il pin 1, ovvero il CD (Carrier Detect) cioè quello che nei modem fonici serviva per indicare al PC che era presente la portante sulla linea, in questa applicazione non servirebbe, ma dato che una volta fatto l'adattatore, magari viene bene anche in altri casi...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

Marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 26/11/2014 19:24:28

Ciao MarKoZaKKa

Il ping è stato un po lungo, ma è arrivato. Il tuo programma test funziona benissimo.
Scusa per i tempi di risposta un po lunghi, il tempo a mia disposizione è poco

marpad

 

MarKoZaKKa

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1886

Stato:



Inviato il: 27/11/2014 10:58:44

CITAZIONE (Marpad65, 26/11/2014 19:24:28 ) Discussione.php?54415254&1#MSG12


Scusa per i tempi di risposta un po lunghi, il tempo a mia disposizione è poco

Benvenuto nel club...

per debuggare la comunicazione seriale del PPTEA, viene molto bene un adattatore USB-TTL tipo questo che ti permette di eliminare il problema dell'adattatore ttl-rs232 (MAX232 o altro) che a volte "ci mette del suo" nel non far funzionare le cose... nella mia esperienza la comunicazione seriale ha bisogno di qualche accorgimento, ad esempio cicli di attesa sulla ricezione; oppure nel sistema di monitoraggio remoto dei consumi via contatore enel in un'altro thread, il codice del ricevitore starebbe nei 256byte, gira ma non riceve, lo stesso codice messo in eeprom riceve, ma magari è il mio pic "maffo", devo indagare... come consiglio, sviluppa e debugga bene la comunicazione, poi passa al resto del codice. Qualsiasi cosa, chiedi!

p.s. aggiorna i pic alla 4.2.6, almeno parliamo la stessa lingua...



---------------
Tecnico qualificato in clownerie
Windsurfer a tempo perso
Slalomaro senza speranze

 

Marpad65
KiloWatt


Gruppo:Utente
Messaggi:230

Stato:



Inviato il: 06/12/2014 19:22:51

CITAZIONE (MarKoZaKKa, 27/11/2014 10:58:44 ) Discussione.php?54415254&1#MSG13

Qualsiasi cosa, chiedi!



Non Mancherò

la Ver 4.2.6 non riconosce la porta USB. non so il motivo. Ci riproverò

 
 InizioPagina
 

Pagine: (2)   [1]   2    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum