In questo articolo, impareremo come utilizzare Altium Designer® per implementare funzionalità extra che non sono disponibili di default. Scopriremo un aspetto potente di Altium Designer che, una volta padroneggiato, può portare le tue competenze di progettazione a un livello superiore. In questo articolo, discuteremo come implementare uno script per eseguire la verifica del design per te.
Impareremo:
Al giorno d'oggi, i progetti sono molto complessi. In generale, i clienti hanno aspettative elevate nei confronti dei loro progettisti di PCB: si aspettano che le loro schede funzionino al primo tentativo. Per raggiungere questo obiettivo, l'attenzione ai dettagli è fondamentale.
In questo esempio vediamo come creare uno script che può essere utilizzato in un progetto reale. Consideriamo il seguente problema di progettazione:
Dobbiamo progettare una scheda ADC ad alta risoluzione utilizzando un convertitore ADC a 16 bit. Il convertitore ADC ha un'impedenza di ingresso di 1 kΩ. “Qual è l'impedenza massima della traccia tra il driver e l'ADC per ottenere un errore inferiore a 1 LSB?“ “Possiamo progettare uno Script che possa aiutarci?“
Figura 1 progetta una traccia di un ADC ad alta risoluzione
Per rispondere a questa domanda, dobbiamo calcolare la resistività della traccia e verificare se la caduta di tensione sulla traccia è superiore a 1 LSB.
Per calcolare la resistività della traccia, possiamo usare la seguente formula:
Ad esempio:
Supponiamo che la nostra traccia abbia le seguenti dimensioni: L = 10 cm, h = 0,035 mm, w = 0,381 mm. Utilizzando il [1], e assumendo che la temperatura ambiente sia di 25 °C, l'impedenza della traccia in DC è di 129 mΩ, ciò produrrà un errore di tensione dello 0,013%, ben al di sopra di 1 LSB (0,0015%) di un ADC a 16 bit. Quindi, la traccia sopra indicata ci darà un errore di offset di quasi 9 LSB!
È possibile chiedere ad Altium Designer di fare tutti i controlli sopra per noi? Possibilmente in tempo reale?
La risposta è ovviamente sì.
Progettiamo uno script che ci fornisca queste informazioni.
Vogliamo essere in grado di cliccare su una traccia, e vogliamo che Altium Designer faccia alcuni controlli per noi come calcolare la resistenza della traccia, calcolare la caduta di tensione, ecc.
Figura 2 esempio di informazioni dal nostro script dimostrativo
Altium Designer accetta script in diverse lingue, durante la mia carriera ho usato molti linguaggi, ma uno dei primi linguaggi che ho usato nella mia vita professionale è stato Delphi, quindi ho deciso di scrivere questo script in Pascal. Tuttavia, puoi usare altri linguaggi di scripting come Visual Basic se preferisci.
Vediamo come progettare uno script in Altium Designer che risolva il problema sopra descritto.
Nel nostro script vogliamo:
1. CARICARE LA NOSTRA SCHEDA PCB
La prima istruzione che vogliamo eseguire è caricare il nostro progetto PCB e salvarlo in una variabile chiamata Board. Possiamo farlo con la seguente istruzione:
2. CARICARE LO STACK DEGLI STRATI
Una volta caricata la Board, vogliamo caricare lo Stack degli Strati e salvarlo in una variabile chiamata Stackup:
3. CARICA LA TRACCIA SELEZIONATA DALL'UTENTE CON IL MOUSE
Ora possiamo utilizzare il metodo GetObjectAtCursor() per ottenere la traccia selezionata e salvarla in una variabile chiamata Trace.
4. CALCOLA LA RESISTENZA DELLA TRACCIA UTILIZZANDO LA FORMULA [1]
Una volta che l'utente seleziona una traccia con il mouse, vogliamo calcolare la larghezza, la lunghezza e l'altezza della traccia, e salvarle in 3 variabili chiamate TraceThickness, TraceWidth e TraceLength:
Possiamo infine calcolare il resistore della traccia Res utilizzando la [1], calcolare la caduta di tensione (assumendo che l'ADC abbia un Vref di 1V).
5. MOSTRA L'ERRORE DELLA TRACCIA E L'ERRORE DELL'ADC
Una volta completati tutti i calcoli possiamo visualizzarli sullo schermo. Un modo semplice per farlo è utilizzare le finestre MessageDlg().
OutputString := 'Spessore traccia = ' + FloatToStrF(TraceThickness,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Larghezza traccia = ' + FloatToStrF(TraceWidth,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Lunghezza traccia = ' + FloatToStrF(TraceLength,0,5,4) + ' mm' + #13#10#13#10#13#10; OutputString := OutputString + 'Resistenza traccia = ' + FloatToStrF(Res,0,5,4) + ' mohm' + #13#10; OutputString := OutputString + 'Caduta di tensione sulla traccia = ' + FloatToStrF(VoltageDrop,0,2,2) + ' %' + #13#10; OutputString := OutputString + 'LSB ADC = ' + FloatToStrF(ADCLSB,0,2,2) + ' %'; MessageDlg(OutputString,mtInformation,4,0);
Come Eseguire Lo Script
Per testare lo script, dal tuo Documento PCB clicca su File->RunScript…
Quindi seleziona il tuo script:
Dovresti vedere ora una grande croce:
Clicca sulla traccia che vuoi analizzare.
Ora dovresti vedere le finestre dei messaggi con i calcoli:
È possibile estendere questo script e aggiungere un controllo più sofisticato, per esempio, estendere le tracce ad arco e aggiungere l'effetto della temperatura, ecc. Lascio a voi questo come esercizio.
Abbiamo visto che Altium Designer, una volta padroneggiato, può essere utilizzato per eseguire azioni complesse per noi. In questo esempio, abbiamo visto come sia possibile misurare l'impedenza della traccia DC con un solo clic e come stimare l'errore di tensione in un progetto di ADC ad alta risoluzione.
Questo script dimostrativo ha molte limitazioni ma può essere utilizzato come base per le vostre estensioni di Altium Designer.
Hai altre domande? Chiama un esperto di Altium o scopri di più sulle migliori funzionalità del software di progettazione PCB e sul calcolatore dell'impedenza delle tracce in Altium Designer.