Kesalahan baca dan tulis EEPROM pada programmer · Masalah umum dan solusi · Transceiver optik dan kabel · Dokumentasi · CodingBox
CodingBox Dokumentasi

Kesalahan baca dan tulis EEPROM pada programmer

Sebelum sebuah modul dapat didiagnosis atau dikodekan, modul itu harus dibaca terlebih dahulu — dan kemudian, sering kali, ditulis. Kedua langkah ini gagal dengan cara yang khas. Halaman ini memetakan setiap kegagalan ke penyebabnya dan ke pengaturan atau prosedur yang memperbaikinya, mulai dari modul yang sama sekali tidak terlihat hingga penulisan yang “berhasil” lalu diam-diam menghilang.

Modul tidak terdeteksi

PemeriksaanAlasan
Posisi dan cradlemodul harus masuk sepenuhnya ke dalam konektor; gunakan adaptor sesuai faktor bentuknya — SFP di dalam cradle QSFP tidak akan terlihat
Waktu power-upmodul membutuhkan hingga ~2 detik (SFP) atau lebih lama (CMIS) setelah dipasang sebelum bus dua kawat menjawab
Sinyal module presentMOD_ABS / ModPrsL harus ter-assert; pin yang bengkok atau modul tanpa sinyal ini akan terlihat seperti tidak ada
State daya rendah (CMIS)data identifikasi dapat dibaca dalam LowPwr, tetapi sebagian host/programmer mengharapkan Ready untuk akses penuh
Kecepatan busmulai pada 100 kHz atau lebih rendah; sebagian modul mengirim NACK pada 400 kHz
Modul matitidak ada DDM, tidak ada data identifikasi pada kecepatan berapa pun — konfirmasikan pada papan kedua sebelum memvonisnya mati

Pembacaan mengembalikan FFh, 00h, atau data acak

GejalaPenyebabPerbaikan
Semuanya FFhI²C NACK — tidak ada perangkat di alamat tersebut, atau halaman tidak adaperiksa alamatnya (identitas A0h vs diagnostik A2h pada SFP; satu A0h dengan paging pada QSFP/CMIS)
Semuanya 00hmodul tidak mendapat daya / tertahan dalam reset; atau EEPROM memang benar-benar kosongperiksa daya ke cradle, keberadaan modul; modul kosong memang ada (stok yang belum dikodekan)
Panjang benar, konten salahmembaca halaman yang berbeda dari yang dimaksudtulis byte page-select (127) dan baca ulang; pada CMIS juga bank select (126)
Byte acak / bergeserbus terlalu cepat, kabel panjang, kontensi dengan hostturunkan ke ≤ 100 kHz; gunakan kabel pendek; baca di meja kerja, bukan di switch yang sedang live
Pembacaan A2h gagal, A0h baik-baik sajamodul tanpa diagnostik, atau blok diagnostik yang dilindungiperiksa A0h byte 92 bit 6 (DDM diimplementasikan); sebagian jenis dilindungi tulis hanya menjawab A0h
Nilai berubah antar-pembacaanmonitor live — normal; atau data not readybyte DDM memang seharusnya berubah; periksa bit data-ready sebelum memercayai satu snapshot

Penulisan gagal total

WRITE FAIL, NACK pada data, atau byte yang terbaca kembali tidak berubah:

PenyebabCara mengenalinyaYang harus dilakukan
Kata sandi diperlukan (firmware kontroler)penulisan ditolak sampai nilai yang benar ditempatkan di alamat kata sandi (SFP A2h 0x7B–0x7E, QSFP 123–126, CMIS 122–125)masukkan kata sandi modul di Memori yang dilindungi tulis & kata sandi; kata sandi vendor yang sudah diketahui diterapkan dari basis data
Write protect hardwareread-only apa pun kata sandinya, bertahan melewati power cyclepin WP harus digerakkan oleh papan programmer — software saja tidak bisa; lihat Jenis write-protection
Timingkegagalan intermiten, halaman tertulis sebagianperlambat clock (~1 kHz sering dibutuhkan untuk penulisan EEPROM yang andal), patuhi write-cycle time (5–10 ms) antar byte/halaman, tambahkan delay antar-blok
Wilayah read-onlybyte tertentu tidak pernah berubah (checksum, ambang pada sebagian part, area vendor)EEPROM memiliki wilayah yang dilindungi secara desain; tulis hanya bidang yang diizinkan modul
State salahmodul CMIS mungkin membutuhkan LowPwr, atau data-path yang dinonaktifkan, sebelum menerima penulisantempatkan modul pada state yang dibutuhkan terlebih dahulu
Halaman belum dipilihAnda menulis offset yang benar pada halaman yang salahset byte 127 (dan 126) sebelum penulisan dan verifikasi dengan membaca kembali byte page-select

