jak zaprogramować MX25U12873F programatorem CH347 V1. W jaki sposób usunąć ochronę przed zapisem, którą zgłasza asprogrammer?
Aby zaprogramować MX25U12873F programatorem CH347 V1 należy:
Ochronę zgłaszaną przez ASProgrammer zdejmujesz sekwencją:
WREN (06h) → WRSR (01h) z bajtami 0x00 0x00
lub w menu „Unprotect / Disable WP”.
Charakterystyka układu
• MX25U12873F – 128 Mbit SPI-NOR, napięcie pracy 1,65–2,0 V, tryb Quad, rejestry:
‑ SR1: BP3-BP0 (blokowa ochrona), SRWD/SRP0 (ochrona SR1), QE (Quad-Enable)
‑ CR1: SRP1 (współpracuje z SRP0)
Połączenie sprzętowe z CH347 V1
• CH347 pinout: CS#, CLK, MOSI(DI), MISO(DO), VCC-1 V8, GND.
• /WP#, /HOLD# (lub /RESET#) → VCC-1 V8 przez 4k7–10k.
• Częstotliwość startowa 1 MHz, tryb SPI 0.
• Dodatkowy kondensator 10 µF na VCC układu.
Odczyt i diagnoza ochrony
Read ID → C2 28 18 (Macronix 128 Mbit)
Read SR1 → np. 0x3C (BP3-BP0=1111 – cała kość chroniona)
Read CR1 → np. 0x20 (SRP1=1 – SR1 chroniony przed zapisem)
Jeśli SRP1=1 nie pozwala zmienić SR1 – najpierw trzeba wyzerować CR1.
Sekwencja odblokowania (manualna)
06h ; WREN – zezwolenie na zapis
31h 00h ; WRCR1 – SRP1=0
06h
01h 00h 00h ; WRSR – SR1=0x00, SR2/CR1=0x00 (BPx=0, SRP0=0)
W ASProgrammer: IC → Status → Write → wpisać odpowiednie wartości lub nacisnąć „Unprotect”.
Kasowanie i programowanie
• Chip Erase (60h/ C7h) – cała kość.
• Program (02h/32h/38h zależnie od Single/Dual/Quad).
• Verify – porównanie z plikiem .bin.
Typowe błędy
• write protect error – /WP# w stanie niskim, SRP1/SRP0=1.
• „Device busy” – brak WREN przed WRSR lub zbyt szybkie taktowanie.
• „ID mismatch” – złe napięcie (3,3 V) lub odwrócone MOSI/MISO.
Tabela znaczenia bitów w SR1/CR1:
Bit | Nazwa | Znaczenie | Odblokowanie |
---|---|---|---|
SR1[7] | SRWD/SRP0 | Ochrona SR1, współdziała z /WP | ustawić 0, /WP=1 |
SR1[5:2] | BP3-BP0 | Zakres blokady sektorów | wszystkie 0 |
CR1[5] | SRP1 | Rozszerzona ochrona SR1 | ustawić 0 |
SR1[6] | QE | Quad Enable | pozostawić bez zmian jeśli FW używa Quad |
Analogicznie do większości SPI-NOR (Winbond, GD, ISSI) procedura jest identyczna – przydatne przy zamiennikach.
Prawidłowe programowanie MX25U12873F sprowadza się do: właściwego napięcia 1 V8, podciągnięcia /WP & /HOLD, wyzerowania bitów SRP1/SRP0 i BP3-BP0 (funkcja „Unprotect” lub ręczna sekwencja WRSR/WRCR1), a następnie standardowego Erase-Program-Verify. Zaktualizowane wersje CH347-Tool i ASProgrammer znacząco ułatwiają cały proces, a większość problemów wynika z błędów połączeń lub niewłaściwego poziomu logicznego 1,8 V.