Pages: [1] 2   Go Down
Author Topic: Arduenoveotto - prova scheda con L298 incorporato..  (Read 2876 times)
0 Members and 1 Guest are viewing this topic.
Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti! avendo un L298N mi sono detto.. perchè lasciarlo a marcire?
Con uno già ci avevo fatto un driver per motori, quello classico proposto in varie forme in rete, io avevo copiato quello della seeedstudio.
Allora vorrei provare, invece di fare una cosa modulare, a fare una scheda con l'Atmega328P, l'L298N, uscita per due motori DC, ma anche connettore per un motore stepper 4 poli, completo di eventuale collegamento per 2 potenziometri (in caso di controllo manuale dei 2DC), lettura encoder,  e lettura anche dei 2 pin di current sense. In più ovviamente porto fuori i pin che avanzano che non si sa mai...

Sto cominciando a fare una bozza di scheda, che, vista la quantità di collegamenti, sarà doppia faccia (la mia prima volta...), quindi comincia ad essere difficilotto...
Accetto molti consigli, ovviamente, e magari se sono già state fatte schede simili, gli darei volentieri una studiata.

allego lo schema fino ad ora, che conterrà sicuramente molti sbagli, quindi NON UTILIZZATELO COME RIFERIMENTO! (non si sa mai..)

Per adesso ho provato solo a portare i segnali dal 328 al 298 e viceversa, per fare una bozza di instradamento. Come controllo sto provando ad usare la tecnica del tristate-pin, usando un transistor npn come descritto qui..si risparmiano 2 pin..
Consigli? Idee?

Inoltre pensavo di usare i PWM 9 e 10, eliminando il prescale del timer 1 (sto provando in questi giorni, è una figata!!) ed utilizzando il modo Phase and Frequency correct-mode, migliore per pilotare motori. Con una risoluzione di 400 punti, se non ricordo male, ottengo 20kHz, fino ad un max di risoluzione di 4000 punti e 2kHz.

Comunque, la strada è lunga... aspetto volentieri le correzioni sullo schema, se qualcuno ha il piacere di dargli un'occhiata.
Grazie, Davide.

EDIT: Ho cancellato gli allegati in quanto errati come concetto, quindi assolutamente non distribuibili. Grazie Astro.
« Last Edit: September 19, 2012, 12:23:57 pm by dab77 » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 495
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao dab, che funzione hanno R9 e R10 in quella particolare configurazione? sembrerebbero delle pull-up per i pin del mega, ma se così fosse ci si aspetterebbe dei transistor PNP...
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sullo schema mancano tutti i pallini dei punti di giunzione delle net, molte net passano sovrapposte a dei pin col rischio di trovarsi giunzioni indesiderate.
Penso di averlo detto veramente più di 1000 volte, tra questo forum e tutti gli altri che frequento, che gli IC della serie L29x non si deve applicare il PWM sull'Enable, oltre a perdere fino il 50% dell'efficienza c'è un elevato rischio di innescare il famigerato "effetto petardo" con la distruzione del 298.

Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 495
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In effetti il disegno è terribile a vedersi, io direi intanto di vedere la parte circuitale, poi magari gliela do' io una mano a dab a sistemare il disegno  smiley-wink
questa dell'effetto petardo è estremamente fantasiosa smiley-yell
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao M, si sono delle pullup per permettere ad ognuno dei due segnali di rimanere alti quando si imposta il pin come INPUT, in maniera da utilizzare il ponte H come un freno-motore. la conformazione del "tristate-switch" è questa: e l'ho presa da qui, come dicevo anche nel post precedente. R9 del mio circuito sarebbe in questa immagine R2. R10 è per l'altra coppia del secondo ponte H.
Messa in "standalone" e oscilloscopio alla mano il "tristate-switch" funziona, l'ho fatto commutare fino a 30kHz. in realtà non ho certezze di come si comporta con l'L298 attaccato e funzionante.
Per esempio, ciò che mi preoccupa è la funzione di freno-motore. Praticamente si setta il pin (nel disegno il pin 2 di jp1) come INPUT, quindi quella R da 10K fa da pull-up e mette a +5V Input1, la stessa cosa succede a Input2, quindi il ponte H fa frenare il motore.  così dice... vi risulta?    PERÒ... se il motore sta andando bello spedito, al frenare crea la sua bella corrente, e dove va a finire questa?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 495
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, chiaro, però sulla storia del petardo io non trascurerei il consiglio di Astro, io so che lui di motori ne muove quintali/die, quindi certamente sa quello che dice; d'altra parte, almeno nella pagina linkata, non si parla di L298, quindi non è in discussione il tri-state ma semplicemente il pilotaggio PWM dell'enable.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Astro, grazie anche a te dell'intervento. Si il disegno dello schema l'ho fatto di fretta, e comunque non sono praticissimo..

