🛠 Horodatage industriel : PTP IEEE 1588 sur le PHY Ethernet du CM4

Raspberry Pi Compute Module 4 (CM4, 2020) — Fiche de carte · avance · Schéma : IMG-compute-module-4-avance-1-ptp-1588-gbe-cm4.svg — deux CM4 sur IO Board reliés par un câble Ethernet droit ; chaque module porte la mention « PHY GbE compatible IEEE 1588 » ; un graphique d'offset temporel en µs s'affiche sur un écran de contrôle.

Objetivos

Una particularidad única en la gama Pi: el CM4 incorpora un PHY Ethernet Gigabit compatible con IEEE 1588 (PTP) en el módulo — pensado para la sincronización de tiempo real industrial (las tarjetas insignia utilizan PHYs discretos sin esta característica). Este tutorial configura un dominio PTP de dos nodos con linuxptp: un grandmaster, un esclavo, y mide la desviación residual en microsegundos.

Material

Código completo

# --- Nœud A : grandmaster ---
sudo tee /etc/linuxptp/master.conf >/dev/null <<'EOF'
[global]
slaveOnly 0
networkTransportAddress eth0:500
summaryRatio -1
syncInterval 0
EOF
sudo ptp4l -f /etc/linuxptp/master.conf -m &

# --- Nœud B : esclave ---
sudo tee /etc/linuxptp/slave.conf >/dev/null <<'EOF'
[global]
slaveOnly 1
networkTransportAddress eth0:500
EOF
sudo ptp4l -f /etc/linuxptp/slave.conf -m &
# Ajuste CLOCK_REALTIME depuis la hardware clock de eth0
sudo phc2sys -s eth0 -c CLOCK_REALTIME -O 0 -m &

# --- Sur l'esclave : interroger l'état de synchronisation ---
sudo pmc -u -b eth0 'GET TIME_STATUS_NP' | grep -E 'master_offset|gmIdentity'

Verificación esperada

En la salida de ptp4l -m en el lado del esclavo, las líneas master offset convergen hacia valores del orden de la microsegunda en topología directa; pmc 'GET TIME_STATUS_NP' muestra un master_offset estable y la identidad del grandmaster; phc2sys ya no informa de saltos. Los dos comandos date en ambos extremos coinciden con una precisión de milisegundos.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales