Accueil » Archives pour Multipower

Multipower

La transformée de Fourier

Savez-vous que presque tout peut être décomposé en une combinaison de fréquences (ondes sinusoidales) ? 

Regardez par exemple ce dessin de Homer Simpson :

En combinant ensemble un nombre suffisant de fréquences (représentées dans cet exemple par une combinaison de cercles en rotation), le dessin est possible avec une grande précision. 
Comment déterminer exactement combien de fréquences (y compris leur phase et amplitude) sont nécessaires pour créer le dessin ? La réponse est donnée mathématiquement par la transformée de Fourier.
Cette théorie permet de décomposer tout signal complexe en une somme de fréquences individuelles.
L’écran ci-dessus montre :
  • Un signal généré dans Proteus à l’aide d’un générateur à script;
  • Une représentation analogique de ce signal;
  • Une transformée de Fourier du signal décomposée en ses fréquences constitutives.
Ci-dessous une photo d’un analyseur de spectre numérique, qui peut être utilisé par exemple dans l’analyse des fréquences radios.
Les microcontrôleurs modernes, qui utilisent des instructions de traitement numérique du signal, peuvent analyser un signal analogique (numérisé avec un convertisseur anlogique-numérique – un CAN ou ADC) pour détecter et/ou filtrer certaines fréquences. L’avantage par rapport à des filtres analogiques et que le comportement peut être modifié à la volée par logiciel plutôt que de devoir changer les composants physiques.

La transformée de Fourier rapide

Mathématiquement, la transformée de Fourier calcule exactement la transformée d’une fonction depuis le domaine temporel vers le domaine fréquentiel. En pratique, un ingénieur électronique se sert d’un microcontrôleur pour caculer la transformée de Fourier d’un signal, uniquement avec une certaine résolution. Si le signal est lu avec un CAN (convertisseur analogique-numérique), ce calcul se fait à une cadence/résolution donnée.
La transformée de Fourier rapide (FFT – Fast Fourier Transform) est une méthode efficace pour calculer la transformée de Fourier d’un signal échantillonné. Lors de la conception d’un système qui implique une FFT, il faut tenir compte d’une certain nombre de paramètres :
  • La fréquence d’échantillonnage;
  • Le nombre d’échantillons / la durée d’échantillonnage.

Fréquence d'échantillonnage

La fréquence d’échantillonnage, qui représente la cadence des données / le nombre de fois que le signal analogique est échantillonné (c.a.d. lu avec le CAN), déterminera la fréquence maximale que la FFT peut détecter. Voyons l’explication à ce problème connu sous le terme aliasing. Prenons les deux signaux qui suivent (jaune et bleu) :
Si le signal jaune, à la fréquence de 2.5 Hz, est échantillonné à la fréquence de 1HZ, repéré par des croix (X) blanches, nous obtiendrons exactement les mêmes données que pour le même signal à 0.5Hz. La fréquence à laquelle le phénomène d’aliasing intervient est appelée fréquence de Nyquist. Elle est égale à la fréquence d’échantillonnage divisée par 2, donc pour l’exemple ci-dessus (échantillonnage à 1Hz), tout signal de fréquence 0.5Hz ou plus peut être perçu à une fréquence inférieure lors de la FFT. C’est un repliement de spectre.

Même le signal bleu de 0.5HZ, qui est égal à la fréquence de Nyquist dans notre cas, peut être vu à zéro s’il est échantillonné au mauvais moment.

Pour cette raison, il est important de valider une cadence d’échantillonage suffisament haute pour détecter la  fréquence maximale qui doit être reçue par le système, et couper toutes les fréquences plus hautes avec un filtre analogique passe-bas si nécessaire.

Nombre d'échantillons