Per il PWM sull'enable era una cosa che mi chiedevo in effetti... in giro si trovano pilotati in entrambi i modi, e li vendono anche circuiti con il PWM sul pin enable. (fidarsi cecamente...che sbaglio...)

Ok, allora assodato che quindi per pilotare 2 ponti H ci vogliono per forza 6 pin, di cui 4 PWM, il risparmio di due pin e l'utilizzo del tristate-switch se ne va a belle donzelle...
in compenso ho imparato una cosa in più..

Quindi, cancello subito l'allegato nel primo post e riprovo.
Una cosa: ma se non si riesce ad evitare nel disegno dello schema l'incrocio delle piste, che si fa si creano dei "collegamenti" nominali, tipo quelli di Vcc e GND?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 495
Posts: 12299
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

l'incrocio delle piste non crea alcun problema, devi usare i tondini quando sono fisicamente collegate, credo che Astro si riferisca al fatto che hai fatto passare piste sopra i pin dei componenti, in quel caso il collegamento si stabilisce automaticamente, anche senza tondino.
Il metodo della denominazione delle piste (appunto tipo Vcc) funziona benissimo, io ne faccio largo uso; nel mio recente progetto del capacimetro TTL (uno schema che occupa 2 pagine A4 smiley-mr-green) mi sono risparmiato almeno una cinquantina di piste; se usi correttamente le label il disegno diventa più snello e facile da leggere; in ogni caso, salvo che non siano effettivamente vicinissimi, ogni punto GND dovrebbe avere il suo simboletto, e già ne togli di roba da lì smiley-wink

EDIT: @ DAB il "grazie Astro" ora puoi darglielo col karma smiley-money
« Last Edit: September 19, 2012, 12:29:15 pm by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per il PWM sull'enable era una cosa che mi chiedevo in effetti... in giro si trovano pilotati in entrambi i modi, e li vendono anche circuiti con il PWM sul pin enable. (fidarsi cecamente...che sbaglio...)

Se hai cinque minuti da impiegare bene leggi qui.

Quote
Ok, allora assodato che quindi per pilotare 2 ponti H ci vogliono per forza 6 pin, di cui 4 PWM, il risparmio di due pin e l'utilizzo del tristate-switch se ne va a belle

Per il PWM ti conviene usare il modo LAP, basta che aggiungi un doppio inverter e ti bastano solo due pin PWM e non quattro, però devi tenere la frequenza come minimo a 10 kHz altrimenti funziona male per tutta una serie di motivi legati al fatto che i motori sono carichi induttivi.

Quote
Una cosa: ma se non si riesce ad evitare nel disegno dello schema l'incrocio delle piste, che si fa si creano dei "collegamenti" nominali, tipo quelli di Vcc e GND?

Le piste puoi incrociarle come ti pare, però devi evitare assolutamente di passare sopra i punti di contatto dei pin dei componenti, tutti i punti di giunzione, reali, tra net devono avere il pallino, che Eagle solitamente mette in automatico, se non viene messo lo devi aggiungere manualmente.
Se mancano i pallini rischi di trovarti con delle net scollegate sul pcb e, ovviamente, il loro mancato sbroglio.

p.s. il termine "effetto petardo" è nato diversi anni fa e non l'ho coniato io, diciamo che è stato uno che ha speso un sacco di Euro per i 298 e ne ha fatto una vera e propria strage sia perché utilizzava motori con dei condensatori interni, molto insidiosi, sia perché usava l'enable per il pwm.
Logged

Offline Offline
Full Member
***
Karma: 4
Posts: 219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@dab77
appoggio pienamente astrobeed per la storia del petardo.... per i segnali DIR e PWM  lo schema che ti consiglio è in allegato.
attenzione ai diodi, ti sconsiglio 1N4004 poichè non sono adatti per questa applicazione.... io utilizzerei qualcosa del tipo fast recovery time BYV27 o superiori.
gli invertitori a tran potrebbero funzionare anche se io li sostituerei con delle porte invertenti magari a trigger schmitt tipo CD40106... /CD4093
inoltre sulle uscite "sense" esce un putiferio .... filtra prima di immettere i segnali sull'adc.

PS: perchè non pensi pure alla gestione di 2 encoder..(magari attraverso l'impiego di chip qu-enc esterni) così da prevedere una controllo a loop chiuso con PID?

KIERUNEK = direzione
PWM = pwm smiley

ciao


* L298 configurazione ok.jpg (81.27 KB, 1489x903 - viewed 96 times.)
« Last Edit: September 19, 2012, 01:16:16 pm by cyclone » Logged

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@dab77
appoggio pienamente astrobeed per la storia del petardo.... per i segnali DIR e PWM  lo schema che ti consiglio è in allegato.
attenzione ai diodi, ti sconsiglio 1N4004 poichè non sono adatti per questa applicazione.... io utilizzerei qualcosa del tipo fast recovery time BYV27 o superiori.
gli invertitori a tran potrebbero funzionare anche se io li sostituerei con delle porte invertenti magari a trigger schmitt tipo CD40106... /CD4093
inoltre sulle uscite "sense" esce un putiferio .... filtra prima di immettere i segnali sull'adc.

PS: perchè non pensi pure alla gestione di 2 encoder..(magari attraverso l'impiego di chip qu-enc esterni) così da prevedere una controllo a loop chiuso con PID?

KIERUNEK = direzione
PWM = pwm smiley

ciao
Ciao, allora gli 1N4004 in realtà li ho usati solo come simboli, ho dimenticato di mettere il nome giusto. sorry..
Poi, sto facendo una prova con un'altra schedina che avevo pronta con l'L298N, e sto utilizzando come porta NOT un MC74HC14 che avevo.
Le due direzioni funzionano come spiegato da Astro. (grazie del link) in modalità LAP.
L'unica cosa, Astro, è che così non puoi usare la funzione "freno", giusto?
invece nel disegno che hai messo tu, Cyclone, non riesco a capire se si può.
Riguardo agli encoder, l'avevo scritto nel primo post, che era il punto dove volevo arrivare, ma per gradi.
Logged

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, carta e matita alla mano, mi pare di capire che con quelle logiche (suggerite da cyclone)con dir HIGH ottengo In2 sempre LOW e In1 PWM.
con dir LOW il contrario. indi anche qui niente funzione "freno", che si ottiene con entrambi gli input alti.

EDIT:
In realtà il datasheet dell'L298 dice che la funzione "freno" avviene con EN alto e in1=in2, quindi sia alti che bassi...
a questo punto tornando al più semplice metodo LAP, si potrebbe ipotizzare una resistenza di pulldown su entrambi gli input, di modo che se si imposta il canale usato come PWM come un INPUT, l'L298 vede entrambi gli ingressi come LOW?
« Last Edit: September 19, 2012, 02:58:29 pm by dab77 » Logged

Offline Offline
Full Member
***
Karma: 4
Posts: 219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nello schema che ho postato il freno non può essere implementato...... hai solo direzione e pwm,
ma ti assicuro che se implementi il controllore PID il freno non ti serve a nulla, anzi non lo devi neppure nominare smiley
Logged

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 643
La mia prima bromografata!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

e come fai a tenere il motore in posizione (fermo) se hai un carico applicato? ovviamente escludendo per ora freni magnetici...
Logged

Offline Offline
Full Member
***
Karma: 4
Posts: 219
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' il controllo PID  (Proporzionale-Integrale-Derivativo) che agendo opportunamente sul PWM e sulla Direzione fornisce la giusta regolazione affinchè il motore rimanga bloccato, nel caso che la velocità sia impostata a zero, o mantenga la velocità costante al variare del carico applicato sull'asse.

il freno non si usa assolutamente in questi casi.... peggiorerebbe il tutto con catastrofi mai viste !


* PID.png (46.51 KB, 1604x738 - viewed 33 times.)
« Last Edit: September 19, 2012, 04:09:58 pm by cyclone » Logged

Pages: [1] 2   Go Up
Jump to: