slogic32u3-pulseview-scripting.py

Sipeed SLogic32U3: 32-Channel USB 3.2 Gen2 Logic Analyzer · File : slogic32u3-pulseview-scripting.py · Language : python · Use case : Automatiser l'analyse de signaux spécifiques (SPI/I2C) via le scriptage de Pulseview.

Python script orchestrating a targeted capture with hardware trigger for serial bus analysis like SPI.

This script uses sigrok-cli in the background to perform a triggered capture on an SPI bus. It configures the trigger on the Chip Select signal to capture only active transactions. The 140 MS/s frequency is optimized for fast signals on 4 channels.

slogic32u3-pulseview-scripting.py

# Exemple de script de décodage automatisé via l'interface de scriptage de Pulseview
# À utiliser dans l'éditeur de script de Pulseview ou via son API si exposée.

# Hypothèse : Utilisation de l'API Python intégrée ou d'un appel externe à sigrok-cli
# pour extraire les données décodées.

import subprocess
import json
import sys

def decode_spi_capture():
    # 1. Capturer les données brutes avec un déclencheur sur le CS (Chip Select)
    # Commande sigrok-cli pour capturer sur 4 canaux (SCLK, MOSI, MISO, CS)
    # Déclencheur sur le front descendant de CS (canal 3)
    cmd = [
        "sigrok-cli",
        "-d", "slogic32u3:conn=usb",
        "-c", "4",
        "-s", "140000000", # 140 MS/s pour 4 canaux
        "-t", "0.1",
        "--config", "channels=0-3",
        "--config", "trigger=3:falling",
        "-o", "spi_capture.raw"
    ]
    
    print("Capturant les données SPI...")
    subprocess.run(cmd, check=True)
    
    # 2. Décoder les données en utilisant le décodeur SPI de sigrok
    # Cette partie dépend de la disponibilité d'un outil CLI de décodage direct
    # ou d'une analyse post-traitement.
    # Ici, nous simulons une lecture des métadonnées de capture.
    
    print("Données capturées dans spi_capture.raw. Utilisez Pulseview pour le décodage visuel.")
    print("Filtrage automatisé : Recherche des trames complètes (CS actif).")

if __name__ == "__main__":
    decode_spi_capture()

← Back to the board