Un lecteur m’a interrogé par mail pour savoir comment mesurer la fréquence d’un signal reçu en entrée sur une broche GPIO du Raspberry Pi. Je lui ai répondu que le plus simple est de mesurer le temps s’écoulant entre deux interruptions successives déclenchées par des fronts montants et de calculer l’inverse. J’ai voulu vérifier que cela fonctionnait, et ai écrit un petit driver pour ce faire.
Archives de la catégorie ‘Microprocesseur’
Dans le cadre du séminaire « Du micro-contrôleur au PC embarqué » organisé à Villeneuve d’Ascq par Cap’Tronic et le Parc Scientifique de la Haute Borne , j’ai présenté aujourd’hui une conférence sur la transition que représente, pour un développeur accoutumé à la programmation de micro-contrôleur, l’évolution vers une application s’exécutant sur un système Linux embarqué.
Le contenu de ma présentation intitulée « Du firmware sur micro-contrôleur à l’application embarquée : Architectures, techniques et méthodes logicielles » est disponible ici.
Nous avons déjà vu dans plusieurs articles qu’il était facile de manipuler les GPIO sous Linux depuis l’espace utilisateur avec l’interface /sys
. Jusqu’à présent je ne m’étais intéressé qu’aux lectures et écritures, mais il est également possible de faire des attentes passives de changement d’état avec select()
ou poll()
. Voyons-en une mise en œuvre sur le Raspberry Pi.
Le Raspberry Pi offre quelques possibilités d’entrées-sorties directes en utilisant les broches GPIO présentes sur son connecteur P1. Elles ne sont pas très nombreuses (une dizaine) mais cela peut suffire pour des petits projets interactifs nécessitant d’interroger des capteurs tout-ou-rien ou de valider des actionneurs.
Nous pouvons utiliser ces GPIO de différentes façons, depuis l’espace utilisateur ou depuis le noyau. Voyons-en rapidement les principaux aspects…
Lire la suite de cette entrée »