Arduino Portenta H7 - l'arduino orienté pro

Ce n'est pas une vrai nouveauté parce que pas mal de mes confrères blogger ont déjà eu l'occasion d'aborder ce sujet... cette fois, je vous propose de se pencher sur ce monstre de puissance.

Si l'on parle du Portenta sur le net, il faut avouer qu'il n'y a pas vraiment beaucoup d'informations détaillées.  Je vais donc essayer de résumer tout cela.

Arduino Portenta H7
 

Pour commencer, Portenta s'adresse avant tout au monde professionnel autant par les caractéristiques que par le prix de ~115 Eur TTC.
A ce prix là on ne s'autorise aucune erreur de connexion!

Un air de déjà vu... la PYBoard-D 

MicroPython Pyboard-D

Bien qu'il s'agisse d'une plateforme originale Arduino, la lecture des spécifications met en évidence une architecture de base plus que similaire avec la Pyboard-D de MicroPython (même processeur, même interface WiFi & BLE, connecteur haute densité, la Fmash SPI externe... et le support MicroPython).

Interpellant! Pour sa part la PyBoard-D est disponible à partir de 50.89 EUR TTC.
 

Attention: le Portenta apporte néanmoins son lot d'amélioration.

Les caractéristiques

Revenons à nos moutons en inspectant les caractéristiques du Portenta H7.

Cliquer pour agrandir

Facteur de forme

Pour commencer, le Portenta utilise le nouveau facteur de forme MKR adopté par Arduino. Celui-ci est compacte tout en permettant d'avoir des cartes orientées vers les milieux industriel.

Brochage MKR du portenta - cliquer pour agrandir

Le port I2C des cartes MKR est également présent sur le Portenta

Portenta apporte par contre un nouveau connecteur haute densité dans le monde Arduino (sous la carte), ce qui permet de connecter le Portenta sur une carte d'extension personnalisée ou le "Portenta Carrier", la carte d'extension officielle du "Portenta Carrier".

Connecteur haute densité sous la carte Portenta.
Détaillé plus bas dans l'article.

Le microcontrôleur STM32H7

Le STM32H7 (H747XI) est un processeur ARM 32 bits à deux coeurs. Le coeur M7 est cadencé à 480 MHz tandis que le coeur M4 est lui cadencé à 240Mhz.

Les deux coeurs peuvent communiquer ensemble en utilisant des appels RPC (Remote Procedure Call).

La plateforme fonctionne sous Mbed OS (RTOS) et supporte les environnements de développement suivant:

  • Arduino IDE
  • MicroPython
  • Javascript
  • Native MBEd application
  • TensorFlow Lite

Si le STM32H7 dispose de 1 Mo de RAM et 2 Mo de Flash en interne, c'est surtout les Portenta avec module Flash Externe et SDRAM externe qui présentent un intérêt.

Quitte avoir une plateforme puissante autant disposer de ressources en conséquences... même si 8Mo de SDRam externe + 16 Mo de Flash externe.... c'est littéralement monstrueux!

Point notable, le microcontrôleur dispose d'un GPU (Graphical Processing Unit, processeur graphique). Les GPU sont des circuits spécialisés capable de traiter rapidement des grands volumes de données. Ils servent dans les domaines graphiques mais également dans le traitement de volume de données (recherche scientifique), la génération de Crypto Monnaie, etc.

Ce GPU est un Chrom-ART Accelerator capable de gérer différents FrameBuffer (image d'arrière plan, image de premier plan, composition d'image, gestion des modes d'encodage). 

Principe de fonctionnement de Chrom-ART
Le Chrom-ART sera un bloc pratique pour réaliser des interfaces graphiques. 

Enfin, le GPU apporte également un encodeur/décodeur JPEG :-)

De la documentation: il est assez facile de trouver la documentation STM32 pour Chrom-ART sur internet en saisissant "Chrom-ART accelerator" dans votre moteur de recherche préféré.

