Driver 8A

Sezione dedicata all'elettronica in generale.
Rispondi
Avatar utente
Bit79
Senior
Senior
Messaggi: 1701
Iscritto il: mercoledì 10 gennaio 2007, 23:27
Località: Fornaci di Barga (Lucca)

Messaggio da Bit79 » mercoledì 12 marzo 2008, 17:27

La butto lì... E fare un programmino per pic? Alcune pic hanno 2 comparatori, come velocita' dovrebbero starci...
Il driver gestito dal pic l'ho già  fatto e pronto. Pilotaggio microstepping e tante altre funzioncine utili. Solo che lo stadio di potenza è il solito L298 da 2 A. Ho in progetto un driver da 8-10 A a mos, ma non ho mai tempo di progettarlo. Visto che dag l'ha già  fatto, ma conl'L297, potremmo unire i due progetti, no?
Non accontentarti mai, scegli gli strumenti giusti, usali bene, non accettare compromessi, pretendi il successo. Poi ricomincia da capo.

masterx81
Junior
Junior
Messaggi: 105
Iscritto il: giovedì 28 febbraio 2008, 19:38
Località: Villafranca d'Asti

Messaggio da masterx81 » mercoledì 12 marzo 2008, 17:52

Mhuauaua, io stavo gia' partendo in 4° perchè non avevo trovato progetti su internet :-)
Hai gestito dalla pic il controllo della corrente oppure con operazionali esterni?
Ho visto che ad esempio l'allegro ha addirittura un dac integrato per fare la tensione di riferimento, sicuramente una pic con la stessa funzione si trova, non sarebbe male settare la corrente con un dip switch o dei jumpers, senza serie di resistenze infinite...
Cmq, mitico! Mixare i 2 progetti sarebbe una cosa interessantissima!!!
E, da quello che ho visto nel mondo open source, abbastanza unico!!

Avatar utente
aragon
Senior
Senior
Messaggi: 1442
Iscritto il: giovedì 23 novembre 2006, 23:14
Località: Salerno
Contatta:

Messaggio da aragon » mercoledì 12 marzo 2008, 20:12

Ciao raga, tra mille impegni, ho solo adesso letto la vostra discussione. Se volete potremmo programmare insieme il micro (o potrei farlo io) e fare un bel progettino :wink:

Avatar utente
Bit79
Senior
Senior
Messaggi: 1701
Iscritto il: mercoledì 10 gennaio 2007, 23:27
Località: Fornaci di Barga (Lucca)

Messaggio da Bit79 » giovedì 13 marzo 2008, 13:34

Il controllo della corrente l'ho fatto esterno con un L6506. Mi dava maggiore affidabilità . Il pic genera la sequenza dei microstep. Per la versione adatta alle nostre cnc controllate da pc il pic riceve i segnali step dir, ma ho anche fatto versioni con anello chiuso ad encoder (da sviluppare, si hanno prestazioni interessanti accoppiando passo-passoed encoder), e versioni con interprete comandi interno (tipo vai da qui a li in tot tempo), in modo da poter essere comandate tramite bus.

Inoltre con il pic gestisco facilmente la riduzione di corrente a motore fermo, eventuali allarmi, e ho sempre la possibilità  di aggiunge qualcosa.

Il riferimento di corrente attualmente lo do con due dac esterni a 4 bit (a resistori pesati). Per tarare la corrente vi sono quindi due trimmer (uno per fase). Per uso personale non lo trovo scomodo, ma per ottimizzare si potrebbero usare i due moduli pwm del pic, con possibilità  di programmazione software della corrente e del numero di microstep..

Da sviluppare insomma. Se a qualcuno interessa....
Non accontentarti mai, scegli gli strumenti giusti, usali bene, non accettare compromessi, pretendi il successo. Poi ricomincia da capo.

masterx81
Junior
Junior
Messaggi: 105
Iscritto il: giovedì 28 febbraio 2008, 19:38
Località: Villafranca d'Asti

Messaggio da masterx81 » giovedì 13 marzo 2008, 15:35