Penulisan “berhasil” tetapi tidak melekat

  • Kembali seperti semula setelah power cycle — modul menyimpan penulisan di memori sementara dan membutuhkan save command milik vendor; tanpa itu, image lama akan kembali. Ditangani oleh sebuah programming script (Write-protection type 4).
  • Kembali seperti semula seketika — mikrokontroler mencerminkan EEPROM dari penyimpanannya sendiri dan menimpa kembali byte Anda; membutuhkan algoritme milik pabrikan (type 5).
  • Sebagian byte melekat, sebagian tidak — peta yang dilindungi sebagian; tulis bidang demi bidang dan verifikasi masing-masing.

Host menolak modul setelah penulisan berhasil

PenyebabPerbaikan
Checksum sudah usang — CC_BASE (byte 63), CC_EXT (95), CC_DMI (A2h 95), QSFP 191/223hitung ulang; CodingBox melakukan ini secara otomatis saat penulisan (Peta memori)
Data identifikasi kini tidak konsisten — misalnya vendor berubah tetapi kode kepatuhan atau panjang gelombang menyiratkan hardware yang berbedajaga data identifikasi tetap konsisten dengan optik yang sebenarnya (Kecepatan & rate, Ketidakcocokan fisik)
Menulis ke layout jenis modul yang salahXFP yang ditulis seolah SFP, atau kebingungan halaman QSFP — pulihkan dari backup

Modul mati setelah penulisan

Menulis data acak menimpa konstanta kalibrasi, ambang, atau area khusus vendor (tempat sebagian kontroler menyimpan konfigurasinya) dapat mem-brick sebuah modul. Jalur pemulihan: pulihkan backup yang diambil CodingBox sebelum penulisan dari code database, lalu tulis hanya bidang yang dimaksud.

Aturan emas

  1. Baca dan simpan terlebih dahulu — setiap penulisan sebaiknya didahului oleh pembacaan penuh yang berakhir di basis data.
  2. Identifikasi jenis proteksinya sebelum percobaan penulisan pertama (Jenis write-protection).
  3. Pelan-pelan saja — clock dan timing antar-byte menyelesaikan sebagian besar kegagalan yang tampak “acak”.
  4. Tulis hanya yang Anda maksud — bidang demi bidang, bukan seluruh halaman, kecuali saat memulihkan sebuah image.
  5. Verifikasi dengan membaca ulang setelah power cycle.

Di CodingBox

CodingBox membaca modul dengan alamat dan paging yang benar sesuai faktor bentuknya, menampilkan byte mentah dan yang sudah didekode di EEPROM editor, menghitung ulang checksum saat penulisan, menyimpan backup secara otomatis, dan mendukung entri kata sandi serta programming script untuk modul yang dilindungi dan yang membutuhkan save command (Menulis modul). Jika dicurigai ada gangguan pada level papan, lihat Pemecahan Masalah produk.

Mekanika bus di balik kegagalan-kegagalan ini — alamat, page select, write cycle time, clock stretching: Antarmuka dua kawat.

Mengapa sebuah modul merespons dengan caranya sendiri — memori yang diemulasikan MCU, boot window, clock stretching, wilayah yang dilindungi: Kontroler & firmware.


Jika Anda menemukan ketidakakuratan atau kesalahan dalam artikel ini, pilih bagian teks yang bersangkutan lalu tekan Ctrl+Enter untuk .