SDRAM jusqu'à 16Mo, Flash jusqu'à 128 Mo

Ce qui est notable sur le Portenta, ce sont les modules de externes pour la SDRAM et la Flash. De fait, il est possible d'avoir un Portenta avec

  • 8, 16, 32, 64Mo de SDRAM Externe
  • 2, 16, 128 Mo de mémoire Flash (pour le stokage du programme et des données)

Cela couplé au double coeur du Portenta, le GPU graphique et le DisplayPort (voir plus bas), le Portenta peut vraiment servir à créer de petits systèmes informatiques totalement autonome sans vrai compromis sur la puissance.

A mon avis, il ne faudra pas attendre des lustres pour retrouver une distro linux (même minimaliste) fonctionnant sur une plateforme Portenta.

Gestion d'énergie et USB-C

Sans surprise, le connecteur USB-C poursuit sa progression. USB-C permet de transporter une puissance très importante et le Portenta est équipé du composant MC34PF1550A4EP du fondeur NXP. 

Outre le fait qu'il supporte la négociation de puissance sur USBC, ce composant avancé dispose de plusieurs "contrôleurs" d'alimentation pouvant prendre en charge les différents besoins énergétique du Portenta. 

Ce composant prend également en charge la gestion de la charge/décharge d'accu.

Finalement, en bas à gauche, nous pouvons noter la présence des lignes SDA/SCL sur le module de contrôle. Il est donc possible d'interagir avec le gestionnaire d'énergie par l'intermédiaire du bus I2C.

DisplayPort over USB-C

S'il y a bien une caractéristique inédite sur le Portenta c'est la disponibilité d'un DisplayPort via USB-C.

A l'aide d'un câble adéquat et d'un écran disposant d'une interface DisplayPort, il devient alors enfantin de créer une interface graphique pour n'importe quel projet de supervision.

Source: rs-online.com

Il est intéressant de noter que le DisplayPort est un Super HDMI (très largement connu) et que celui-ci est, sur le papier, retro-compatible avec les normes HDMI, VGA, DVI-D plus communément manipulés dans les makers et personnes Lambda.

Si vous voulez en apprendre un peu plus sur le DisplayPort, vous pouvez vous pencher sur cette vidéo d'introduction de pearl.fr (basique mais excellent pour une premiere découverte).

Host USB

Le port USB-C peut également être utilisé comme un Hôte USB. Cela signifique qu'il est possible de connecter des périphériques USB (disque dur, camera USB, scanner USB, un clavier USB, une souris, etc) directement sur le microcontrôleur.

Avec un interface USB hôte, le microcontrôleur est capable d'exploiter les ressources de ces périphérique (ce qui est totalement impossible sur un Arduino UNO).

Il faut cependant bien garder à l'esprit que le support de tels périphériques USB par le Portenta nécessitera l'écriture de bibliothèques capable de gérer les échanges de données avec le périphérique cible, ce n'est pas une tâche triviale.

WiFi et Bluetooth

Le Portenta utilise le même composant que la Pyboard-D pour assurer le support WiFi et Bluetooth. Nous y retrouvons le 1DX de Murata (ref: LBEE5KL1DX-833) qui est capable de soutenir un débit de 65 Mbps en WiFi (mega bits par seconde).

Vraiment pas mal pour une plateforme microcontrôleur, ne trouvez pas?

Ce composant Murata assure également le support Bluetooth Classique et BLE (Bluetooth Low Energy). Portenta porte la mention Bluetooth BR/EDR/LE .

Le Portenta est d'ores et déjà prévu pour être distribué avec une antenne céramique ou un connecteur µFl (connecteur miniaturisé et standardisé du monde radio).

Ethernet Phy (via extension)

Le Portenta est également capable d'établir des connexions Ethernet filaire. Il dispose du support PHY (physique) 10/100 MB disponible sur le connecteur haute densité.