Pero' gli L6506 esterni sono tutta circuiteria in piu' che una pic potrebbe tranquillamente sostituire... Ho visto che ci sono pic a 20/28 pin con 2 comparatori integrati, anche se nessuna ha anche il dac integrato...
E peccato perchè se usi i comparatori (moduli ccp) non puoi usare contemporaneamente le funzioni di pwm (almeno con la 628 che ho usato io una cosa escludeva l'altra), quindi bisogna creare diversamente la tensione per far spegnere i mosfet...
Poi si potrebbe gestire il fast/slow/mixed decay, che da quello che ho vista, ha anche i suoi vantaggi...
Se riusciamo a mettere insieme un po' di buone idee (sicuramente i datasheet di prodotti gia' in commercio ci possono aiutare) non dovrebbe rimanere niente male come progetto!

maxbiri
Member
Member
Messaggi: 479
Iscritto il: lunedì 2 luglio 2007, 16:00
Località: sesto san giovanni ( Mi)

Messaggio da maxbiri » giovedì 13 marzo 2008, 19:46

Ae non ricordo male c'è un' AN della microchip con gia' tutto quello che serve, soft e schema elettrico di un driver di potenza, se interessa la cerco e la posto.

Ciao Max

outworld
Junior
Junior
Messaggi: 126
Iscritto il: lunedì 27 novembre 2006, 12:38
Località: Bergamo
Contatta:

Messaggio da outworld » venerdì 14 marzo 2008, 9:03

la butto li... anche perchè non potrei essere molto d'aiuto...al max come tester... ma usare un avr 8051... è un microcontrollore con 40 piedini, può essere programmato in c, riesce a lavorare a 20Mhz, c'e' l'ambiente di sviluppo con librerie pronte per gli lcd...può essere programamto montandolo sulle funcard con il funprom (materiale economico e diffuso )... sempre se non si fa un circuitino stupidissimo di cui c'e' lo schema in rete per programmarlo direttamente sulla scheda via seriale...

"L'In system programmer" ISP può essere trovato a questo url http://www.sixca.com/eng/articles/avr_isp/

Avatar utente
Bit79
Senior
Senior
Messaggi: 1701
Iscritto il: mercoledì 10 gennaio 2007, 23:27
Località: Fornaci di Barga (Lucca)

Messaggio da Bit79 » venerdì 14 marzo 2008, 12:13

Pero' gli L6506 esterni sono tutta circuiteria in piu' che una pic potrebbe tranquillamente sostituire... Ho visto che ci sono pic a 20/28 pin con 2 comparatori integrati, anche se nessuna ha anche il dac integrato...
E peccato perchè se usi i comparatori (moduli ccp) non puoi usare contemporaneamente le funzioni di pwm
Gli L6506 esterni mi danno la sicurezza di controllare sempre la corrente anche se il pic si pianta. Considerando che in un driver da 8-10 A ci sono un bel po' di componenti costosi da bruciare (8 mos, 4 driver e il motore stesso) mi sembra poco oneroso metterlo piuttosto che risparmiarlo. Anche solo per poter programmare il pic on-board senza bruciare il motore... :wink:
Ae non ricordo male c'è un' AN della microchip con gia' tutto quello che serve, soft e schema elettrico di un driver di potenza, se interessa la cerco e la posto.
Certo che interessa! Posta, posta! :lol:
... ma usare un avr 8051... è un microcontrollore con 40 piedini, può essere programmato in c, riesce a lavorare a 20Mhz, c'e' l'ambiente di sviluppo con librerie pronte per gli lcd...può essere programamto montandolo sulle funcard con il funprom (materiale economico e diffuso )...
Anche i pic vanno a 20 Mhz (la serie 16, se si saltasse alla 18 si va fino a 40 Mhz e abbiamo anche la porta encoder), costano poco, l'ambiente di sviluppo è gratuito e si trovano buoni supporti. Riguardo alle librerie a me piace farmi tutto da me, non mi fido di librerie già  fatte e di compilatori. Scrivo solo in assembler puro, in maniera da saper esempre cosa fa il processore.
Ma sono solo scelte, e poi i pic li conosco già .... :D

Se ci aiutiamo viene fuori un bel progettino...
Non accontentarti mai, scegli gli strumenti giusti, usali bene, non accettare compromessi, pretendi il successo. Poi ricomincia da capo.

masterx81
Junior
Junior
Messaggi: 105
Iscritto il: giovedì 28 febbraio 2008, 19:38
Località: Villafranca d'Asti

