spi-capture-analysis-8.ino

Sipeed SLogic32U3 : Analyseur logique 32 canaux USB 3.2 Gen2 · Fichier : spi-capture-analysis-8.ino · Langage : python · Usage : Capturer un bus SPI à 4 canaux (MOSI, MISO, SCK, CS) et décoder les trames avec sigrok-cli pour identifier les commandes.

Utilisation de sigrok-cli via Python pour capturer des lignes SPI et décoder le protocole en temps réel afin de visualiser les paquets envoyés.

Matériel : SLogic32U3 avec 4 canaux connectés aux signaux SPI. Logiciel : sigrok-cli. Exécution : assurez-vous que les canaux correspondent à l'ordre SCK/MOSI/MISO/CS. Le décodeur SPI nécessite que le CS soit actif (généralement bas, mais configurable).

spi-capture-analysis-8.ino

import subprocess
import sys

# Configuration de la capture SPI
# Canaux : 0=SCK, 1=MOSI, 2=MISO, 3=CS (Exemple de câblage)
# Taux : 800 MS/s pour 4 canaux maximum
DRIVER = 'slogic'
CHANNELS = '0-3'
RATE = '800M'
TIME = '1s'
DECODER = 'spi'
DECODER_OPTS = 'mode=0 cpol=0 cpha=0 cs_active=high'

command = [
    'sigrok-cli',
    '-d', DRIVER,
    '-c', CHANNELS,
    '-r', RATE,
    '-A', TIME,
    '-p', f'0={DECODER} {DECODER_OPTS}',
    '-O', 'decode'
]

print("Lancement de la capture et décodage SPI...")
try:
    result = subprocess.run(command, capture_output=True, text=True, check=True)
    print("Données décodées :")
    print(result.stdout)
except subprocess.CalledProcessError as e:
    print(f"Erreur lors de la capture : {e.stderr}")
except FileNotFoundError:
    print("Erreur : sigrok-cli non trouvé. Installez-le d'abord.")

← Retour à la fiche