Programlayıcıda EEPROM okuma ve yazma hataları · Sık karşılaşılan sorunlar ve çözümler · Optik alıcı-vericiler ve kablolar · Belgeler · CodingBox
CodingBox Belgeler

Programlayıcıda EEPROM okuma ve yazma hataları

Bir modül tanılanabilmeden veya kodlanabilmeden önce okunması gerekir — ve ardından, çoğu zaman, yazılması. Her iki adım da kendine özgü biçimlerde başarısız olur. Bu sayfa, modülün hiç görülmemesinden, “başarılı olup” sessizce kaybolan bir yazmaya kadar, her başarısızlığı nedenine ve onu düzelten ayara veya yordama eşler.

Modül algılanmıyor

KontrolNeden
Oturma ve yuvamodül, konektöre tam oturmalıdır; kendi form faktörüne uygun adaptörü kullanın — bir QSFP yuvasındaki bir SFP görülmez
Güç açılış süresimodüller, takıldıktan sonra iki telli veri yolu yanıt vermeden önce ~2 saniyeye (SFP) veya daha uzuna (CMIS) ihtiyaç duyar
Modül mevcut sinyaliMOD_ABS / ModPrsL etkinleşmelidir; bükülmüş bir pin veya bu sinyali olmayan bir modül yok gibi görünür
Düşük güç durumu (CMIS)kimlik LowPwr’da okunabilir, ama bazı hostlar/programlayıcılar tam erişim için Ready bekler
Veri yolu hızı100 kHz veya daha düşükten başlayın; bazı modüller 400 kHz’de NACK verir
Ölü modülhiçbir hızda ne DDM ne kimlik — mahkûm etmeden önce ikinci bir kartta doğrulayın

Okumalar FFh, 00h veya anlamsız veri döndürüyor

BelirtiNedenÇözüm
Tümü FFhI²C NACK — o adreste cihaz yok veya sayfa mevcut değiladresi kontrol edin (SFP’de A0h kimliğine karşı A2h tanılaması; QSFP/CMIS’te sayfalamalı tek A0h)
Tümü 00hmodül güçlenmemiş / sıfırlamada tutuluyor; ya da gerçekten boş EEPROMyuvaya giden gücü, modülün takılı olduğunu kontrol edin; boş modüller vardır (kodlanmamış stok)
Doğru uzunluk, yanlış içerikamaçlanandan farklı bir sayfa okunuyorsayfa seçim baytını (127) yazın ve yeniden okuyun; CMIS’te ayrıca banka seçimi (126)
Karışmış / kaymış baytlarveri yolu çok hızlı, uzun kablo, host ile çakışma≤ 100 kHz’e düşürün; kısa kablolar kullanın; canlı bir anahtarda değil, tezgâhta okuyun
A2h okumaları başarısız, A0h sorunsuztanılaması olmayan bir modül veya korumalı bir tanılama bloğuA0h bayt 92 bit 6’yı kontrol edin (DDM uygulanmış); bazı yazma korumalı türler yalnızca A0h’a yanıt verir
Değerler okumalar arasında değişiyorcanlı ölçülen değerler — normal; ya da data not readyDDM baytlarının değişmesi beklenir; bir anlık görüntüye güvenmeden önce veri hazır bitini kontrol edin

Yazma tamamen başarısız oluyor

WRITE FAIL, veri üzerinde NACK veya bayt değişmeden geri okunuyor:

NedenNasıl tanınırNe yapılmalı
Parola gerekli (ürün yazılımı denetleyicisi)parola adresine doğru değer yerleştirilene kadar yazma reddedilir (SFP A2h 0x7B–0x7E, QSFP 123–126, CMIS 122–125)modülün parolasını Korumalı bellek ve parolalar içine girin; bilinen satıcı parolaları veritabanından uygulanır
Donanımsal yazma korumasıparolaya bakılmaksızın salt okunur, güç döngülerinden sağ çıkarWP pini programlayıcı kart tarafından sürülmelidir — yalnızca yazılım bunu yapamaz; bkz. Yazma koruması türleri
Zamanlamaaralıklı başarısızlıklar, kısmen yazılmış sayfalarsaati yavaşlatın (güvenilir EEPROM yazmaları için çoğu zaman ~1 kHz gerekir), baytlar/sayfalar arasında yazma döngüsü süresine (5–10 ms) uyun, bloklar arası gecikmeler ekleyin
Salt okunur bölgebelirli baytlar hiç değişmez (sağlama toplamları, bazı parçalarda eşikler, satıcı alanı)EEPROM, tasarım gereği korumalı bir bölgeye sahiptir; yalnızca modülün izin verdiği alanları yazın
Yanlış durumCMIS modülleri, yazmaları kabul etmeden önce LowPwr veya devre dışı bırakılmış bir veri yolu isteyebilirönce modülü gereken duruma getirin
Sayfa seçilmemişdoğru ofseti yanlış sayfaya yazdınızyazmadan önce bayt 127’yi (ve 126’yı) ayarlayın ve sayfa seçim baytını geri okuyarak doğrulayın