Messaggio da masterx81 » venerdì 14 marzo 2008, 12:30

Bit79 ha scritto: Gli L6506 esterni mi danno la sicurezza di controllare sempre la corrente anche se il pic si pianta. Considerando che in un driver da 8-10 A ci sono un bel po' di componenti costosi da bruciare (8 mos, 4 driver e il motore stesso) mi sembra poco oneroso metterlo piuttosto che risparmiarlo. Anche solo per poter programmare il pic on-board senza bruciare il motore... :wink:
Beh, capita solo se se si utilizza un ICSP. Si puo' evitare... Tu puoi dire che ti serve poi un programmatore esterno, cmq un programmatore icsp serve comunque, basta uno zoccolo di adattamento (attualmente le pic per progetti 'sensibili' dove non posso usare l'icsp le aggiorno così!)
Poi il watchdog, BOR e mille altre cose serve proprio a quello... Qualche ns e riprende il controllo di tutto... Se sviluppi bene il sw non dovrebbe capitare nulla di cio'... Ho all'attivo diversi progetti, ed alcuni sono accesi di continuo da anni, e giuro che non si è mai piantata una pic, neanche accesa 24/24
Bit79 ha scritto: Certo che interessa! Posta, posta! :lol:
Infatti!
Bit79 ha scritto: Anche i pic vanno a 20 Mhz (la serie 16, se si saltasse alla 18 si va fino a 40 Mhz e abbiamo anche la porta encoder), costano poco, l'ambiente di sviluppo è gratuito e si trovano buoni supporti. Riguardo alle librerie a me piace farmi tutto da me, non mi fido di librerie già  fatte e di compilatori. Scrivo solo in assembler puro, in maniera da saper esempre cosa fa il processore.
Ma sono solo scelte, e poi i pic li conosco già .... :D

Se ci aiutiamo viene fuori un bel progettino...
Concordo, anche io adoro le pic, anche se per via della loro architettura risc la frequenza di clock effettiva viene divisa per 4, ma cmq a 20mhz (5mhz effettivi) ri riescono a fare gia' un sacco di cose carine... Sicuramnete per un progetto come questo è piu' che sufficiente.

Io finora per pigrizia ho sempre programmato in c, e poi verificato l'asm... Anche perchè mi è capitato di fare funzioni matematiche complesse (interpolazione lineare), hai voglia a farle in asm con le poche istruzioni del risc!!! Cmq il codice che esce non è molto ottimizzato, ma molto pulito!

Concordo sull' aiutarci, tante teste è provato che lavorano meglio di una sola :)

maxbiri
Member
Member
Messaggi: 479
Iscritto il: lunedì 2 luglio 2007, 16:00
Località: sesto san giovanni ( Mi)

Messaggio da maxbiri » venerdì 14 marzo 2008, 12:35

ecco l'AN

http://www.microchip.com/stellent/idcpl ... e=en012150

C'è tutto: schema e soft per driver a micropasso di potenza.
In base ai mosfet usati si possono decidere corrente e tensione masssima.
Io non l'ho mai realizzato perche' i microcontrollori sono un buco nero per me.

Ciao Max

outworld
Junior
Junior
Messaggi: 126
Iscritto il: lunedì 27 novembre 2006, 12:38
Località: Bergamo
Contatta:

Messaggio da outworld » venerdì 14 marzo 2008, 14:17

su su buttate giù due schemi e una lista di componenti... :)
oltre alla lista del materiale necessario indotto...stile programmatori ecc... :)

Arno
Junior
Junior
Messaggi: 56
Iscritto il: giovedì 15 febbraio 2007, 23:10
Località: Ortisei - Alto Adige

Messaggio da Arno » venerdì 14 marzo 2008, 14:38

