EEPROM-lees- en schrijffouten op de programmer · Veelvoorkomende problemen en oplossingen · Optische transceivers en kabels · Documentatie · CodingBox
CodingBox Documentatie

EEPROM-lees- en schrijffouten op de programmer

Voordat u een module kunt diagnosticeren of coderen, moet deze worden gelezen en vaak ook worden geschreven. Beide stappen falen op kenmerkende manieren. Deze pagina koppelt elke fout aan de oorzaak en aan de instelling of werkwijze die deze verhelpt, van een module die helemaal niet wordt gezien tot een schrijfactie die ‘slaagt’ en stil verdwijnt.

Module niet gedetecteerd

ControleWaarom
Plaatsing en cradlede module moet volledig in de connector steken; gebruik de adapter voor de vormfactor, want een SFP in een QSFP-cradle wordt niet gezien
Inschakeltijdmodules hebben na het plaatsen tot ~2 s (SFP) of langer (CMIS) nodig voordat de two-wire-bus antwoordt
Signaal voor aanwezige moduleMOD_ABS / ModPrsL moet actief worden; een gebogen pin of module zonder dit signaal lijkt afwezig
Low-power-toestand (CMIS)identiteit is leesbaar in LowPwr, maar sommige hosts/programmers verwachten Ready voor volledige toegang
Bussnelheidbegin met 100 kHz of lager; sommige modules geven NACK bij 400 kHz
Defecte modulegeen DDM, geen identiteit bij enige snelheid; bevestig op een tweede board voordat u hem afschrijft

Uitlezingen geven FFh, 00h of rommel terug

SymptoomOorzaakHerstel
Alle FFhI²C NACK: geen apparaat op dat adres, of pagina ontbreektcontroleer adres (A0h-identiteit versus A2h-diagnostiek op SFP; enkel A0h met paging op QSFP/CMIS)
Alle 00hmodule zonder voeding / in reset gehouden, of werkelijk lege EEPROMcontroleer voeding van de cradle en module-present; lege modules bestaan als ongecodeerde voorraad
Juiste lengte, verkeerde inhoudeen andere pagina dan bedoeld lezenschrijf de pagina-selectbyte (127) en lees opnieuw; kies bij CMIS ook bank (126)
Verminkte / verschoven bytesbus te snel, lange kabel, conflict met hostga naar ≤ 100 kHz; gebruik korte leidingen; lees op de werkbank, niet in een actieve switch
A2h-lezen faalt, A0h is goedmodule zonder diagnostiek, of beveiligd diagnostiekblokcontroleer A0h byte 92 bit 6 (DDM implemented); sommige schrijfbeveiligde typen antwoorden alleen op A0h
Waarden veranderen tussen uitlezingenactuele monitors, normaal, of data not readyDDM-bytes horen te veranderen; controleer de data-ready-bit vóór u een momentopname vertrouwt

Schrijven faalt onmiddellijk

WRITE FAIL, NACK bij gegevens of een onveranderde byte na teruglezen:

OorzaakHerkenningWat te doen
Wachtwoord vereist (firmwarecontroller)schrijven wordt geweigerd tot de juiste waarde op het wachtwoordadres staat (SFP A2h 0x7B–0x7E, QSFP 123–126, CMIS 122–125)voer het wachtwoord van de module in bij Beveiligd geheugen en wachtwoorden; bekende fabrikantwachtwoorden worden uit de database toegepast
Hardwarematige schrijfbeveiligingalleen lezen ongeacht wachtwoord, ook na power-cyclesde WP-pin moet door het programmerboard worden aangestuurd; software alleen kan dit niet; zie Schrijfbeveiligingstypen
Timingonderbroken fouten, gedeeltelijk geschreven pagina'sverlaag de klok (~1 kHz is vaak nodig voor betrouwbare EEPROM-schrijfacties), respecteer schrijftijd (5–10 ms) tussen bytes/pagina's, voeg vertraging tussen blokken toe
Alleen-lezengebiedbepaalde bytes veranderen nooit (checksums, drempels op sommige onderdelen, fabrikantgebied)de EEPROM heeft van ontwerp een beveiligd gebied; schrijf alleen velden die de module toestaat
Verkeerde toestandCMIS-modules kunnen LowPwr of een gedeactiveerd datapad vereisen vóór ze schrijven accepterenzet de module eerst in de vereiste toestand
Pagina niet geselecteerdjuiste offset op verkeerde pagina geschrevenzet byte 127 (en 126) vóór het schrijven en controleer door de pagina-selectbyte terug te lezen

Schrijven ‘slaagt’ maar blijft niet behouden

  • Keert terug na power-cycle: de module bewaart schrijfacties tijdelijk en heeft het save command van de fabrikant nodig; zonder dat komt het oude image terug. Dit behandelt een programmeerscript (Schrijfbeveiligingstype 4).
  • Keert onmiddellijk terug: de microcontroller spiegelt de EEPROM vanuit zijn eigen opslag en overschrijft uw bytes; dit vereist het algoritme van de fabrikant (type 5).
  • Sommige bytes blijven, andere niet: een gedeeltelijk beveiligde kaart; schrijf veld voor veld en verifieer elk veld.

Host weigert de module na een geslaagde schrijfactie

OorzaakHerstel
Checksums verouderd: CC_BASE (byte 63), CC_EXT (95), CC_DMI (A2h 95), QSFP 191/223bereken opnieuw; CodingBox doet dit automatisch bij schrijven (Geheugenkaart)
Identiteit nu inconsistent, bijv. fabrikant gewijzigd maar conformiteitscodes of golflengte wijzen op andere hardwarehoud de identiteit consistent met de werkelijke optiek (Snelheid en rate, Fysieke afwijkingen)
Geschreven naar de layout van het verkeerde moduletypeeen XFP als SFP geschreven of verwarring over QSFP-pagina's: herstel uit back-up

Module defect na een schrijfactie

Rommel schrijven over kalibratieconstanten, drempels of het fabrikant-specifieke gebied (waar sommige controllers hun configuratie bewaren) kan een module onbruikbaar maken. Herstelroute: zet de back-up terug die CodingBox vóór de schrijfactie in de Code database heeft opgeslagen, en schrijf daarna alleen de bedoelde velden.

Gouden regels

  1. Lees en sla eerst op: elke schrijfactie hoort voorafgegaan te worden door een volledige uitlezing die in de database terechtkomt.
  2. Identificeer het beveiligingstype vóór de eerste schrijfpoging (Schrijfbeveiligingstypen).
  3. Werk langzaam: klok en timing tussen bytes lossen de meeste ‘willekeurige’ fouten op.
  4. Schrijf alleen wat u bedoelt: velden, geen hele pagina's, behalve bij herstel van een image.
  5. Verifieer door na een power-cycle opnieuw te lezen.

In CodingBox

CodingBox leest modules met het juiste adres en de juiste paging per vormfactor, toont ruwe en gedecodeerde bytes in de EEPROM editor, berekent checksums opnieuw bij schrijven, slaat automatisch een back-up op en ondersteunt wachtwoordinvoer en programmeerscripts voor beveiligde modules en modules met save command (Een module schrijven). Verdenkt u een storing op boardniveau, zie dan Troubleshooting.

De busmechanica achter deze fouten, adressen, paginaselectie, schrijftijd en clock stretching: Tweedraadsinterface.

Waarom een module antwoordt zoals hij doet: door MCU geëmuleerd geheugen, bootvenster, clock stretching en beveiligde gebieden: Controller en firmware.


Vindt u een onjuistheid of fout in dit materiaal? Selecteer het betreffende fragment en druk op Ctrl+Enter om .