i2c-troubleshooting-sigrok-9.ino

Sipeed SLogic32U3 : Analyseur logique 32 canaux USB 3.2 Gen2 · Fichier : i2c-troubleshooting-sigrok-9.ino · Langage : bash · Usage : Déboguer un bus I2C en capturant les adresses et les données échangées entre le maître et l'esclave.

Script Bash simplifié pour lancer une capture I2C avec décodage intégré, affichant les adresses esclaves et les registres lus/écrits.

Matériel : SLogic32U3 connecté à SCL et SDA. Logiciel : sigrok-cli. Exécution : vérifiez les numéros de canaux utilisés pour SCL et SDA dans la variable DECODER_OPTS. Utile pour vérifier si le maître génère correctement les bits d'ACK/NACK.

i2c-troubleshooting-sigrok-9.ino

#!/bin/bash
# Capture I2C sur SLogic32U3
# Câblage supposé : Ch0 = SCL, Ch1 = SDA
# Taux d'échantillonnage élevé recommandé pour les signaux I2C rapides (400kHz+) 
# Bien que l'I2C soit lent, la résolution temporelle aide au débogage.

DRIVER="slogic"
CHANNELS="0-1"
# 100 MS/s est suffisant et plus stable pour l'I2C que le max absolu
RATE="100M"
DURATION="5s"
DECODER="i2c"
# Options du décodeur : scl=0 sda=1 (indices des canaux)
DECODER_OPTS="scl=0 sda=1"

echo "Capture I2C en cours pendant ${DURATION}..."
sigrok-cli -d $DRIVER -c $CHANNELS -r $RATE -A $DURATION \
  -p "0=${DECODER} ${DECODER_OPTS}" \
  -O decode

echo "Analyse terminée."

← Retour à la fiche