Dans cet article, nous allons apprendre à utiliser Altium Designer® pour implémenter des fonctionnalités supplémentaires qui ne sont pas disponibles par défaut. Nous découvrirons un aspect puissant d'Altium Designer qui, une fois maîtrisé, peut élever vos compétences de conception à un niveau supérieur. Dans cet article, nous discuterons de la manière d'implémenter un script pour effectuer la vérification de conception pour vous.
Nous apprendrons :
De nos jours, les conceptions sont très complexes. En général, les clients attendent de leurs concepteurs de PCB que leurs cartes fonctionnent du premier coup. Pour cela, le souci du détail est crucial.
Dans cet exemple, voyons comment créer un script qui peut être utilisé dans une conception réelle. Considérons le problème de conception suivant :
Nous devons concevoir une carte ADC haute résolution en utilisant un convertisseur ADC de 16 bits. Le convertisseur ADC a une impédance d'entrée de 1 kΩ. "Quelle est l'impédance maximale de la piste entre le driver et l'ADC pour obtenir une erreur inférieure à 1 LSB ?" "Pouvons-nous concevoir un script qui peut nous aider ?"
Figure 1 concevoir une trace pour un ADC haute résolution
Pour répondre à cette question, nous devons calculer la résistivité de la trace et vérifier si la chute de tension sur la trace est supérieure à 1 LSB.
Pour calculer la résistivité de la trace, nous pouvons utiliser la formule suivante :
Par exemple :
Supposons que notre trace ait les dimensions suivantes : L = 10 cm, h = 0,035 mm, l = 0,381 mm. En utilisant la [1], et en supposant que la température ambiante est de 25 °C, l'impédance DC de la trace est de 129 mΩ, cela produira une erreur de tension de 0,013 %, bien au-dessus de 1 LSB (0,0015 %) d'un ADC 16 bits. Ainsi, la piste ci-dessus nous donnera une erreur de décalage de presque 9 LSB !
Est-il possible de demander à Altium Designer de faire tous les contrôles ci-dessus pour nous ? Peut-être en temps réel ?
La réponse est évidemment oui.
Concevons un script qui nous donne ces informations.
Nous voulons être capables de cliquer sur une trace, et nous voulons qu'Altium Designer fasse certains contrôles pour nous comme calculer la résistance de la trace, calculer la chute de tension, etc.
Figure 2 exemple d'informations de notre script de démonstration
Altium Designer accepte les scripts dans quelques langues, au cours de ma carrière, j'ai utilisé de nombreux langages, mais l'un des premiers langages que j'ai utilisés dans ma vie professionnelle était Delphi, c'est pourquoi j'ai décidé d'écrire ce script en Pascal. Cependant, vous pouvez utiliser d'autres langages de script comme Visual Basic si vous préférez.
Voyons comment concevoir un script dans Altium Designer qui résout le problème ci-dessus.
Dans notre script, nous voulons :
1. CHARGER NOTRE CARTE PCB
La première instruction que nous voulons exécuter est de charger notre conception PCB et de la sauvegarder dans une variable appelée Board. Nous pouvons le faire avec l'instruction suivante :
2. CHARGER LA PILE DES COUCHES
Une fois la carte chargée, nous voulons charger la pile des couches et la sauvegarder dans une variable appelée Stackup :
3. CHARGER LA TRACE QUE L'UTILISATEUR A SÉLECTIONNÉE AVEC LA SOURIS
Nous pouvons maintenant utiliser la méthode GetObjectAtCursor() pour obtenir la trace sélectionnée et la sauvegarder dans une variable appelée Trace.
4. CALCULER LA RÉSISTANCE DE LA TRACE EN UTILISANT LA FORMULE [1]
Une fois que l'utilisateur sélectionne une trace avec la souris, nous voulons calculer la largeur, la longueur et la hauteur de la trace, et les sauvegarder dans 3 variables appelées TraceThickness, TraceWidth, et TraceLength:
Nous pouvons finalement calculer la résistance de la trace Res en utilisant la [1], calculer la chute de tension (en supposant que l'ADC ait une Vref de 1V).
5. AFFICHER L'ERREUR DE LA TRACE ET L'ERREUR DE L'ADC
Une fois tous les calculs effectués, nous pouvons les afficher à l'écran. Une manière simple de faire cela est d'utiliser les fenêtres MessageDlg().
OutputString := 'Épaisseur de la trace = ' + FloatToStrF(TraceThickness,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Largeur de la trace = ' + FloatToStrF( TraceWidth,0,5,4) + ' mm' + #13#10; OutputString := OutputString + 'Longueur de la trace = ' + FloatToStrF(TraceLength,0,5,4) + ' mm' + #13#10#13#10#13#10; OutputString := OutputString + 'Résistance de la trace = ' + FloatToStrF(Res,0,5,4) + ' mohm' + #13#10; OutputString := OutputString + 'Chute de tension de la trace = ' + FloatToStrF(VoltageDrop,0,2,2) + ' %' + #13#10; OutputString := OutputString + 'LSB de l’ADC = ' + FloatToStrF(ADCLSB,0,2,2) + ' %'; MessageDlg(OutputString,mtInformation,4,0);
Comment exécuter le script
Pour tester le script, depuis votre document PCB cliquez sur Fichier->Exécuter le script…
Ensuite sélectionnez votre script :
Vous devriez maintenant voir une grande croix :
Cliquez sur la trace que vous souhaitez analyser.
Vous devriez maintenant voir les fenêtres de message avec les calculs :
Il est possible d'étendre ce script et d'ajouter une vérification plus sophistiquée, par exemple, pour étendre les pistes en arc et ajouter l'effet de la température, etc. Je vous laisse cela comme exercice.
Nous avons vu qu'une fois maîtrisé, Altium Designer peut être utilisé pour effectuer des actions complexes pour nous. Dans cet exemple, nous avons vu comment il est possible de mesurer l'impédance des traces en courant continu avec juste un clic et comment estimer l'erreur de tension dans une conception d'ADC haute résolution.
Ce script de démonstration a beaucoup de limitations mais peut être utilisé comme base pour vos propres extensions Altium Designer.
Vous avez d'autres questions ? Appelez un expert chez Altium ou découvrez plus sur les meilleures fonctionnalités du logiciel de conception de PCB et le calculateur d'impédance de trace dans Altium Designer.