Le Yocto-PWM-Rx est un module USB isolé qui permet de mesurer différents types de signaux périodiques. Il y a quelques années, nous avons écrit un petit article qui résumait les différentes possibilités et la manière de configurer le module pour chacune d'entre elles. Malgré cela, nous avons encore reçu occasionnellement des questions d'utilisateurs qui étaient surpris par certains comportements du module. Nous avons donc remis le métier sur l'ouvrage pour essayer de l'améliorer.
Si le Yocto-PWM-Rx était limité à la mesure de signaux périodiques exclusivement composés d'alternances régulières entre signal haut et signal bas, la mesure serait presque triviale. Mais, dans le monde réel, le module doit forcément évaluer des conditions atypiques:
- Lorsque la période semble s'élargir beaucoup, s'agit-il d'un ralentissement de la période ou d'un arrêt ? Après combien de temps peut-on prendre la décision qu'il s'agit d'un arrêt ?
Un signal qui ralentit... ou s'arrête? - Au démarrage d'un signal qui comporte plus de deux flancs par période (par exemple parce qu'il est généré par un contact reed), à partir de quand peut-on différencier la vraie période des oscillations intra-période ?
Période ou pas période ?
Le Yocto-PWM-Rx comporte un système adaptatif qui gère assez efficacement la détection de période même dans le cas de signaux avec plus de deux flancs par période. Par contre, si l'on veut que l'algorithme soit le plus réactif possible dans les cas ambigus, on peut indiquer au module quelques caractéristiques du signal.
L'information essentielle pour faciliter la résolution de circonstances ambiguës est la plage de fréquence du signal que le Yocto-PWM-Rx doit analyser.
- Si vous indiquez que votre signal n'utilisera pas de fréquences en dessous de 1 Hz, cela évitera que le module interprète quelques impulsions isolées comme un signal à 0.05 Hz par exemple, mesure qui pourrait prendre plusieurs dizaines de secondes à être corrigée.
- Si votre signal est bruité mais que la fréquence utile est bornée, vous avez intérêt à réduire la bande passante d'acquisition à 1 MHz ou moins, pour filtrer le bruit à haute fréquence. L'interprétation n'en sera que meilleure.
Notez que si vous avez acheté votre module avant avril 2025, il est recommandé de mettre à jour son firmware à la dernière version, pour bénéficier de l'algorithme encore un peu amélioré suite à nos tests de ces derniers jours. Cette mise à jour corrige un bug dans le cas particulier où un signal très lent (fréquence < 0.033 Hz) pouvait verrouiller la détection de période. Elle ajoute également la possibilité d'indiquer une fréquence minimale. Si vous mettez à jour un module existant, la limite sera configurée à 0.02 Hz pour préserver la compatibilité avec le précédent firmware, au cas où vous utiliseriez des fréquences très lentes. Les nouveaux modules seront toutefois livrés avec une fréquence minimale configurée à 1 Hz, car les signaux plus lents sont plutôt l'exception. Si nécessaire, vous pouvez bien sûr baisser la limite jusqu'à 0.02 Hz.
La nouvelle interface permettant de configurer la fréquence minimale détectée
Parmi les autres améliorations récentes, nous avons ajouté une fonction resetPeriodDetection() à la librairie Yoctopuce, qui permet de remettre à zéro l'algorithme de détection de période, par exemple si vous voulez remettre instantanément le module dans un état déterminé avant le début d'une séquence de mesure. Vous trouverez cette nouvelle fonction dès la prochaine version de nos librairies. Avec le nouveau firmware, sur l'interface de VirtualHub, le bouton reset qui jusqu'à maintenant ne faisait que remettre à zéro le compteur d'impulsions appelle désormais aussi cette fonction.