Gestire la libreria componenti è un aspetto molto critico per lo sviluppo di PCB, specialmente quando il numero di progettisti all’interno di una azienda inizia a crescere. Tuttavia, anche nel caso di pochi progettisti, o addirittura nel caso di progettisti individuali, avere una strategia ordinata e mantenibile per la gestione della libreria componenti può risultare di vitale importanza. Infatti, molte volte la libreria componenti rappresenta un punto in comune per progetti diversi e quindi un cambiamento eseguito su tale libreria può riflettere le sue conseguenze su più progetti.
Una buona libreria componenti deve essere quindi in grado di tener traccia delle modifiche eseguite su di essa; cosicché ogni specifico progetto, basato su questa libreria condivisa, possa tenerne conto.
Inoltre, soprattutto nel caso di aziende, la libreria deve essere in grado di scalare facilmente con l’incremento del numero di nuovi componenti aggiunti. Dovrà garantire l’accessibilità a tutti i membri del team risiedendo in un dispositivo di storage condiviso.
In fine, ogni qualvolta un componente verrà aggiunto, è opportuno seguire degli standard comuni scelti a livello aziendale così che ogni componente sia uniforme all’interno della libreria. Per esempio in termini di caratteristiche descrittive del componente, che verranno poi estratte nella BOM (i.e. supplier name e part number obbligatorio per ogni componente). Oppure in termini di convenzione sui pin del simbolo (i.e. pin numero 1 sempre in alto a sinistra), e per finire in termini di utilizzo dei layer nel footprint del componente (i.e. Mechanical Layer 15 usato come TOP Courtyard per tutti i componenti della libreria).
Una libreria basata su database risponde a tutte le caratteristiche sopra elencate e quindi viene considerata una scelta ottimale per piccole e grandi aziende che si vogliono cimentare nello sviluppo PCB. In questo articolo verrà illustrato come creare, organizzare e mantenere una libera basta su database. Ma prima vediamo quali sono le opzioni disponibili quando si deve creare una libreria componente.
Esistono due tipologie principali di librerie componenti per PCB design: librerie basate su file e librerie baste su database.
Le librerie basate su file consistono generalmente in due files: uno per i simboli schematici e uno per i footprint. Il file dei simboli, generalmente chiamato schematic library, include la descrizione simbolica di un componente, un link al suo footprint e campi descrittivi addizionali come part number, supplier link etc… . All’interno di uno schematic library possono essere inseriti uno o più componenti. Il secondo file che completa la libreria contiene il footprint con eventuale 3D model di uno o più componenti. Come si può facilmente intuire creare una libreria basata su file è abbastanza semplice, questo costituisce di fatto il suo più grande vantaggio. Gli svantaggi però sono molteplici, soprattutto al crescere della libreria stessa e dal numero di utilizzatori. Difatti, dal momento che per ogni componente devono essere creati un simbolo schematico e un footprint dedicato, le dimensioni della libreria aumentano velocemente (per esempio si pensi se si vuole includere tutte le resistenze di ogni valore di una data serie). In secondo luogo, ci si dovrà assicurare che ogni qualvolta che viene cerato un componente gli vengano associati dei campi descrittivi con determinate key word così da poter estrarre una BOM uniforme e coerente. Infine, anche la gestione condivisa della libreria richiede un sistema di version control basato su una unità di storage comune contente tutta la libreria. Richiedendo agli utenti di verificare quotidianamente di utilizzare la versione più aggiornata della libreria stessa.
Le librerie baste su database ovviano a molte di queste inconvenienze. Esse si basano su un database contente tutti i parametri descrittivi dei componenti, compresi link a simboli schematici e footprint che posso essere condivisi tra i componenti. Per esempio, un unico simbolo generico di resistenza potrebbe essere utilizzato da tutte le resistenze del database. Questo fa si che le dimensioni della libreria siano molto minori facilitandone la gestione su una unità di storage condivisa. Si pensi al caso in cui si voglia aggiornale il simbolo della resistenza o il footprint smd 0402. Basterà cambiare un singolo file perché le modifiche su di esso si riflettano su tutti i componenti del database ad esso linkati.
Inoltre, non è necessario avere una copia locale del database ma basterà accedere alla copia presente nello storage condiviso. Tutti i componenti sono catalogati all’interno di tabelle descrittive, questo facilita l’aggiunta di un nuovo componente in quanto è facile verificare visualmente (o tramite query) che tutti i campi descrittivi siano stati inseriti correttamente.
In seguito, vedremo come cerare e gestire una libreria basata su database. Gli elementi che la compongono sono essenzialmente quattro:
Un database contente tutti i componenti della libreria con i loro campi descrittivi.
Librerie condivise per i simboli (.SchLib).
Librerie condivise per i footprint (.PcbLib).
File database library specifico di Altium (.DbLib o .SVNDbLib)
Un database non è altro che una collezione di informazioni organizzate in una o più tabelle. Ci sono diversi programmi che possono essere utilizzati per creare e gestire un database come MySql di Oracle, Access di Microsoft o in linea di principio anche un foglio di calcolo potrebbe essere utilizzato come database. Il vantaggio di utilizzare un software database dedicato è dato dal fatto che per sua natura un database può essere acceduto da diversi account allo stesso momento. Per esempio, il gestore della libreria (Librarian) potrebbe utilizzarlo per inserire un nuovo componente e allo stesso tempo il database potrebbe essere acceduto da un PCB designer che sta sviluppando un nuovo PCB. Utilizzare un database basato su MySql o Access o simili garantisse che non ci siano conflittualità o errori durante l’esecuzione di queste operazioni in contemporanea. Tutti gli elementi del database sono da considerare variabili testuali. Nell’esempio che andremo a riportare Microsoft Access è stato utilizzato per creare una libreria componenti. Per ogni tipo di componente è stata creata una tabella apposita (i.e. una tabella per le capacità, una per le resistenze, una per i circuiti integrati, e così via). In seguito, spiegheremo il motivo di questa divisione.
Per ogni elemento della libreria corrisponde una riga di una tabella alla quale è associato un componente fisico unico e ben definito con il suo part number. Le colonne sono campi descrittivi che aggiungo informazioni sul componente stesso. Per ogni tabella si raccomanda di utilizzare un set minimo standard di campi descrittivi che potranno poi essere estratti nella Bill of Material così da cerare una BOM omogenea. Tuttavia, ogni tabella associata con un tipo di componente potrà avere dei campi descrittivi peculiari alla tipologia di componente (ad esempio, per la tabella delle resistenze, accuratezza e dissipazione di potenza potrebbero essere due campi descrittivi dedicati). Da questo ultimo punto si evince la necessità di prevedere tabelle dedicate ai diversi tipi di componenti.
Nel set minimo di campi descrittivi alcuni, oltre ad essere obbligatori, richiedono l’utilizzo di key words precise così che Altium possa riconoscerli ed associargli una funzionalità dedicata. In realtà si potrebbe creare una associazione tra un campo descrittivo e una funzionalità Altium al momento della creazione del file .DbLib; tuttavia per chiarezza si consiglia di nominare i campi descrittivi con le key words Altium direttamente nel database. Vediamo ora quali sono questi campi descrittivi obbligatori e le loro funzionalità:
Non sono obbligatori ma si consiglia di prevedere anche i seguenti campi descrittivi:
Manufacturer Name.
Supplier N e Supplier Part Number N (key words): indicando uno o più supplier con relativo part number; Altium sarà in grado di effettuare il link con il database del supplier e mostrare la quantità in stock e costo del componente.
ComponentLinkNDescription e ComponentNLinkURL (key words): fornendo dei link web relativi al componete si può creare link interattivi a documenti come Datasheet o al sito web del supplier (Supplier Link).
Altri campi descrittivi consigliati sono: tipo di package, range di temperatura, tolleranze, rating di corrente o tensione ed eventuali certificazioni del componente (i.e. AEC-Q100).
Come abbiamo visto ad ogni componente nel database è associato un simbolo, un footprint ed i path delle rispettive librerie che li contengono. Una buona pratica è quella di prevedere una strategia di version control per suddette librerie (SVN o Git per esempio). Inoltre, si consiglia di istanziare un solo simbolo per schematic library ed un solo footprint per pcb library. Questo consente di mantenere le librerie il più possibili indipendenti tra di loro e di limitarne le dimensioni al crescere del numero di componenti nella libreria. Per esempio, si consiglia di aver una libreria RES.SchLib contenente un solo simbolo (RES) che verrà utilizzato da tutti i componenti resistenza del database. Allo stesso modo si potrebbe creare una pcb library RESC1005X40N.PcbLib contenente un solo footprint RESC1005X40N condiviso da tutti i componenti resistenza SMD 0402.
3D Model su Mechanical Layer 13,
Courtyard su Mechanical Layer 15, spessore di linea 0.05mm su grid da 0.25mm.
Silkscreen spessore di linea 0.2mm, pin 1 indicato con cerchio di raggio 0.125mm.
Assembly Info su Mechanical 17, spessore di linea 0.05mm su grid da 0.25mm, .Designator text posizionato dentro il componente.
Una volta creato il database con tutte le tabelle necessarie, le schematic libraries e pcb libraries, resta solo da unire i tre elementi insieme. Per fare questo è sufficiente creare un file database library con Altium (File>New>Library>Database Library). Una volta creato il file .DbLib è possibile connettersi al database dei componenti selezionando il tipo di database dal menù a tendina (nel nostro caso Microsoft Access) ed indicare il path del database stesso. Una volta inseriti questi dati basta premere su “Connect” per effettuare la connessione.
Per ogni tabella del database si deve assegnare un “Single key lookup” tra i vari campi descrittivi della tabella stessa. Questa entry rappresenterà l’identificativo del componente all’interno del database utilizzato durante la ricerca dei componenti. Perciò tale identificativo deve essere univoco per ogni componente, si suggerisce quindi di utilizzare il Component Id o il Part Number.
Come si può notare è presente un tab chiamato “Field Mapping” ove si può effettuare la mappatura dei campi descrittivi del database con le key words di Altium; questa feature può essere utile nel caso si voglia utilizzare un database creato originariamente per un altro CAD; non è necessario eseguire la mappatura se invece i campi descrittivi del database sono stati già nominati originariamente con le key words di Altium come suggerito in precedenza.
Una volta salvato il file .DbLib è possibile aggiungere la nostra nuova libreria basata su database alla lista delle librerie utilizzate nel “Components” tab per la ricerca dei componenti.