B+

Publié par cpb
Août 06 2014

Raspberry Pi - B+Depuis une quinzaine de jours, nous pouvons disposer d’une nouvelle version du Raspberry Pi nommée « Model B+« . La plupart des critiques que l’on faisait au modèle précédent ont été prises en considération dans cette nouvelle mouture.

Aspect général

L’emplacement des composants et le routage ont été modifiés sensiblement avec les caractéristiques suivantes.

  • Forme globale mieux finie (composants et connecteurs mieux répartis, coins arrondis) et trous de fixation bien placés aux quatre sommets d’un rectangle de 58mmx49mm.

Raspberry Pi B+ recto

  • La carte SD ne dépasse plus d’un centimètre et demi comme auparavant, il s’agit à présent d’une micro-SD dont le débordement est de deux millimètres environ.
  • Les connecteurs Ethernet et USB ont été alignés, ce qui permet une présentation en façade plus élégante.

Raspberry Pi B+ verso

Connecteurs

Le Raspberry Pi B+ dispose de quatre ports USB. Ceci permet de connecter par exemple un clavier, une souris, une clé USB et un dongle Wifi sans nécessiter de hub externe. Le contrôleur USB/Ethernet n’est plus un Microchip LAN9512 mais devient un LAN9514, disposant de quatre ports USB 2.0.

Le connecteur « vidéo composite » a disparu, au profit d’une prise jack commune avec la sortie audio (en utilisant un adaptateur comme sur la photo ci-dessous). L’emploi d’un jack stéréo standard (pour écouteurs ou casque par exemple) donne accès à la sortie audio seule.

Jack audio et vidéo

Le connecteur (deux simples trous cuivrés) pour souder un bouton poussoir de Reset, s’est déplacé à côté du connecteur P1 et est a présent intitulé « Run ».

Leds et Reset du Raspberry Pi B +

GPIO

Cela saute aux yeux, le port d’extension P1 se voit allongé de 14 broches supplémentaires, passant de 26 à 40 broches (voir schéma). Toutefois, sur cette extension se trouvent trois broches de masse et deux broches (ID_SD et ID_SC) qui sont réservées pour connecter une eeprom permettant d’identifier la carte d’extension connectée sur le connecteur P1, un peu à la manière des « capes » pour les cartes BeagleBone. Au final, nous disposons donc de neuf nouvelles broches d’entrée-sortie GPIO.

[Ajout le 27/08/2014: voir le commentaire de Pierre Ficheux ci-dessous pour en savoir plus sur l’accès bas-niveau aux nouveaux GPIO.]

Alimentation

L’alimentation a été repensée, elle ne repose plus simplement sur une diode transil et quelques condensateurs pour lisser le +5V et une série de régulateurs pour obtenir 3.3V, 2.5V, et 1.8V, mais on utilise a présent un Mosfet pour la régulation 5V et un convertisseur à découpage pour les tensions inférieures. Ceci présente l’avantage d’une meilleure protection du circuit (contre les inversions de polarité par exemple) ainsi que d’une consommation et échauffement moindres.

LED

La led verte intitulée ACT, n’est plus pilotable avec la GPIO 16 (qui apparaît dorénavant sur le connecteur P1) mais avec la GPIO 47. La led PWR est accessible via la GPIO 35 (merci à Pierre Ficheux pour cette info !). Le petit script suivant permet de les faire clignoter toutes les deux.

new-leds:
#! /bin/sh

if [ -f /sys/class/leds/led0/device/driver/unbind ]
then
        echo leds-gpio > /sys/class/leds/led0/device/driver/unbind 2>/dev/null
fi

echo 35 > /sys/class/gpio/export 2>/dev/null
echo out > /sys/class/gpio/gpio35/direction 

echo 47 > /sys/class/gpio/export 2>/dev/null
echo out > /sys/class/gpio/gpio47/direction


while true
do
        echo 0 > /sys/class/gpio/gpio35/value
        echo 1 > /sys/class/gpio/gpio47/value
        sleep 0.1
        echo 1 > /sys/class/gpio/gpio35/value
        echo 0 > /sys/class/gpio/gpio47/value
        sleep 0.1
done

Au moment du démarrage, la led verte du Raspberry Pi précédent clignotait immédiatement au gré des accès à la carte SD. Ce n’est plus le cas. Lors de mes premiers essais en aveugle (avec une simple console série, sans écran), j’ai interrompu et relancé le boot à plusieurs reprises, persuadé à cause de l’immobilité de la led verte que le système était figé !

