| marpad65
| 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
| 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
| 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
| 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
| 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
| 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
| Inviato il: 29/5/2013,20:31
|
ciao Markozakka
ho un "HIN202" secondo te è compatibile .... posso utilizzarlo al posto del max232?
grazie marpad
| | | | MarKoZaKKa
| 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... Il codice che ho postato funziona?
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | marpad65
| 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
| 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
| Inviato il: 31/5/2013,16:58
|
ok, sono pronto, stasera faccio le prove con il tuo codice
| | | | MarKoZaKKa
| 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
| 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
| Inviato il: 27/11/2014 10:58:44
|
CITAZIONE (Marpad65, 26/11/2014 19:24:28 )
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
| Inviato il: 06/12/2014 19:22:51
|
CITAZIONE (MarKoZaKKa, 27/11/2014 10:58:44 )
Qualsiasi cosa, chiedi!
Non Mancherò
la Ver 4.2.6 non riconosce la porta USB. non so il motivo. Ci riproverò | |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|