In questo articolo, passeremo attraverso l'effettiva implementazione di un driver IC, dalla creazione dello schema al layout del PCB. Troverai questo progetto su GitHub, rilasciato sotto una licenza open-source, se semplicemente vuoi prenderlo per copiarlo e incollarlo nel tuo design.
Ho due piccoli motori ad alta velocità che voglio pilotare, che assorbiranno circa 1 ampere ciascuno sotto carico, e dovrò farli funzionare con una fonte di alimentazione da 30 volt in una macchina industriale. L'elettronica originale si è bruciata ed è ora obsoleta, quindi è necessario sviluppare una nuova scheda di controllo. Per ora, discuterò solo del driver del motore in questo progetto.
Data le esigenze e l'area limitata della scheda con cui dovrò lavorare sulla scheda di circuito finale, ho scelto di utilizzare l'Allegro A4954 per le sue valutazioni di 2 ampere / 40 volt e il pacchetto TSSOP-16 con un pad termico. È anche molto conveniente, quasi al prezzo di un singolo driver per motori, come l'Allegro A4953, e altri driver per motori singoli a basso costo che potresti usare se avessi da gestire un solo motore.
Il principale vantaggio dell'uso del singolo driver IC per la nostra applicazione è che riduce il numero di componenti aggiuntivi necessari per completare lo schema. Gli unici componenti aggiuntivi di cui abbiamo bisogno sono alcuni resistori, condensatori e un regolatore da 3,3v. Vorrei anche aggiungere un diodo e un condensatore su ogni terminale del motore, tuttavia, per ridurre i picchi transitori che potrebbero danneggiare l'H-Bridge o causare problemi di certificazione per la compatibilità elettromagnetica.
Solitamente, lavorerei con una libreria di database, ma per gli scopi di questo articolo, ciò non creerebbe una soluzione molto portatile su cui potreste lavorare. Pertanto, ho aggiunto i file pcblib e schlib pertinenti al progetto e ho incluso i footprint ai simboli schematici per iniziare. Questo, tuttavia, significa che stiamo posizionando componenti passivi generici invece di quelli di libreria, cosa che non mi entusiasma. Posizionare parti generiche porta a errori, quindi questo è un ottimo punto in cui utilizzare Concord Pro al fine di aiutare a gestire la libreria, ma senza aggiungere tutti i miei lettori al mio team di Concord Pro, nessuno di loro potrebbe utilizzare la libreria che creerei. Pertanto, per posizionare parti di cui so che è possibile reperire la fonte, cercherò ogni componente richiesto nel pannello di Ricerca Parti del Produttore, e poi Aggiungerò Collegamento Fornitore e Parametri Alla Parte su ogni simbolo schematico. Questo aiuterà anche quando si genera una distinta dei materiali così come quando si ordinano componenti da un fornitore.
Altium ti permette di aggiungere collegamenti ai fornitori, semplificando le cose in seguito.
Scopro che gestire i componenti man mano che li aggiungi è fondamentale per assicurarsi che ogni pezzo sia un componente valido e ordinabile. È molto più semplice garantire che ogni parte sia valida nel momento in cui la si colloca rispetto a scoprire alla fine di una fase di progettazione che un componente non può essere reperito e che il design necessita di essere rivisto per far posto a un componente sostitutivo.
Iniziamo aggiungendo allo schema tutti i nostri componenti validi e sorgentabili e i passivi generici.
Sto iniziando il mio progetto con i connettori, la resistenza di rilevamento della corrente, il diodo TVS e il circuito integrato principale specificati.
Ho anche aggiunto i simboli generici di condensatore, resistore e potenziometro, che copierò e incollerò secondo necessità durante il processo di progettazione, per poi specificarli una volta che si trovano nel posto giusto nello schema. Quando si realizza rapidamente uno schema con parti generiche su progetti semplici, trovo che questo sia più veloce rispetto al dover tornare ogni volta al pannello della libreria per prendere un'altra copia dello stesso componente. È possibile trascinare con il tasto shift il simbolo per clonarlo, che è il modo più rapido che ho trovato per posizionare un altro componente generico dello stesso footprint.
Colleghiamo quindi tutte le parti che abbiamo disposto per creare uno schema completo.
Lo schema completamente compilato è piuttosto semplice, come dovrebbe essere con un driver IC completamente integrato. Ho aggiunto alcune resistenze da 33 ohm per proteggere il microcontrollore dagli ingressi al driver IC, che, in caso di guasti gravi al driver, dovrebbero limitare la corrente che fluisce verso il microcontrollore a livelli tollerabili. Ho aggiunto un condensatore da 100nF e un diodo TVS agli usciti del motore, che aiuteranno a mitigare l'ESD e le tensioni transitorie di flyback provenienti dal motore, come menzionato in precedenza. Ho anche aggiunto un partitore di tensione resistivo con un resistore variabile per la gamba superiore per permettere di impostare la corrente del motore come necessario. Il partitore di tensione è alimentato da un semplice regolatore di tensione lineare, che tipicamente non vorrei usare con una caduta di 27v. In questo caso, tuttavia, l'assorbimento di corrente sarà sufficientemente basso che il regolatore non si surriscalderà.
L'IC Allegro A4954 e tutti i passivi a esso connessi prima dell'annotazione.
Infine, una volta completato il layout dello schema, ho annotato lo schema per completare i numeri dei designatori. Personalmente preferisco fare ciò alla fine della cattura dello schema, poiché trovo che in genere mi fornisca numeri di designatori che sono più raggruppati rispetto a se avessi costantemente annotato subito dopo aver aggiunto nuovi componenti. Questo può darci un'idea di dove sullo schema possa trovarsi un componente in base al suo designatore.
Notate come tutte le parti raggruppate intorno al driver vengano annotate con numeri di designatori vicini.
Poiché ho assegnato parti reali a ogni componente nello schema, ora ho un ActiveBOM nel progetto che può essere utilizzato sia per valutare il costo dello schema sia per convalidare che tutti i componenti siano disponibili in produzione di massa. L'ActiveBOM rende molto facile valutare rapidamente il costo per scheda a diverse quantità di produzione. Al momento della scrittura, il mio costo dei componenti per scheda per una singola scheda sarebbe di 7,99 USD, scendendo a soli 3,42 USD per scheda a 1000 schede. Da una prospettiva di bilancio, ciò può permettermi di determinare se ho bisogno di esaminare eventuali opzioni alternative per lo schema per abbassare il prezzo al mio volume di produzione previsto. Questo può notevolmente aumentare la mia produttività, poiché sono in grado di fare questa determinazione prima di aver speso tempo nel routing di un PCB.
Come per qualsiasi progetto PCB, il nostro primo compito è inserire i componenti nel PCB con un Ordine di Modifica Ingegneristica (ECO).
Layout del PCB dopo che tutti i componenti sono stati aggiunti.
Ci sono un paio di cose che mi piace fare dopo aver trasferito i dati dello schema sul PCB, per prima cosa metto tutti i designatori su uno strato meccanico che ho chiamato Designatori in modo che non occupino spazio reale sul PCB. Nel pannello Filtro PCB, uso il filtro:
IsDesignator AND OnLayer('Top Overlay')
Questo seleziona tutti i miei designatori e posso modificarli rapidamente nella finestra delle proprietà per cambiare lo strato, e anche renderli di tipo vero e Autoposizionarli al centro del componente, il che rende i disegni del PCB più gradevoli in seguito, se necessario.
Successivamente, posso attivare la Modalità Selezione Incrociata dal menu Strumenti (o Shift-Ctrl-X) per selezionare gruppi logici di componenti nello schema. Anche con uno schema piccolo e semplice come questo, mi fa risparmiare tempo raggruppare i componenti sul circuito stampato.
Selezionando il driver IC e i suoi componenti di supporto nello schema, poi tornando al PCB, ho selezionato quei componenti dal groviglio di parti appena aggiunte.
Selezionare i componenti dallo schema risparmia tempo rispetto al cercarli e selezionarli uno per uno nel layout del PCB.
Posso quindi utilizzare Strumenti -> Posizionamento Componenti -> Disponi in Rettangolo (disponibile anche nella vecchia barra degli strumenti Utility sotto l'icona degli Strumenti di Allineamento) e disegnare un rettangolo fuori dalla scheda per raggruppare queste parti insieme.
Questo mi dà dei piccoli blocchi di componenti da disporre da soli nel modo più ottimale possibile. Con progetti più grandi e complessi, trovo che disponendo ogni blocco logico separatamente, sono poi in grado di portarli tutti sulla scheda circuitale in una volta sola per trovare una rotazione e una posizione ottimali per quel blocco, e anche determinare quali sacrifici potrebbero essere necessari nella disposizione dei componenti per ottimizzare l'uso dello spazio sulla scheda. Per me, questo risparmia molto tempo e tipicamente mi dà un layout migliore rispetto a costruire un layout dei componenti partendo da un singolo componente.
Le funzionalità di posizionamento dei componenti consentono di disporre i componenti all'interno di cluster che rappresentano i blocchi logici nello schema.
In pochi minuti, ciò si trasforma in una scheda relativamente compatta e che dovrebbe essere cablabile.
Il posizionamento finale dei componenti è cablabile, logicamente organizzato e compatto.
Un rapido controllo della vista 3D e la scheda sembra che sarà anche facile da assemblare a mano, il che è un ottimo controllo da fare per le parti a basso volume.
Vista 3D della scheda prima che le piste fossero aggiunte.
Il routing di questa scheda è piuttosto semplice, dato che lo schema è così semplice! L'unico punto da notare è che il datasheet del driver del motore suggerisce di fornire un percorso di terra dai resistori di rilevamento della corrente direttamente al terra dell'IC, con ritagli poligonali per realizzare questo terra a stella. Ho aggiunto riempimenti di terra completi sia in alto che in basso per iniziare, e poi ho usato lo strumento di ritaglio poligonale (sotto il menu Posiziona) per aggiungere i ritagli suggeriti.
La scheda dopo che è stata instradata, sono stati aggiunti riempimenti di terra, e sono stati fatti ritagli poligonali.
Elettricamente, questa scheda ora sembra completa, tuttavia, non è molto attraente visivamente nella vista 3D.
Vista 3D della scheda dopo che le piste sono state aggiunte sembra ancora un po' carente.
Mi piace che le mie schede abbiano un aspetto curato, anche se sono solo per uso personale. Come ingegnere, vedo tutte le schede elettroniche come opere d'arte, hanno ricevuto tanta attenzione e cura quanto qualsiasi capolavoro in un museo, quindi dovrebbero sembrare tali!
Con alcune aree nella strato Top Overlay e del testo invertito, ho aggiunto un po' di stile e delle etichette per rendere l'uso della scheda un po' più semplice.
Le caratteristiche sul top overlay rendono la scheda più facile da usare e più bella.
Il fondo della scheda riceve un trattamento simile, con un piccolo logo ESD, un codice a barre per identificare il modello/versione/revisione della scheda, e un paio di aree dove il controllore di qualità può aggiungere le proprie iniziali, più un paio di caselle per scrivere la data di fabbricazione e di installazione.
Il fondo della scheda.
Questo rapidamente trasforma la scheda da semplice e spartana, a sembrare più rifinita, completa e funzionale.
Se stai cercando di implementare un driver per motore DC con un singolo IC, questo progetto potrebbe essere un buon punto di partenza per te. Puoi scaricare il progetto su GitHub e usarlo liberamente come desideri. Lo schema si basa su uno schema e layout provati in produzione, tuttavia, dovresti comunque assicurarti che il design soddisfi le tue esigenze e che lo schema/i pin siano corretti.
La prossima volta, esaminerò questa scheda in PDN Analyser per determinare se le tracce sono dimensionate in modo adeguato per le esigenze di corrente dell'IC H-Bridge e dei due motori. Se non hai mai usato PDN Analyser prima d'ora, questo sarà un progetto introduttivo che potrai seguire per imparare come configurare lo strumento per analizzare il tuo circuito stampato.
Vuoi scoprire come Altium può aiutarti con il tuo prossimo design di PCB? Parla con un esperto di Altium o scopri di più su l'analizzatore PDN di Altium.