Esplorare il codice
A differenza della programmazione, in cui uno sviluppatore può scrivere una funzione da utilizzare più volte in altre parti del programma, la progettazione del circuito è ancora molto carente in questo insieme di funzionalità. Ad esempio, la creazione di una griglia di LED con connessioni a determinati pin o l'aggiunta di un test pad per ciascuno degli ingressi di un connettore può richiedere molto tempo. Ma come mostra Cayden Pierce nel suo ultimo progetto PCB, strumenti moderni come JITX consentono agli ingegneri di creare schede scrivendo codice anziché selezionando impronte, consentendo così un'ampia gamma di possibilità di automazione ed estensibilità.
Un buon esempio di questa tecnica è la creazione di una scheda breakout/test per i cavi, poiché ogni pin necessita di un test pad, un LED e un'etichetta. Oltre a questi requisiti, il tester per cavi USB-C di Pierce necessiterebbe anche di un valore diverso del resistore di limitazione della corrente per ciascun LED a causa delle differenze di luminosità tra loro. Per il filo all'interno del cavo USB, una tensione verrebbe inviata dall'estremità della sorgente e ricevuta dall'altra estremità che è collegata sia a un test pad che a un LED a corrente limitata che si accende se il filo conduce correttamente.
Il primo passo nella progettazione del PCB prevedeva la definizione di una rete di alimentazione per la linea di tensione positiva e il collegamento di tutti i pin del connettore USB "sorgente" ad essa. Da qui, i punti di test sono stati definiti all'interno di un ciclo che assegna un'etichetta e la posiziona vicino al pad, oltre a collegare il pad al pin associato sull'altro connettore USB. Anche i LED sono stati definiti a livello di codice, tranne che la funzione di creazione tiene conto anche del colore quando si seleziona il valore del resistore a causa di livelli di luminosità non uniformi tra i colori.
Tradizionalmente, il passaggio dallo schema alla fase PCB della progettazione di circuiti in uno strumento EDA legacy comporta il trascinamento di ogni impronta sulla scheda e l'esecuzione delle tracce in base alle reti, operazione che richiede molto tempo. Pierce, tuttavia, è stato in grado di impostare a livello di codice dove voleva che ciascun test pad/resistore/LED fosse impostato attraverso alcuni semplici calcoli aritmetici all'interno dello stesso ciclo in cui sono definiti. L'ultimo passaggio è stato utilizzare la funzione autorouter di JITX che esegue automaticamente le tracce tra i componenti con un intervento umano minimo.
Optando per una progettazione code-first, Pierce ha dimostrato come avrebbe potuto risparmiare ore di tempo nella progettazione del suo PCB per testare i cavi USB-C rispetto ai metodi tradizionali. In futuro, potrebbe facilmente aggiungere più componenti, linee aggiuntive o altri connettori e generare rapidamente percorsi e layout. Puoi leggere il suo codice e il tutorial in modo più dettagliato qui nel suo post sul blog.