La seconde considération, est le nombre d’échantillons à acquérir, qui détermineront la résolution de la FFT. En fait, la FFT ne dit pas exactement quelles sont les fréquences présentes dans le signal, mais plutôt quelles sont les fréquences présentes dans un gamme de fréquences donnée. Si nous prenons uniquement 2 échantillons à 1 Hz par exemple, alors la FFT nous indiquera la force combinée des signaux dans la gamme 0.00Hz<->0.25Hz et la force combinée des signaux dans la gamme 0.25Hz<->0.50Hz. Le nombre de résultats produits par la FFT, aussi connu sous le terme ‘output bins’, est égale au nombre d’échantillons en entrée.

Le fait de passer à 4 bins / échantillons, doublera la résolution :

Bien sûr, nous pouvons en déduire qu’il faut prendre le plus d’échantillons possible, afin d’améliorer le résolution. Cependant tout dépend du temps de calcul et de la rapidité à laquelle nous voulons des résultats: si nous prenons 10 échantillons à 1 Hz, l’acquisition durera 10s – ou 60s si nous prenons 60 échantillons. Il faut donc tenir compte du temps de réaction du système pour déterminer le nombre d’échantillons à prendre. Une autre limitation est liée au temps de calcul de la FFT par le microcontrôleur – à quelle vitesse les données issues du CAN sont obtenues et la rapidité de traitement de la FFT.

Il est nécessaire de mentionner que l’aglorithme FFT, impose que le nombre d’échantillons / bins doit être une puissance de 2 pour que les calculs soient rapides – donc 2, 4, 8, 16, etc.  La plupart des bibliothèques de calcul de FFT impose de disposer que le nombre d’échantillons soit une puissance de 2.

Le Goertzel

Si vous devez uniquement détecter la présence d’une fréquence particulière dans le signal, alors l’aglorithme de Goertzel est un moyen plus rapide. Le concept est le même pour la fréquence d’échantillonage et le nombre de bins, cependant le Goertzel ne calcule la valeur que pour un des bins.

Conclusion

La transformée de Fourier est un concept puissant utilisé de manière intensive en ingénierie.  Sans être entré dans une description mathématique sur la théorie de la transformée de Fourier, nous avons présenté quelques considérations pratiques sur sa mise en oeuvre en utilisant une FFT.

Proteus inclut plusieurs outils et des exemples de projets de traitement numérique et analogique, y compris :

  • Simulation analogique, tel que le filtrage des signaux analogiques;
  • Génération de signal analogique; utilisation de générateurs interactifs ou par scripts;
  • Analyse de signal analogique; y compris analyse par Fourier et analyse fréquentielle;
  • DSP (Digital Signal Processing – traitement numérique du signal), simulation de microcontrôleur.


Copyright Labcenter Electronics Ltd. 2024

Traduction française

Copyright Multipower France 2024

Couture et blindage du PCB avec des vias

La couture de vias sur le PCB consiste à utiliser un grand nombre de vias pour connecter es zones de cuivre placées sur différentes couches. Le blindage par des vias (aussi appelé ”picket fence » en anglais) consiste à utiliser une ou deux rangées de vias placées en périphérie des pistes pour relier des zones de cuivre. Il existe de nombreux points de vue différents sur quand et comment utiliser les vias de couture/blindage sur votre PCB, dont nous allons résumer certains dans cet article.

Masse constante

L’utilisation la plus courante de la couture avec des vias est probablement de garantir des chemins de retour courts pour les signaux ou d’aider à maintenir une masse constante. Dès qu’un courant commence à circuler, il induit une tension sur le cuivre qu’il traverse, ce qui permet à la fois de répartir le courant et de faire “rebondir” la masse en fonction de la partie du PCB concernée. La couture par vias peut être un moyen efficace et peu coûteux de stabiliser la masse sur le PCB.

Gestion de la chaleur

Sur certains PCBs, la couture de vias peut être utile pour mieux distribuer la chaleur. Un PCB est plus conducteur horizontalement (le long de la couche) que verticalement (traversée de la carte). Si le suivi n’est effectué que sur les couches extérieures, une grande partie de la chaleur est transportée latéralement et le noyau peut être plus froid que les pistes. En cousant cette construction avec des vias, on améliore la conductivité, ce qui permet de dissiper la chaleur, réduisant ainsi les températures globales. Cet avantage disparaît bien sûr si toute la carte est utilisée pour transporter du courant et qu’il n’y a donc pas d’endroit plus froid où la chaleur peut se répandre.

