Go Down

Topic: Far comunicare GRBL e arduino uno (Read 11066 times) previous topic - next topic

cyberhs

La controprova è quella di ridurre ulteriormente il baud rate a 4800 e provare.
Proverei anche a ridurre un po' i due buffer RX_BUFFER_SIZE e TX_BUFFER_SIZE nel caso il problema fosse la memoria RAM dello stand alone (vedi riga 29 del serial.h).
Comunque, alla riga 205 di config.h c'è opzione che abilita il protocollo Xon-Xoff, anche se il commento indica che forse non funziona.

axl936

ok
per primo provo a ridurre a 4800 e vediamo..

come ulteriore prova ridurro' il buffer

e come ultimo poi provero' abilitando il "xon/off" ma avevo letto in giro che era molto problematico di suo
comunque una prova la faccio

..vediamo..

axl936

ciao
non ho ancora provato quelle due cose, perhce sono ancora in giro, ma mi e' venuto in mente una cosa..

Il grbl ha un risonatore ceramico, mentre il "master" ha un quarzo +i soliti 2 condensatori..
Potrebbe essere una differenza di oscillazione (dalla quale il software calcola i tempi) a darmi il problema ??
Che ne pensi ?

cyberhs

Certo il risonatore ceramico è meno preciso del quarzo, ma perché, allora, lo stesso GRBL funziona con il PC?

axl936

bella domanda..
me lo chiedo anche io..
comunque ho fatto le prove che mi hai indicato..

abilitando xon e xoff si comporta come sopra.. glielo mando ma non lo "sente"
..e' come se il grbl avesse problemi di "ricezione", nonostrante sul suo rx i dati arrivino corretti..

Ho provato a ridurre il buffer di ricezione e non cambia nulla
Ho provato a 4800 e migliora un pochino, ma la solfa e' quella..

Hoi anche provato ad alimentare il tutto a batteria, ma anche li' nessun miglioramento

Adesso voglio provare ad invertire i 2 chip (e relativi programmi caricati) per vedere se i problemi di ricezione me li ritrovo nel "master"


axl936

Ciao
stanotte stavo provando alcune cosette, invertendo i 2 chip, ma non e' cambiato nulla..

Mentre armeggiavo avevo l'oscilloscopio acceso ed avevo il probe collegato ad un filo LIBERO..
Mi scappa l'occhio e sullo schermo avevo un sacco di SPIKE !!???!!
Allora mi e' venuto un dubbio.. ho provato a verificare i pin NON UTILIZZATI dei chip e mi si ripetevano gli spike

Allora ho preso un pugno di CHOKE per RF e le ho messe sui cavi di alimentazione, sul bus I2C, sui 2 cavi TX e RX, e sui cavi SPI della SD..

MAGIA !!
con la configurazione attuale (non ricordo neanche a che punto sono..) FUNZIONAAAAA !!

Prima di cantar vittoria adesso devo tornare indietro passo passo e verificare, ma e' gia' incoraggiante..

Forse mandando i dati da pc, (stavo usando un piccolo laptop in batteria..) in qualche modo aggiravo l'ostacolo... oppure non sicreava il problema..

Infatti sul cavo USB il CHOKE e' presente, oltre ad essere schermato..
Inoltre il convertitore usb2ttl era infilato direttamente sulla breadboard subito attaccato al GRBL...

BOH !!??

Spero che si tratti di quello..
Verifico appena ho un minuto

cyberhs

Fammi vedere lo schema dello stand alone.

axl936

In verita' lo schema dello stand alone e' presto detto
...poi se vuoi te lo butto giu lo schema e poi lo posto, ma e' banalissimo:

c'e il 328 (GRBL) su una breadboard , un risuonatore ceramico 16mhz sui pin relativi, una R da 33k in pullup al pin 1 (reset), un condensatore ceramico da 100nF tra Vcc e GND, vicinissimo al chip.
Poi ci ho messo solo 3 led e relative 3 resistenze e  in serie (una per uscita) sui piedini relativi al "direction" dei 3 motori, giusto per vedere se "sta muovendo i motori dei 3 assi X Y Z".

Poi i 2 fili TX e RX che vanno al master (piu' massa e Vcc che prelevo dal master stesso)

Questi fili (Tx Rx Vcc Gnd) sono circa 20 cm.

NULL'ALTRO !
I motori o altre parti di "potenza" non li ha neanche visti durante queste prove !
Ho "smontato" il chip dallo zoccolo della scheda del GRBL (che e' dentro un contenitore con il suo alimentatore, i driver dei motori, e tutto il resto..)  e messo su breadboard per comodita' di non avere tutto il resto attorno a dar fastidio durante le prove.

Se di indichi meglio a cosa stai pensando ti posto il dettaglio di quello !
ok ?
Grazie
ciao

cyberhs

Quote
...un risuonatore ceramico 16mhz sui pin relativi...

A due pin o tre pin?
Nel primo caso credo dovresti inserire sui piedini un paio di condensatori da 15/22 pF verso massa.
In entrambi i casi dovresti montarlo molto vicino ai pin e possibilmente con piano di massa sottostante.

axl936

#24
Jul 05, 2014, 09:29 pm Last Edit: Jul 05, 2014, 09:42 pm by axl936 Reason: 1
ciao
il risuonatore e' di quelli a 3 pin, inserito sulla breadboard in modo che i 2 pin esterni siano direttamente collegati ai relativi pin del 328 (9 e 10) , attaccatissimo al chip, il terzo, (quello cntrale di massa) nel piedino di massa del chip che e' li di fianco ( 8 )
Senza cavetti di riinvio, solo usando i pin del risuonatore che sono lunghi  circa 10mm.

Immagine d'esempio, NON del risuonatore in questione che e'  da 16 Mhz !!

http://www.tekkna.it/open2b/var/catalog/l/28803.jpg


Adesso provo a mettere in serie all'alimentazione dello standalone (grbl) delle VK200

http://www.rf-microwave.com/schede/images/00002637.jpg


Per cercare di capire meglio la questione..

axl936

Certo...
in ogni caso mi resta sempre il tarlo del perche' con la "software serial" funzionava anche senza tanti filtri o accorgimenti particolari !!

axl936

ciao
se puo' essere d'aiuto per qualcuno, dopo aver rifatto un piccolo stampato con i due 328 standalone direttamente su di esso, anche con i soliti basilari accorgimenti tutto funziona senza problemi !
Per sicurezza ho messo comunque le vk200 sulle alimentazioni, che male non fanno.
Ho provato anche con i motori collegati, in lavorazione con l'elettromandrino e tutto si comporta come dovrebbe.
Mi rimane un po di amarezza per la mancata risposta ad alcune domande, ma almeno ho raggiunto il mio scopo.
Ora ho un controller per CNC che preleva i dati da una schedina SD, senza necessita' di un pc acceso, che per fare cose semplici o ripetitive va piu' che bene!!
Le cose di base le posso comunque "vedere" su un lcd 16x2 e tramite qualche semplice tasto posso anche gestire alcune cose di base.

Grazie comunque per l'aiuto !

Go Up