i2c-troubleshooting-sigrok-9.ino

Sipeed SLogic32U3: 32-Channel USB 3.2 Gen2 Logic Analyzer · File : i2c-troubleshooting-sigrok-9.ino · Language : bash · Use case : Déboguer un bus I2C en capturant les adresses et les données échangées entre le maître et l'esclave.

Simplified Bash script to launch an I2C capture with integrated decoding, displaying slave addresses and read/write registers.

Hardware: SLogic32U3 connected to SCL and SDA. Software: sigrok-cli. Execution: check channel numbers used for SCL and SDA in DECODER_OPTS variable. Useful to verify if master correctly generates ACK/NACK bits.

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."

← Back to the board