Beagle Bone Black: La prise en main

Image

La BeagleBone Black:

Je viens de recevoir la BeagleBone Black, une petite plateforme système embarqué à base de processeur ARM et 512 Mo de RAM. Cette plateforme joue un peu dans la même cour que le Raspberry Pi avec des tarifs très similaires (environ 40€). La différence est que cette plateforme est plus destinée à un public d’électronicien avec ses connecteurs d’extension. On y retrouve:

  • 69 GPIO (General Purpose Input/Output),
  • Une interface LCD,
  • 4 timers,
  • 4 ports série,
  • Les liaisons I2C et SPI,
  • … je n’ai pas encore lu toute la doc ;)

La carte est décrite sur le site BeagleBoard:

http://beagleboard.org/Products/BeagleBone%20Black

Au fil des différents articles, je vais vous présenter ma prise en main de la carte et essayer d’évaluer son potentiel pédagogique pour des étudiants de Licence Pro dans le domaine de l’électronique de puissance.

Pour Info, mon poste de travail est sous Slackware 14.0 en 64bit.

Premier branchement:

Sans alimentation extérieure, branchement via la prise mini-USB, la carte est vue comme une clé USB, et l’on a accès aux drivers à installer (Windows, MAC et LINUX), à la documentation et quelques autres fichiers. Je me pose la question de comment me connecter en mode textuel histoire de voir la séquence de Boot. Le wiki associé à la carte ainsi que le blog de Christophe Blaess me mettent sur la voie. Pour des raisons d’économie, il faut passer par un convertisseur USB-Série compatible avec les niveaux de tension 0-3,3V de l’UART0 du microprocesseur. Les convertisseurs de la famille FTDI fonctionnent très bien et les drivers sont souvent reconnu directement sous LINUX. Par contre, je n’avais pas de câble USB FTDI tout fait, mais dans mes stock, il me restait un petit module FTDI pour programmer un petit afficheur LCD ainsi que quelques fils USB avec le bon sertissage récupéré sur des vieilles tours de PC jetées à la benne, voici un câble USB-FTDI tout à fait opérationel.

  • Le GND va sur la broche 1 du connecteur J1 (il y un point blanc à coté)
  • Le RX sur la broche 4 de J1
  • Le TX sur la broche 5 de J1

bbb2

Attention, sur mon adaptateur, les broches RX et TX sont inversées (il s’agit du RX et TX de l’afficheur LCD auquel était destiné cet adaptateur). Bien sur j’avais oublié ce détail pour mon adaptateur et la liaison n’a pas fonctionnée du premier coup. Heureusement, après inversion, plus de soucis. Le système est robuste face à une inversion du Tx et du Rx, c’est un bon point ;)

bbb1

Il reste à communiquer avec la carte, il s’agit d’une liaison série à 115200 bit/s, 8 bits de données, 1 bit de stop, pas de parité. Sous linux, j’utilise pour la liaison série:

  • kermit (mon préféré)
  • minicom

Je ferai l’exemple avec kermit. Une fois kermit installé, il faut créer le fichier de configuration .kermrc à mettre dans votre répertoire home:

Chez moi, l’adaptateur est vu comme ttyUSB0, certains adaptateurs sont vus comme ttyACM0, à vous de modifier la première ligne en fonction. Vérifiez aussi que votre compte utilisateur fait bien parti du groupe dialout.

Reste à brancher et à lancer dans votre fenêtre de terminal

Et voici la séquence de boot du BBB:

Nous pouvons maintenant nous connecter en tant que root:

La suite de compilation gcc fait partie de la distribution Angström du BBB ainsi que l’éditeur de texte nano. Il ne s’agirait pas d’une prise en main si il n’y avait pas d’affichage de “hello world”, essayons de faire notre premier programme en C sur la BBB:

Compilons le fichier hello.c avec la commande suivante

Reste à exécuter le binaire obtenu: