Diagnostyka ZCD i synchronizacji sieci – firmware triaka

Strona opisuje pomiary i logi modułu ZCD (Zero-Cross Detection) oraz synchronizacji z siecią 50/60 Hz. Dotyczy wersji FW v1.9.3-b.

/diagnostyka-zcd-sync Wejście: ZCD→EXTI Częstotliwość: 50/60 Hz Aktualizacja: 2025-08-24

Fragment logów ZCD

00:00.010  ZCD: init rc=10k/6.8nF; schmitt=on; pull=off
00:00.030  ZCD: sync start; grid=50.00Hz; period=20.00ms
00:05.002  ZCD: tick Δt=20.01ms; jitter_pk=±220µs; misses=0
00:05.118  WARN: spike@150kHz masked (debounce 180µs)
00:06.004  FAULT: zc_glitch count=4/1000 halfcycles → jitter_rms=1.9°
00:06.110  FIX: raise debounce to 220µs; rc=15k/6.8nF
00:08.000  ZCD: jitter_rms=0.7°; misses=0; false_zc=0

Definicje:

Komendy serwisowe

$ zcd get
grid=50.00; period=20.00ms; debounce=180us; rc=10k/6.8nF; schmitt=on
$ zcd stats
halfcycles=10k; misses=0; false_zc=4; jitter_rms=1.9°; jitter_pk=±220us
$ zcd set debounce 220    OK
$ zcd set rc 15k 6.8n     OK
$ zcd stats
halfcycles=12k; misses=0; false_zc=0; jitter_rms=0.7°

Procedura diagnostyczna

  1. Sprawdź grid, period i jitter_rms po starcie.
  2. Jeśli jitter_rms > 1.5° lub false_zc > 0/1000: zwiększ debounce o 40–80 µs.
  3. Jeśli nadal występują glitche: zwiększ RC wejścia (np. 10k→15k; 4.7nF→6.8–10nF).
  4. Dla silnych zakłóceń z obciążenia: dodaj ferryt, MOV 275 VAC, snubber przy triaku.
  5. Zweryfikuj po 1000–5000 półokresach: cel jitter_rms ≤ 1.0°, false_zc=0, misses=0.

Progi i alarmy

Parametr Info Próg ostrzeżenia Próg błędu Akcja FW
jitter_rms Stabilność fazy > 1.5° > 4.0° Ostrzeżenie / FAULT; auto↑debounce
false_zc / 1000 Fałszywe detekcje > 1 > 5 Włączenie filtra RC soft, ogranicz ISR
misses Utracone półokresy > 0 > 2 Resync; podniesienie priorytetu EXTI

Filtry i konfiguracja

Kontrola zgodności 50/60 Hz

$ zcd mode auto            OK
$ zcd calib 1000           OK  ; autokalibracja okresu
$ zcd get
grid=60.00; period=16.67ms; jitter_rms=0.9°

Tryb auto dopasowuje period i okna czasowe do 50/60 Hz bez rekompilacji.

Najczęstsze przyczyny błędów

Checklist