Un caro saluto a tutti,dato che l' argomento mi interessa mi aggrego alla discussione...
l' AN della Microchip mi pare un pà³ semplicistica,per es. non usa un controllo diretto della corrente dei motori(sensing..),il pwm non é filtrato (filtro passa basso),poi ho letto da qualche parte che utilizzando la pwm limita la velocità¡ dei passi ad un certo limite.Io uso ogni tanto gli AVR a 8 bit,ma come i pic putroppo non hanno il dac a bordo.Indubbiamente usando un microcontrollore ci sarebbe il vantaggio di gestire i vari modi di decay,eventualmente anche la midband resonance e un eventuale blanking.D'altra parte concordo pienamente con BIT79 che una soluzione hardware sia piຠaffidabile,specialmente puntando ad una buona dinamica. Per esempio per generare la Vref di un 1/8 di passo basterebbe un serie di sette resistenze pesate commutate alternativamente sia per generare il seno che il coseno.L' ideale sarebbe trovare un integrato dedicato che abbia tutte queste funzioni...

masterx81
Junior
Junior
Messaggi: 105
Iscritto il: giovedì 28 febbraio 2008, 19:38
Località: Villafranca d'Asti

Messaggio da masterx81 » venerdì 14 marzo 2008, 15:07

Io temo che gli butti pwm direttamente dentro i mosfet... Quindi nessun comparatore, chopper e nessun controllo di corrente... Percio' alimentando i motori alla loro tensione... Direi molto semplicistico :-)
Sinceramente non vedo neanche io il pwm per generare il vref una buona soluzione... Dei dac sarebbero molto meglio...
Come possono 8 resistenze fare il vref per entrambi gli avvoglimenti? Il controllo di corrente deve essere sempre attivo su entrambi, non credo si possa switchare tra uno e l'altro... 8 resistenze sole non credo che bastino poi, devi fare dei partitori per generare 8 tensioni diverse, oppure fare l'r2r e mangiare un sacco di pin della mcu. Oppure usare 2 resistenze digitali o 2 dac. Oppure usare l'a/d della pic e generare direttamente il pwm necessario non utilizzando il comparatore, pero' a me non piace tantissimo perchè introduce un inevitabile errore, e poi no so se la pic riesce a campionare così in fretta...il pwm credo che non possa andare tanto veloce proprio per via del passabasso, introduce sicuramente un ritardo di risposta, ed oltre una certa velocta' le correnti sballano...
Bit79, tu la tensione per il conparatore la generi con pwm?

---EDIT

Si scopre sempre una cosa nuova...
ad esempio la 16f88 ha un Comparator Voltage Reference Generator, che non è nient'altro che un dac a 16 bit... Veloce sara' sicuramente veloce... Chissa se si trova qualche pic con 2 di questi cosi? Se no uno singolo con 2 sample/hold...

---EDIT

Ho visto che non c'e' praticamente nessuna pic con 2 moduli dac... tutti uno solo per tutti i comparatori... Pero' ce ne sono con 2 comparatori e 2 ccp, per fare il pwm out per i comparatori...
Non sarebbe malaccio...
Certo che se si vuole mantenere il controllo della corrente esterno, le cose si semplificano di molto dal lato pic, ma sinceramente non vedo dove possa essere il problema...

Avatar utente
Bit79
Senior
Senior
Messaggi: 1701
Iscritto il: mercoledì 10 gennaio 2007, 23:27
Località: Fornaci di Barga (Lucca)

Messaggio da Bit79 » venerdì 14 marzo 2008, 17:44

Rimanendo sulla soluzione del controllo di corrente con integrato dedicato, al pic resta soltanto il compito di generare i due riferimenti di corrente seno-coseno, con bit di segno per decidere il verso della corrente.

La generazione dei segnali deve ovviamente essere in grado di arrivare alla massima velocità  richiesta per i motori, sia essa realizzata mediante dac o pwm filtrato.
Vediamo quindi le soluzionia a dac o a pwm.

Come massima velocità  di pilotaggio di uno stepper si possono ipotizzare 4000 passi al secondo. Se osservate i grafici coppia-velocità  di vari motori vedete che a meno di motori speciali o tensioni di alimentazione particolarmente alte a queste velocità  la coppia è ormai andata a farsi benedire.
Se ipotizziamo un micropasso 1/8 si avrebbero 32000 micropassi al secondo.
Il dac esterno sicuramente non ha problemi a seguire queste velocità  e non serve nemmeno filtrarlo (gli scalini degli step ce li teniamo).
Per il pwm servirebbe una frequenza di modulazione di almeno 5 volte tanto, quindi almeno 160 KHz, e un filtro di ordine elevato (arriverei anche al 4° ordine) puntato intorno ai 50 Khz. Lo sfasamento introdotto dal filtro alle elevate velocità  non è troppo un problema, visto che si manifesta in ugual maniera su entrambe le fasi. Quando la velocità  diminuirà  la fase verrà  recuperata.
Un pic usa come base pwm il clock del quarzo, quindi 20 MHz (Eviterei clock inferiori). Un pwm da 160 KHz avrebbe quindi 125 livelli, credo più che sufficienti per definire gli step. si potrebbe anche sacrificare ancora la definizione in favore ad una frequenza maggiore, quindi meglio filtrabile.

Riguardo alla risoluzione dei micropassi dipende da quanti ne vogliamo fare. Con micropassi da 1/8 io ho adottato una risoluzione a 4 bit (16 livelli di corrente). Gli scalini non corrispondono esattamente ad una sinusoide, ma l'errore è abbastanza piccolo.
L'architettura dei miei dac è con resistori pesati, 4 resistori per dac per un totale di 8. Una struttura semplice adottata per prova e mantenuta per il buon comportamento ottenuto.
Inoltre, con unpo' di calcoletti, si possono variare i valori delle resistenze per forzare certi livelli e correggere i valori degli scalini con più errore. Non ho ritenuto necessario farlo, il motore mi sembra sufficentemente fluido anche così.

Passare al pwm permetterebbe di risparmiare pin e/o di aumentare la risoluzione degli scalini. Da valutare.

Riguardo al controllo di corrente realizzato dal pic, non è pensabile campionare la corrente con i moduli adc e realizzare un controllo software, vista la rapidità  con cui andrebbe elaborato il segnale. Sarebbe possibile utilizzare dac interni come riferimento per comparatori analogici (in alcuni pic ci sono, ma mi pare che il dac possa essere solo uno) per monitorare la tensione delle Rsense e resettare l'uscita del comando dei mos (in interrupt o via hardware).
La mancanza di 2 dac interni credo renda problematico il controllo software...

Da ricordare che il modulo ccp dei pic, nonostante il significato 'compare' della seconda 'c' non è un comparatore analogico. In realtà  è un modulo completamente digitale, utilizzabile per generare impulsi o interrupt con un preciso ritardo.
Non accontentarti mai, scegli gli strumenti giusti, usali bene, non accettare compromessi, pretendi il successo. Poi ricomincia da capo.

masterx81
Junior
Junior
Messaggi: 105
Iscritto il: giovedì 28 febbraio 2008, 19:38
Località: Villafranca d'Asti

Messaggio da masterx81 » venerdì 14 marzo 2008, 18:19

Grazie per la spiegazione :-)

Cercando, sono convenuto pure io che purtroppo tutte le pic che hanno i comparatori hanno un solo generatore di riferimento. Quindi la strada del dac, se non esterna, è da escludere. Ma 2 dac esterni è altra circuiteria in piu'... Poi il bus i2c asrebbe ababstanza veloce? Quindi rimangono pwm e resistenze pesate. Con le ressitenze pesate è indubbiamente immediata la risposta, al costo di qualche resistenza esterna. Pero' e' anche vero che in PWM piu' di alza la fequenza, meno ci sono problemi, sia a filtrarli, sia a livello di sfasamento, con pochissimo componenti esterni e pochi pin utilizzati. Volendo lasciare il controllo di corrente esterno, basta una pic con 2 ccp (oppure un solo eccp come dimostrato nell' an906). Mentre controllando dalla pic sia la corrente che il pwm, servono 2 ccp (o un eccp) e 2 comparatori. Il resto è tutto su segnali digitali, quindi non creerebbe problemi in entrambi i casi...
Dopo la pic si va verso dei drivers tipo gli IRS2104PBF, ed infine i mosfet.
Poi resta se collegarlo parallelo (samplice), seriale (se non sbaglio serve l'interprete g-code nella pic), o usb, ma questo puo' essere fatto su un'altra scheda con un altro microcontrollore...

Ps: Mi ero confuso tra 'comparatore' e 'compare' :-)
E pensare che il compare l'ho gia' usato in altri progetti, ma è stato tempo fa... Mai usato i comparatori...

Rispondi

Torna a “Elettronica”