🛠 Maîtriser les E/S GPIO et interfaces sur Xerxes Nano
Objectifs
Ce tutoriel vise à comprendre l'architecture des entrées-sorties de la carte porteuse Xerxes Nano. Contrairement aux cartes monolithiques, la Xerxes Nano expose des bus de communication standard (SPI, UART, I2C, I2S) via des connecteurs dédiés ou des broches spécifiques. L'objectif est de configurer ces interfaces pour communiquer avec des périphériques externes, tels que des capteurs environnementaux (I2C) ou des affichages OLED (SPI), tout en gérant l'alimentation et le refroidissement via les connecteurs PWM et PoE.
Matériel nécessaire
- Carte porteuse Xerxes Nano
- Module NVIDIA Jetson Orin Nano Super ou Turing RK1
- Alimentation USB-C ou injecteur PoE (802.3af/at)
- Jumper pour sélection de l'alimentation
- Câbles de connexion (Dupont ou connecteurs compatibles)
- Périphérique de test : Capteur I2C (ex: BME280) ou Écran OLED SPI
- Ordinateur hôte avec accès SSH
- Système d'exploitation : Ubuntu Server ou JetPack
Étapes
- Préparation matérielle : Insérez le module Jetson ou Turing dans le connecteur de la Xerxes Nano. Assurez-vous que le jumper d'alimentation est positionné sur 'USB' si vous utilisez un chargeur standard, ou sur 'PoE' si vous utilisez l'injection par Ethernet. Connectez un ventilateur au connecteur PWM pour éviter la surchauffe lors des tests intensifs.
- Accès système : Connectez-vous à la carte via SSH ou série (UART). Vérifiez la détection des interfaces avec la commande suivante pour lister les périphériques I2C disponibles :
sudo i2cdetect -l
Si aucun bus n'apparaît, vérifiez les overlays du noyau dans /boot/extlinux/extlinux.conf pour activer les contrôleurs I2C/SPI nécessaires.
- Configuration I2C : Pour un capteur I2C, identifiez l'adresse du bus. Utilisez
i2cdetectpour scanner le bus 1 (par exemple) :
sudo i2cdetect -y 1
Si le capteur répond (adresse affichée), installez les bibliothèques Python pour l'interaction :
sudo apt install python3-smbus python3-pip
pip3 install smbus2
- Test de communication : Créez un script Python simple pour lire les données du capteur. Assurez-vous que les broches SDA et SCL sont correctement câblées sur les connecteurs d'extension de la Xerxes Nano. Notez que les niveaux de tension doivent correspondre (généralement 3.3V).
- Gestion PWM : Pour contrôler la vitesse d'un ventilateur via le connecteur PWM, utilisez l'interface sysfs ou le démon NVIDIA si disponible. Vérifiez les fichiers de contrôle dans
/sys/class/pwm/pour ajuster le rapport cyclique.
Vérification
- La commande
dmesg | grep i2cne doit pas afficher d'erreurs de bus. - Le script Python doit retourner des valeurs de capteur cohérentes.
- Le ventilateur doit tourner à une vitesse variable lorsqu'on modifie les paramètres PWM.
- Vérifiez que l'alimentation reste stable (pas de redémarrages) lors de la sollicitation des interfaces.
Pour aller plus loin
Explorez l'outil open-source 'Xerxes Home Lab' pour macOS afin de surveiller l'état de la carte. Vous pouvez également exploiter le port M.2 PCIe Gen 3 pour ajouter un accélérateur IA ou un stockage NVMe rapide, ou utiliser le connecteur OCuLink pour connecter une carte graphique externe, transformant la Xerxes Nano en station de travail IA modulaire.
Autres tutoriels pour cette carte
- Mise en route de la carte Xerxes Nano
- Configurer les entrées-sorties sur Xerxes Nano
- Mettre en place un NAS léger avec la Xerxes Nano
- Déployer un NAS IA avec la Xerxes Nano
- Maîtriser les E/S Avancées : GPIO, I2C et Affichage sur Xerxes Nano
- Déployer une passerelle IA sur Xerxes Nano : Réseau SFP+ et Stockage NVMe