web-dev-qa-db-fra.com

Activer l'entrée ADC sur Beaglebone avec le noyau 4.x

J'utilise Ubuntu 16.04 sur un Beaglebone Black après instruction du site eLinux . Je l'ai installé et en cours d'exécution à partir de l'eMMC.

Cependant, j'ai du mal à faire fonctionner les broches d'entrée ADC. Les exemples que j'ai vus (par exemple, celui-ci ) suggèrent que lancer echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots devrait suffire - mais cela ne fonctionne pas pour moi, ce fichier n'existe pas.

Cela fonctionnait sur 14.04, mais maintenant ne fonctionne pas sur 16.04. Comment puis-je obtenir l'entrée ADC au travail?

2
seanlano

Le système de superposition d'arborescence de périphériques a légèrement changé avec le noyau 4.x. Selon cette page , l'emplacement est maintenant /sys/devices/platform/bone_capemgr/slots. J'ai aussi trouvé dans ce rapport de bogue que le nom de la superposition d'arborescence de périphériques n'est pas cape-bone-iio, il est maintenant BB-ADC.

La commande à exécuter sur un système Ubuntu à noyau 4.x est la suivante:

Sudo sh -c "echo 'BB-ADC' > /sys/devices/platform/bone_capemgr/slots"

Vous devriez alors pouvoir lire les valeurs analogiques avec une commande comme celle-ci:

cat "/sys/bus/iio/devices/iio:device0/in_voltage0_raw"

Pour rendre cela permanent après un redémarrage, vous pouvez modifier les options de ligne de commande uBoot, dans le fichier /boot/uEnv.txt. Insérer une ligne comme celle-ci:

cape_enable=bone_capemgr.enable_partno=BB-ADC

Notez que (je pense) vous ne pouvez avoir qu'une seule ligne "enable" dans le fichier. Si vous avez d'autres modules à activer ici, mettez-les sur une ligne séparée par des virgules.

Maintenant, au redémarrage, le Beaglebone activera l’entrée ADC.

2
seanlano