Progettare diversi PCB all'interno dello stesso progetto

Ari Mahpour
|  Creato: September 5, 2021
Progettare diversi PCB all'interno dello stesso progetto

Gran parte dei nostri progetti PCB sono salvati come singoli circuiti all'interno dei nostri progetti di Altium Designer (per es. i file .PrjPcb). Di tanto in tanto, però, ci troviamo a progettare utilizzando varianti con diverse opzioni di montaggio (stuffing). Capita a volte di dover inserire in un singolo progetto più circuiti stampati con varie opzioni di stuffing; quando succede, sono in molti a trovarsi in difficoltà. Troppe volte ho visto progettisti forkare (cioè copiare e incollare) un progetto per poi apportare minuscole variazioni allo schema e/o al PCB. Questa pratica può essere accettabile, ma non quando è necessario poter tornare indietro e aggiornare il progetto iniziale. Come si possono apportare le stesse modifiche all'interno di più progetti? Com’è possibile garantire che tali modifiche siano identiche? Quante volte si sarà costretti a farlo (ad es. Rev A, B, C, ecc.)? In questo articolo scopriremo come è possibile gestire diversi PCB all'interno di un singolo progetto. Analizzeremo inoltre l'esempio utilizzando il circuito stampato introdotto nel mio ultimo articolo, Prototipi in tempo di pandemia: costruire elettronica nel proprio salotto.

Configurazione dei file di progetto

Il nostro obiettivo qui è quello di mantenere un'unica sorgente all'interno degli schemi, pur con la possibilità di sbrogliare varianti dello stesso PCB. In questo esempio, ho creato un unico schema ma con due PCB:

Figura 1: file di progetto con diversi PcbDocs
Figura 1: file di progetto con diversi PcbDocs

Puoi notare le varianti in alto. Ho creato due varianti per il mio Kiln Controller: una per il Raspberry Pi (dimensioni standard) e l'altra per il Raspberry Pi Zero. Dato che la dimensione standard è sostanzialmente solo una versione più grande della zero, ho iniziato con il routing del Raspberry Pi Zero HAT. Dopo aver completato il routing, ho copiato e incollato l'intero design PCB nel PCB di dimensioni standard (PiHat - Full.PcbDoc). È stato necessario apportare qualche piccola modifica (cutouts, versamenti poligonali, margini della scheda, ecc.), ma i componenti e le tracce sono rimasti gli stessi.

Nello schema, ho incluso tutti i componenti che esistono in entrambi i progetti (indipendentemente dal fatto che siano montati o meno):

Figura 2: Schematici senza varianti
Figura 2: Schematici senza varianti

Mi sono reso conto di avere molto più spazio a disposizione nel Raspberry Pi HAT di dimensioni standard, quindi ho deciso di incorporare il mio convertitore CA-CC nella scheda. Il problema, ovviamente, è che l'aggiunta del convertitore allo schema verrà importata anche nel PCB per la scheda Pi HAT di dimensioni inferiori. Ciò andrebbe evitato, quindi l'ho intenzionalmente escluso, impedendo la sua importazione nel mio PcbDoc:

Figura 3: Impedisci l'importazione di parti non montate (unstuffed)
Figura 3: Impedisci l'importazione di parti non montate (unstuffed)

Visto che i componenti non fanno parte del progetto, non potranno generare errori DRC "unrouted". È inoltre opportuno aggiungere le opzioni DNI (Do not install) alle nostre varianti in questo modo:

Figura 4: Opzioni DNI per la scheda a dimensione standard
Figura 4: Opzioni DNI per la scheda a dimensione standard
Figura 5: Opzioni DNI per la scheda Pi Zero
Figura 5: Opzioni DNI per la scheda Pi Zero

Per evitare confusione, ho completamente rimosso il connettore di alimentazione DC per la versione a dimensione standard (dato che stiamo usando un ingresso AC) e viceversa con la versione Pi Zero.

File di Output

Ora che abbiamo progettato il nostro schema, eseguito il routing delle schede e configurato le opzioni di stuffing, dobbiamo impostare i nostri file di output. Saranno questi file di output a generare i pacchetti di fabbricazione e assemblaggio necessari per costruire ciascun circuito stampato con le rispettive opzioni di stuffing. Questo è un passaggio cruciale che viene spesso trascurato causando problemi non indifferenti nella creazione del pacchetto per il produttore.

In questo esempio, abbiamo un file di output separato per cisacun PCB. Per semplicità, esiste un unico file di output sia per la fabbricazione che per l'assemblaggio (generalmente suddiviso in due file .outjob separati all'interno dei progetti d’esempio di Altium Designer). Come si può vedere nelle Figure 6 e 7, i file .outjob sono identici tranne che per la selezione della variante e per la selezione PcbDoc. Per avere più opzioni di stuffing, utilizziamo le opzioni di variante situate nella parte superiore della finestra. Generiamo quindi un pacchetto solo per il PCB che ci interessa per montare solo i PCB specificati. Ad esempio, per la variante "Pi" (che consiste nello stuffing di un Raspberry Pi HAT di dimensioni standard), vogliamo selezionare il file PCB "PiHat - Full" (cioè a dimensione intera). Non ci interessa generare alcun pacchetto di fabbricazione e assemblaggio per il Raspberry Pi Zero HAT. Lo stesso vale per il Raspberry Pi (Zero) HAT più piccolo. Generiamo i file necessari per fabbricare e assemblare solo il circuito che ci interessa.

Figure 6: Outjob file with full-size project variant and PCB selected
Figura 7: File Outjob con selezionate la variante di progetto Pi Zero e il PCB
Figura 7: File Outjob con selezionate la variante di progetto Pi Zero e il PCB

Infine, per consentire un certo riutilizzo, utilizziamo le stringhe speciali nelle impostazioni della struttura delle cartelle in questo modo:

Figura 8: utilizzo di stringhe speciali per denominare le cartelle di output in modo sistematico
Figura 8: utilizzo di stringhe speciali per denominare le cartelle di output in modo sistematico

Questo ci consente di creare automaticamente sottocartelle in base al nome della variante. Se il nome della variante cambia, cambieranno anche le cartelle.

Esistono svariati modi per condensare ulteriormente questi file output tramite script o altri strumenti, ma questo va oltre l’intento di questo articolo. Quello che mi preme è dimostrare come questo sia possibile, e fornire un esempio pratico al lettore mostrando una potenziale soluzione.

Conclusione

In questo articolo abbiamo discusso delle sfide che i progettisti si trovano ad affrontare nella gestione di PCB con possibili varianti. Invece di creare e gestire più copie di uno stesso progetto, è consigliabile mantenere un solo progetto PCB, e progettare le varianti attraverso le configurazioni dei file di output. Queste configurazioni consentono di mantenere più file PcbDoc all'interno dello stesso progetto, e allo stesso tempo di generare pacchetti specifici per ciascun circuito stampato. Utilizzando questa tecnica, i progettisti possono risparmiare tempo e denaro. Possono infatti apportare modifiche a PCB diversi aggiornando un unico progetto.

Vuoi scoprire come Altium può aiutarti a completare il tuo prossimo progetto PCB? Parla con un esperto e scopri come prendere decisioni di progettazione con facilità e sicurezza.

Sull'Autore

Sull'Autore

Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

Articoli Più Recenti

Tornare alla Pagina Iniziale