Diaphonie

Relier le cuivre par couture peut également être utilisé pour réduire le couplage capacitif entre les signaux. Représentez-vous les pistes adjacentes du circuit comme les terminaux d’un condensateur, l’espace qui les sépare étant le diélectrique. Plus l’espace est important, moins la capacitance sera importante ainsi que la diaphonie. La couture par cuivre entre des pistes aura le même effet d’un espacement plus petit (plus de diaphonie!) sauf si le cuivre est correctement mis à la masse. Il est donc important d’être certain que la couture par cuivre est effective à la fréquence d’intérêt. Dans ce rôle, la couture par vias tend à être utilisée dans le cas d’une haute impédance, d’un circuit analogique (ADCs, SMPS, etc) lorsqu’il manque un bon plan de référence.

CEM

La couture par cuivre autour des pistes à hautes fréquences est réalisée pour différentes raisons. Le but est d’enfermer les ondes électromagnétiques rayonnées par ces pistes. Malheureusement, les isolants – y compris le noyau diélectrique FR4 du ¨CB – sont de bons conducteurs d’ondes électromagnétiques. Lorsque la fréquences des signaux augmente pour atteindre une longueur d’onde comparable à la taille des éléments de cuivre sur le PCB, les deux plans de masse deviennent des guides d’ondes qui font rebondir les ondes entre elles jusqu’à trouver la sortie par le côté du circuit.  La pratique admise est de coudre/blinder les plans de masse d’une carte RF avec des vias espacés au minimum de 1/10ème de la plus haute fréquence d’intérêt. L’objectif est de conserver, sur le substrat du diélectrique, un espacement suffisamment petit en comparaison de la longueur d’onde afin que la couture apparaisse comme continue par rapport aux ondes incidentes.

Equilibre du cuivre

Pour terminer, la couture des plans entre eux peut présenter des avantages lors de la fabrication du circuit car les vias pourrait relier des zones de cuivre non connectées (ilots) au net, ce qui permet d’augmenter la couverture de cuivre. Globalement, le résultat est que le PCB aura des quantités plus équilibrées de cuivre de chaque côté du circuit, ce qui peut aider à prévenir la déformation pendant la refusion.

Appliquer la commande de couture

La plupart des CAOs proposent des mécanismes pour coudre automatiquement deux zones de cuivre entre elles. La première décision pour le concepteur est d’inclure ou pas les ilots dans la propagation du cuivre. Un ilot est une zone de cuivre qui n’a pas de connexion au net sur sa couche mais qui en obtiendra une par couture à une autre zone de cuivre. Dans Proteus, la case à cocher ‘supprimer les ilots’ est utilisée pour contrôler la diffusion du cuivre lorsque vous placez un plan de masse

Lorsque les surfaces à remplir sont définies sur les deux couches, l’utilisateur appelle la commende de couture par traversées. Une boite de dialogue de configuration  autorise le choix du style de via, de la distance minimale d’isolement à respecter entre les vias et le logiciel en tiendra compte lors du placement des vias. Une fois configurée, cette commande suture généralement la surface commune des deux plans de masse

Bien que cela soit évident, l’erreur la plus courante est de coudre les plans entre eux trop tôt pendant la conception du circuit. Un PCB qui contient trop de coutures rendra le routage plus compliqué; il est donc préférable d’effectuer le routage en premier.

 

Appliquer la commande de blindage

Les vias de blindage, parfois appelés ‘via fences’ ou ‘picket fences’, suivent les mêmes principes que les vias de couture, mais consistent généralement en une seule rangée de traversées placées autour des pistes ou des limites de la coulée de cuivre. Ils sont presque toujours utilisés pour isoler les zones de la carte qui fonctionnent à des fréquences différentes et pour le contrôle des interférences électromagnétiques, comme indiqué ci-dessus.