Yazma “başarılı oluyor” ama kalıcı olmuyor

  • Güç döngüsünden sonra eski haline dönüyor — modül yazmaları geçici bellekte saklar ve satıcının kaydetme komutuna ihtiyaç duyar; bu olmadan eski görüntü geri döner. Bir programlama betiğiyle ele alınır (Yazma koruması türü 4).
  • Hemen eski haline dönüyor — mikrodenetleyici, EEPROM’u kendi deposundan yansıtır ve baytlarınızın üzerine yazar; üreticinin algoritmasını gerektirir (tür 5).
  • Bazı baytlar kalıcı oluyor, bazıları olmuyor — kısmen korumalı bir harita; alan alan yazın ve her birini doğrulayın.

Host, başarılı bir yazmadan sonra modülü reddediyor

NedenÇözüm
Sağlama toplamları güncel değil — CC_BASE (bayt 63), CC_EXT (95), CC_DMI (A2h 95), QSFP 191/223yeniden hesaplayın; CodingBox bunu yazma sırasında otomatik yapar (Bellek haritası)
Kimlik artık tutarsız — örn. satıcı değişti ama uyumluluk kodları veya dalga boyu farklı bir donanım ima ediyorkimliği gerçek optiklerle tutarlı tutun (Hız ve oran, Fiziksel uyumsuzluklar)
Yanlış modül türünün yerleşimine yazıldıbir SFP gibi yazılmış bir XFP veya bir QSFP sayfa karışıklığı — yedekten geri yükleyin

Bir yazmadan sonra modül ölü

Kalibrasyon sabitlerinin, eşiklerin veya satıcıya özgü alanın (bazı denetleyicilerin yapılandırmalarını sakladığı yer) üzerine anlamsız veri yazmak bir modülü tuğlaya çevirebilir. Kurtarma yolu: CodingBox’ın yazmadan önce code database’den aldığı yedeği geri yükleyin, ardından yalnızca amaçlanan alanları yazın.

Altın kurallar

  1. Önce okuyun ve kaydedin — her yazmadan önce, veritabanına düşen tam bir okuma yapılmalıdır.
  2. İlk yazma denemesinden önce koruma türünü belirleyin (Yazma koruması türleri).
  3. Yavaş gidin — saat ve baytlar arası zamanlama, “rastgele” başarısızlıkların çoğunu çözer.
  4. Yalnızca amaçladığınızı yazın — bir görüntüyü geri yüklemiyorsanız, sayfaların tamamını değil, alanları.
  5. Bir güç döngüsünden sonra yeniden okuyarak doğrulayın.

CodingBox’ta

CodingBox, modülleri form faktörüne göre doğru adres ve sayfalamayla okur, EEPROM editor içinde ham ve çözümlenmiş baytları gösterir, yazma sırasında sağlama toplamlarını yeniden hesaplar, otomatik olarak bir yedek saklar ve korumalı ile kaydetme komutlu modüller için parola girişini ve programlama betiklerini destekler (Bir modülü yazmak). Kart düzeyinde bir arızadan şüpheleniliyorsa ürünün Sorun giderme sayfasına bakın.

Bu başarısızlıkların arkasındaki veri yolu mekaniği — adresler, sayfa seçimi, yazma döngüsü süresi, saat germe: İki telli arayüz.

Bir modülün neden böyle yanıt verdiği — MCU tarafından emüle edilen bellek, açılış penceresi, saat germe, korumalı bölgeler: Denetleyici ve ürün yazılımı.


Bu materyalde bir yanlışlık veya hata bulursanız ilgili bölümü seçin ve Ctrl+Enter tuşlarına basarak .