Firmware

Du point de vue logiciel, peu de modifications, si ce n’est la nécessité d’une mise à jour du firmware (les fichiers bootcode.bin, fixup*.dat et start*.elf que l’on trouve sur la première partition. Les distributions récentes ont déjà fait la mise à jour. Pour les systèmes créés from scratch et les noyaux compilés manuellement, on récupérera les nouveaux fichiers du firmware sur https://github.com/Hexxeh/rpi-firmware.

 

Conclusion

Au final je suis plutôt séduit par cette nouvelle mouture du Raspberry Pi. Je lui trouve une finition beaucoup plus adaptée à un usage professionnel. Je regrette toujours l’absence d’une horloge RTC pour conserver l’heure sans connexion réseau. Pour une utilisation dans un cadre industriel, je préférerais disposer d’une version supportant une gamme de températures plus étendue et une mémoire eMMC soudée en complément ou en remplacement de la micro-SD amovible.

Mais je suis sensible aux améliorations notables apportées sur les principaux points critiques de son prédécesseur.

 

7 Réponses

  1. Herve BOTERMAN dit :

    Salut Christophe,

    Pourrais-tu m’éclairer sur une question à propos du RPi:

    Le RPi dispose d’un firmware/API (mmal) permettant entre autre de sous-traiter l’encodage/decodage du h264 au GPU. Est-ce qu’il est possible d’aprés toi de pouvoir bénéficier de ce firmware et ses possibilités en utilisant un autre kernel que l’officiel ?
    Je voudrais en fait utiliser Xenomai sans me priver de l’encodeur hardware h264 et de la capture video de la camera CSI. Penses-tu que ça soit jouable ?

  2. FICHEUX Pierre dit :

    Pour terminer sur le pilotage des leds sur RPi B+, voici la nouvelle procédure à utiliser et qui concerne les numéros de GPIO >= 32.

    Hope this helps 🙂

    #define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
    #define OUT_GPIO(g) *(gpio+((g)/10)) |=  (1<= 32 (RPi B+)
    #define GPIO_SET *(gpio+7)  // sets   bits which are 1 ignores bits which are 0
    #define GPIO_CLR *(gpio+10) // clears bits which are 1 ignores bits which are 0
    #define GPIO_SET_EXT *(gpio+8)  // sets   bits which are 1 ignores bits which are 0
    #define GPIO_CLR_EXT *(gpio+11) // clears bits which are 1 ignores bits which are 0
    
    void gpio_set (g)
    {
      if (g >= 32)
        GPIO_SET_EXT = (1 << (g % 32));
      else
        GPIO_SET = (1 <= 32)
    }
    
    void gpio_clr (g)
    {
      if (g >= 32)
         GPIO_CLR_EXT = (1 << (g % 32));
      else
        GPIO_CLR = (1 << g);
    }
  3. MOREL J dit :

    Bonjour,

    Je viens de recevoir cette carte, elle est terrible.
    Je pense l’utiliser pour réaliser un jukebox numérique; j’ai donc installé Kodi, très fluide avec interface simplifiée, j’adopte. Je souhaiterais utiliser un ecran LCD 15 + dalle tactile capacitice (3M microtouch single touch USB).
    Ma question est : est-ce possible intégrer l’option dalle tactile 3M à ce noyau ?
    Bien cordialement,

    Jérôme.

    • cpb dit :

      Bonjour,

      Je n’ai jamais testé cette dalle tactile, mais je vois que dans le noyau 3.17, il y a un support pour « 3M/Microtouch EX II series device support »

      Il est nécessaire de recompiler le noyau car c’est un driver qui ne s’installe que statiquement, pas sous forme de module chargeable après le boot.

      Voir pour cela, lors de la préparation de la compilation du noyau, l’option :

      Device Drivers
        -->
       Input device support
          -->
       Touchscreens
            -->
       3M/Microtouch EX II series device support
      
  4. MOREL J dit :

    pourriez-vous m’expliquer comment faire ? Sinon y a t-il un endroit où je pourrais trouver les info concernant la recompilation d’un noyau ARM pour RASPBMC ?
    Jérôme.

  5. MOREL J dit :

    merci beaucoup.

    Bon appétit !

    Jérôme.

URL de trackback pour cette page