De manière procédurale, vous appliquerez les vias de blindage presque de la même manière. Vous pouvez sélectionner soit la ou les pistes à blinder, soit le plan de masse si les vias sont appliqués au périmètre de la coulée de cuivre. La boite de dialogue de blindage des traversées est alors lancée à partir du menu contextuel et la configuration s’effectue de la même manière que pour la couture de vias.

Résumé

La question de savoir s’il est nécessaire ou non de suturer votre cuivre est souvent débattue par les concepteurs de PCB. La réponse n’est pas évidente car elle suppose une grande expérience pratique en ce domaine. Cependant, cet article indique les principales problématiques associées à ces techniques.


Copyright Labcenter Electronics Ltd. 2024

Traduction française

Copyright Multipower France 2024

Périphériques de microcontrôleur

Qu’elle est la différence entre un microprocesseur et un microcontrôleur ? Lorsqu’on débute en électronique nous pourrions penser qu’il n’y en a pas. Cependant cette différence existe; elle réside dans les “périphériques”. Un microprocesseur ne gère que des instructions (code à exécuter) – c’est le bon vieux CPU de notre ordinateur portable ou de bureau. Un microcontrôleur est un microprocesseur + des périphériques, le tout dans le même composant. Pour un portable ou un ordinateur de bureau, les périphériques – tels que la RAM, le disque dur, le processeur graphique – sont séparés du microprocesseur (CPU). Le compromis entre flexibilité, taille, coût, et simplicité; le fait d’avoir des périphériques externes procure une grande flexibilité car, par exemple, vous pouvez facilement choisir différentes tailles et types de RAM, de disque dur ou de GPU; alors que tout regrouper dans un seul composant rend les choses plus compactes, rentables et simples – particulièrement lorsqu’on travaille sur des systèmes embarqués compacts.

Les fabricants de microcontrôleurs offrent habituellement une large gamme de microcontrôleurs avec une choix de taille mémoire et diverses options de périphériques, associé à un outil de recherche qui permet de déterminer le composant qui correspond aux fonctionnalités dont vous avez besoin. De quel périphériques parlons-nous? 

La mémoire

L’élément le plus important car le microprocesseur doit lire quelque part les instructions à exécuter, et l’emplacement habituel pour ceci est la mémoire non volatile (ROM – Read-Only Memory). Non volatile signifie que la mémoire ne perd pas son contenu lorsque l’alimentation s’arrête. C’est typiquement de la mémoire FLASH qui est utilisée, sachant que précédement on utilisait de la mémoire qui devait être effacée avec une lampe UV avant d’être reprogrammée! Un autre type important de mémoire est la RAM (Random Access Memory), plus rapide que la ROM mais volatile (elle perd son contenu lorsqu’elle n’est pas alimentée) – elle est utilisée par le microprocesseur pour sauvegarder les “variables” (les valeurs avec lesquelles le programme travaille pour effectuer des calculs).
Contenu de simulation PIC en cours d’exécution.

Communications

Un des premiers protocoles de communication a été l’UART (Universal Asynchronous Receiver and Transmitter). Nous ne nous plongerons pas dans le détail des nombreux protocoles de communication dans cet article, sachant que l’UART a été un des protocoles utilisés dans les ordinateurs de bureaux avant l’invention de l’USB (Universal Serial Bus). Dans Windows, les ports UART sont appelés ‘COM Ports’, et bien qu’ils n’existent plus dans les ordinateurs modernes, ils restent largement utilisés sous la forme de composants convertisseurs USB-UART (tel que l’omniprésent FT232R). Les deux protocoles de communications standards développés ensuite ont été le SPI (Standard Peripheral Interface) et l’I2C (Inter-IC Communication) , qui ont permis de connecter de nombreux composants externes sur le même bus de communication.
Analyseur de protocole SPI entre  un AVR et un CAN série TLC549 serial 
Depuis, plusieurs protocoles de communication ont été développés; y compris USB, CAN et Ethernet.

