Creare e gestire una libreria componenti condivisa basata file (schematic library) e su database

Andrea Longobardi
|  Creato: December 3, 2019  |  Aggiornato: August 24, 2020

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.

Tipi di librerie disponibili

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)

Creare il database

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.

Schermata della lista dei componenti elettronici
Schermata della lista dei componenti elettronici

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à:

  • Component ID: stringa indicativa del componente. Deve essere unica in tutto il database, viene utilizzata per individuare univocamente il componente dentro il database. 
  • Part Number: codice identificativo del componete. Può essere utilizzato come Component ID a patto che sia univoco in tutto il database.
  • Libray Path (key word): directory path relativo alla schematic library che contiene il simbolo del componente (.SchLib).
  • Libray Ref (key word)): nome del simbolo del componente all’interno della schematic library indicata.
  • Footprint Ref (key word): directory path relativo alla pcb library che contiene il footprint del componente (.PcbLib).
  • Footprint Path (key word): nome del footprint del componente all’interno della pcb library indicata.

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).

Simboli e Footprint

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.

Schermata di modifica delle proprietà degli elementi contenuti nella lista dei componenti elettronici
Schermata di modifica delle proprietà degli elementi contenuti nella lista dei componenti elettronici
Si consiglia di standardizzare il più possibile il processo di creazione simboli e footprint all’interno del team così da creare componenti con caratteristiche simili. Per esempio, per la creazione di footprint si raccomanda di seguire le direttive IPC7351, o quantomeno stabilire degli standard interni da seguire ogni qualvolta si generi un nuovo footprint. Ad esempio:
  • 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.

Unire database, simboli e footprint

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.

Passaggio finale di unione della schematic library e della PCB library
Passaggio finale di unione della schematic library e della PCB library

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.

Modalità di visualizzazione della schematic library all’interno di Altium Designer
Modalità di visualizzazione della schematic library all’interno di Altium Designer
Da ora in avanti la libreria basata su database, e tutti i componenti in essa contenuti, saranno a disposizione del progettista.  Per inserire un nuovo componente in libreria basterà aggiungere una riga nel database sotto la tabella opportuna, creare il simbolo e footprint se non già esistenti. Questa operazione non avrà nessun impatto sui componenti già presenti in libreria al momento dell’inserimento del nuovo componente.

Sull'Autore

Sull'Autore

Andrea Longobardi è un Ingegnere Elettronico con più di dieci anni di esperienza professionale nella progettazione di sistemi embedded, dalla fase iniziale di concetto alla messa in produzione. Andrea ha lavorato per diverse aziende internazionali come ST Microelectronics, ARM, Amazon Prime Air e Maxim Integrated.

Andrea possiede un’ampia esperienza su svariate applicazioni, come prodotti IoT, sistemi low power, piattaforme automotive, sistemi di controllo motori e droni.

Al momento Andrea è un consulente indipendente specializzato nella progettazione di sistemi embedded.La sua passione è quella di aiutare i suoi clienti con lo sviluppo PCB e firmware di sistemi embedded e IoT.

Risorse correlate

Tornare alla Pagina Iniziale
Thank you, you are now subscribed to updates.