i2c-troubleshooting-sigrok-9.ino
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."