A ce stade il est bon de préciser que les périphériques sont des composants séparés du microprocesseur qui le déchargent de certaines tâches – le microprocesseur se contente de demander “merci de m’envoyer la donnée” et le périphérique de communication se charge des choses sérieuses. Cette manière de procéder permet au microprocesseur de s’occuper d’autres choses. Plusieurs périphériques peuvent opérer au même moment en parallèle, ce qui ne serait pas possible si le microprocesseur devait les gérer lui-même.

Timer et compteur

Les timers sont utilisés pour tracer le temps (par exemple, un timer peut être configuré pour délivrer un ‘tick’ toutes les 1ms) et les compteurs peuvent être utilisés pour compter les impulsions sur une broche externe, par exemple. Les timers et compteurs peuvent également servir à d’autre choses tel qu’un PWM (Pulse-Width Modulation – modulation par largeur d’impulsion).

Convertisseur analogique-numérique

Un CAN (ADC en anglais) est utilisé pour lire une tension analogique et la convertir en un nombre numérique que le microprocesseur peut traiter.

 

Technique de suréchantillonnage pour MCU Stellaris

 

GPIO

Signifie ‘General-Purpose Input/Output’ (entrée sortie à usage général). Ces broches sont utilisées pour des communication “on”/”off” simples, tel qu’une lecture d’un bouton ou pour allumer une LED. Cependant les GPIOs peuvent être plus complexes qu’un simple “on” et “off”, avec des possibilités de pull-up et de pull-down, et de contrôle de slew rate (voir l’article sur la conception des circuits haute vitesse).

Watchdog Timer

Le travail du ‘watchdog’ (chien de garde) est de s’assurer que le CPU ne reste pas ‘bloqué’ dans un scénario de code erroné. Si le ‘watchdog’ n’est pas activé périodiquement alors il validera le bouton reset, ce qui provoquera un redémarrage de l’exécution du programme depuis le début. Ceci ne serait pas nécessaire si le programme était parfaitement codé ! C’est donc une sécurité pour se récupérer en cas de ‘bug’.

DMA

Le contrôleur de mémoire dynamique (DMA – Dynamic Memory Controller), pour les microcontrôleurs qui en possèdent un, peut transférer les données entre les périphériques et la mémoire (ou de mémoire à mémoire) sans que le microprocesseur ait besoin de s’en occuper. Alors qu’un périphérique de communication peut uniquement recevoir et sauvegarder une octet à un instant donné avant que le microprocesseur le prenne en compte (afin que des données supplémentaires puissent être reçues sans être perdues), un DMA peut être configuré pour conserver les communications reçues dans un large bloc memoire afin d’être traitées lorsque le microprocesseur est prêt.

RTCC

L’horloge calendrier temps réel (real-time calendar and clock) conserve la trace de la date et de l’heure.
Real Time Clock Maxim DS1307 en action avec un AVR Arduino

Et beaucoup, beaucoup plus...

La liste des périphériques disponibles sur un microcontrôleur augmente sans cesse. Citons les DAC (Digital to Analog Converters), les VIC (Vectored Interrupt Controllers), CLC (Configurable Logic Cell) et les timers angulaires.

Périphériques externes

Bien que de nombreux périphériques sont actuellement intégrés aux microcontrôleurs, il existe de nombreux périphériques qui restent externes – tel que GPS, accélèromètres, etc. Ces périphériques externes communiquent grâce aux protocoles déjà cités, à savoir SPI ou I2C.
Analyseur de protocole I2C. Traffic entre une EEPROM série externe et un microcontrôleur PIC 

Simulation

Proteus gère un grand nombre de microcontrôleurs et de périphériques externes en simulation; depuis les anciens 8086 pratiquement sans périphériques intégrés, jusqu’aux ARM remplis de périphériques. Proteus possède également des outils d’analyse et de débogage des protocoles de communication tels que UART / SPI et I2C. Si vous êtes intéressé par cette thématique, vous pouvez vous reporter à Proteus VSM.


Copyright Labcenter Electronics Ltd. 2024

Traduction française

Copyright Multipower France 2024

Retour en haut