Pour exploiter/tester la connectivité Ethernet filaire, il sera nécessaire de se procurer une carte d'interface (par exemple, le "Portenta Carrier").

Crypto et Auth chip

Portenta est également orienté vers l'avenir en embarquant des composants spécialisés dans la communication sécurisée.

Le SE050 de NXP:

Le NXP Crypto EdgeLock SE050C2 est composant spécialisé dans la cryptographie, , un composant prêt à l'emploi qui permettra de sécuriser les communications end-to-end sans devoir programmer l'artillerie lourde. 

Le SE050 permettra de sécuriser la communication avec un service Cloud, service IoT, encryption, algorithme, signature, protection de clé WiFi.
Ce composant à été conçu autour de cas pratique (les use case) largement exploités et approuvés par les communautés spécialisées en terme de sécurité. 

Un composant n'offrant pas seulement des fonctionnalités cryptographique de base mais également des fonctionnalités avancées (encryption de bus de données, configuration/provisioning de dernière minute et sans contact, etc).

Vous pourrez facilement obtenir plus d'information sur la page NXP consacrée a EdgeLock SE050.

L'ATECCC608A de MicroChip:

Nous avons également repéré un autre composant spécialisé qui est le ATECC608A de MicroChip spécialisé dans l'authentification sécurisée sur les réseaux. Ce composant gère les clés d'encryption/décodage, la vérification de signature (processus d'authentification), l'authentification TSL, un accélérateur AES (Advance Encryption System).

Carte SD (via extension)

Le Portenta dispose du support matériel pour carte SD mais la plateforme dispose déjà d'un espace de stockage conséquent.

Le connecteur microSD n'est pas monté sur la carte car cette fonctionnalité ne concerne, en réalité, que les applications de DataLogging.

Les signaux SDIO sont donc repris sur le connecteur haute densité et c'est par l'intermédiaire d'une carte d'interface (ou carte "Portenta Carrier") qu'il sera possible d'utiliser une carte microSD avec Portenta.

Connecteur haute densité

Nous l'avions déjà évoqué, le Portenta est équipé de deux connecteurs haute densité de 80 points chacun.

Portena Connecteur haute densité - Cliquer pour agrandir

Portenta Carrier: l'extension Portenta

Le facteur de forme Portenta permet déjà exploiter rapidement la plateforme. Cela rend le Portenta accessible au Maker pour des tâche de prototypage.

C'est surtout par l'intermédiaire de son double connecteur 80 broches que le Portenta peut révéler "sa puissance" en tant que microcontrôleur.

Arduino à donc prévu de distribuer le "Portenta Carrier" pour pouvoir goûter rapidement à la toute puissance de Portenta.

Portenta Carrier board - Photo: Alasdair Allan - Source: Hackster

A vu d'oeil nous pouvons identifier:

  • Connecteur Ethernet (RJ45)
  • HUB USB 2 ports (puisque Portenta supporte USB HOST)
  • Modem NBIoT / GPRS, son connecteur SIM et son connecteur d'antenne.
    Il s'agit d'un uBlox Sara-R410 (voir ce lien sur u-blox.com)
  • Un module LoRa de Murata et son connecteur d'antenne.
    En gris, voir ce lien vers CMWX1ZZABZ sur Murata.com
  • 3 entrée/sortie audio - son analogique)
  • Un connecteur RJ9 CanBus (en haut à droite selon toute vraisemblance) 
  • Un connecteur miniPCIe (pour ajouter des modules)
  • Un connecteur MiPi (juste au dessus du Portenta).
    Servant d'entrée vidéo 8-bit LVTTL/2
  • Alimentation externe et connecteur pour accu 18650 (vraisemblablement)
Non visible
  • Connecteur microSD 
  • Facteur de forme eNUC
  • Connecteur RJ11 pour RS232 / 422 / 485
  • Connecteur GPIO 40 broches
Cela mériterait quand même un article séparé....

Ressources

Aucun commentaire