mai 2012 (4)

mercredi 30 mai 2012

Shield Arduino R3

ArduinoR3.png

La révision 3 de la carte Arduino Uno (Arduino Uno R3) est apparue en fin d'année 2011. Cette révision est également valable pour la nouvelle carte de développement Arduino Leonardo. Par rapport à la révision 2 (Arduino Uno R2), celle-ci comporte notamment quatre nouvelles broches sur les connecteurs d'entrée/sortie (encadrées en rouge sur la photo) :

  • broches TWI AD4/SDA (données) et AD5/SCL (horloge) reportées sur le connecteur IOH ;
  • broche IOREF sur le connecteur POWER fournissant aux shields la tension de la carte Arduino afin d'assurer la compatibilité 3,3V/5V ;
  • une broche non câblée réservée à un usage futur sur le connecteur POWER.

ArduinoR3.png

Le shield proposé dans l'article Arduino est libre, sauf son logiciel de CAO ! est avant tout conçu pour la révision 2. Même s'il peut très bien prendre place sur une carte Arduino Uno R3, iDreamMicro propose une nouvelle version de ce shield compatible avec la révision 3, toujours réalisé à l'aide de Kicad.

Lire la suite

mercredi 9 mai 2012

Construction d'une bibliothèque

Après les deux précédents articles sur la configuration d'un environnement de construction SCons pour AVR-GCC, celui-ci propose de construire un logiciel recourant à des bibliothèques.

Comme dans l'article précédent, le projet servant de support fait basculer le niveau d'une sortie du microcontrôleur mais plutôt que de la piloter en direct, il propose de développer une bibliothèque digital_io réalisant cette tâche.

L'environnement de construction mis en place dans l'article précédent servira de base pour ce nouveau projet. Toutefois l'arborescence évolue et comporte désormais différents sous-dossiers afin de le structurer.

Lire la suite

Bibliothèque digital_io

    // Configure pin direction.
    DDRB |= (1 << PB5);

    // Set pin level.
    PORTB |= (1 << PB5);

Ces quelques lignes de code ne parleront sans doute qu'aux personnes connaissant les microcontrôleurs, voire même seulement à celles connaissant les microcontrôleurs AVR d'Atmel. En effet, elles configurent le PORTB5 d'un ATmega en sortie et le mettent au niveau logique haut.

Certes, c'est le meilleur moyen de réduire l'empreinte mémoire du logiciel sans recourir à l'assembleur. Mais c'est loin d'être le plus parlant. Sans oublier que ce code n'est pas portable. C'est à dire que le jour où on souhaitera troquer l'AVR pour un autre microcontrôleur tel qu'un PIC ou un MSP430, il sera nécessaire de revenir sur l'ensemble du logiciel.

Afin de remédier aux inconvénients cités ci-dessus, iDreamMicro propose dans cet article de découvrir la bibliothèque digital_io. Elle permet de piloter les ports d'entrée/sortie numériques des microcontrôleurs AVR d'Atmel :

  • configuration des ports d'entrée/sortie ;
  • lecture du niveau d'entrée ;
  • écriture du niveau de sortie.

La tout en offrant abstraction, portabilité et réutilisabilité. Les quelques lignes ci-dessous ne sont-elles pas plus parlantes ?

    // Declare pin.
    digital_io__pin_position_t output =
        DIGITAL_IO__PORT_B | DIGITAL_IO__PIN_5;

    // Configure pin direction.
    digital_io__configure_pin(output, DIGITAL_IO__DIRECTION__OUTPUT);

    // Set pin level.
    digital_io__set_pin_level(output, DIGITAL_IO__LEVEL__HIGH);

Lire la suite

Ouverture du dépôt idreammicro-avr

Un système de gestion de version permet de conserver l'ensemble des révisions d'un logiciel. iDreamMicro a choisi d'utiliser ce type de système, et plus particulièrement Subversion. iDreamMicro a ouvert un dépôt dédié à ses développements pour microcontrôleur AVR avec AVR-GCC. Celui-ci est  […]

Lire la suite