Winbond W77E58-25 – kopiowanie i odczyt mikrokontrolera, programatory, blokada LB1/LB2

Pytanie

jak skopiowac i odczytac
Winbond W77E58-25

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

  • Do odczytu i skopiowania mikrokontrolera Winbond W77E58-25 użyj uniwersalnego programatora obsługującego tę rodzinę (np. Wellon VP-996, Elnec BeeProg2/3, Xeltek SuperPro, TL866 II Plus z odpowiednim adapterem) lub trybu ISP przewidzianego przez producenta.
  • Podłącz układ do programatora (lub linii ISP), wybierz w oprogramowaniu model W77E58-25, wykonaj READ, zapisz plik .hex/ .bin, a następnie zaprogramuj nowy egzemplarz (WRITE + VERIFY).
  • Jeśli aktywne są bity zabezpieczające (Security/Lock Bits), standardowy odczyt nie powiedzie się i potrzebne będą zaawansowane metody lub usługa specjalistyczna.

Kluczowe punkty
• Kompatybilny programator + adapter DIP40/PLCC44.
• Prawidłowe napięcie (5 V) i orientacja układu.
• Możliwość blokady odczytu przez LB1/LB2.
• Opcja ISP jeśli płyta udostępnia linie RST, PSEN, RxD, TxD.

Szczegółowa analiza problemu

1. Charakterystyka układu

  • Rdzeń: kompatybilny z 8051, praca do 25 MHz („-25”).
  • Pamięć: 32 KB Flash (EPROM typu OTP/EEPROM), 256 B RAM on-chip + 1 KB SRAM MOVX.
  • Tryby programowania:
    1) Równoległy (parallel) – wymagany przez większość zewnętrznych programatorów ZIF.
    2) ISP (In-System Programming) – 3-sygnałowy protokół poprzez RxD/TxD + sterowanie RST/PSEN (opis w datasheet, sekcja 12).
  • Zabezpieczenia: bity LB1, LB2 (Code Protect) w rejestrze F2/F3. LB1 blokuje odczyt, LB2 dodatkowo uniemożliwia kasowanie bez całkowitego skasowania układu wysokim VPP.

2. Sprzęt i oprogramowanie

Klasa Przykłady Uwagi
Programatory ZIF Wellon VP-990/996, Elnec BeeProg2/3, Xeltek SuperPro 6100 Pełny równoległy dostęp, automatyczne VPP = 12 V
Budżetowe TL866 II Plus, T56 Wymagany adapter PLCC44↔DIP40 (o ile układ nie jest DIP)
ISP Nuvoton/Winbond ICP-Programmer, Open-Source 8051-ISP dongle Wymaga wyprowadzenia pinów na płytce

Aktualne oprogramowanie producentów (Wellon V9.x, Elnec PG4UW v3.96, TL866 NeoProg v11.xxx) ma wbudowany algorytm do W77E58-25; przed operacją zaktualizuj firmware programatora.

3. Procedura odczytu (tryb równoległy)

  1. Demontaż układu lub wypięcie z podstawki.
  2. Sprawdzenie stanu pinów, czyszczenie alkoholem izopropylowym.
  3. Umieszczenie w podstawce ZIF; pin 1 do oznaczenia „▲” programatora.
  4. Oprogramowanie → Select Device : Winbond → W77E58-25.
  5. Test ID/Blank-Check – szybka weryfikacja poprawnych połączeń.
  6. READ → bufor → Save as .hex / .bin.
  7. VERIFY (zawartość-układ vs bufor) – eliminuje błędy styków.

Jeżeli pojawi się komunikat „Protected” lub odczyt 0xFF/0x00 – sprawdź LB1/LB2:

  • Odczyt zablokowany: brak możliwości READ; kasowanie lub programowanie nadal możliwe.
  • Deprotect wymaga kasowania (Erase) przy VPP≈12 V – powoduje jednak usunięcie kodu!

4. Programowanie nowego układu

  1. Nowy lub skasowany W77E58-25 do podstawki.
  2. Load File → wcześniej zapisany wsad.
  3. Blank-Check (jeśli EEPROM).
  4. PROGRAM/WRITE – oprogramowanie ustawi wymagane sekwencje PGM/PGC.
  5. VERIFY → Checksum porównawcza.
  6. (Opc.) Ustawienie lock-bitów LB1/LB2, jeśli wymagana ochrona.

5. ISP – alternatywa bez wylutowywania

W77E58 umożliwia ISP przy 5 V bez wysokiego VPP. Wymagane sygnały: RST, PSEN, TxD, RxD, VPP(5 V). Sekwencja:

  • Przytrzymaj PSEN*=0 podczas resetu → układ wchodzi w boot-loader.
  • Komenda "50H" inicjuje tryb, kolejne pakiety Intel-HEX.
    Dokładną ramkę opisuje Application Note AN0430 (Winbond). Popularne narzędzia: Nuvoton ICP-Tool, Flash-Magic-8051-ISP (open-source).

Praktyka: jeśli płyta ma złącze serwisowe (2×5 pin), skorzystaj z ISP – brak ryzyka uszkodzenia pól lutowniczych.

6. Diagnostyka błędów

  • „Pin contact error” – wyczyść nóżki, zmniejsz prędkość programatora.
  • „VPP low” – sprawdź zasilacz programatora, ustaw VPP=12 V (równoległy) / 5 V (ISP).
  • „Device not blank” przy nowym układzie – wykonaj ERASE.
  • „Protected” – aktywne LB1/LB2, standardowy odczyt niemożliwy.

Aktualne informacje i trendy

  • W77E58 został wycofany przez Winbond, ale ten sam rdzeń łącznie z ISP utrzymuje Nuvoton (seria N79E). Programatory aktualizują listy o N79E058/ E058A – algorytm równoległy jest zgodny.
  • Segment retro-embedded rośnie; dostępne są usługi „legacy MCU cloning”, lecz usunięcie lock-bitów wymaga decappingu/laser FIB (koszt > 2000 USD).
  • Na rynku pojawiają się adaptery USB-8051-ISP oparte o CH340E + STM32 jako bridge – tańsze do serwisu, nie wspierają jednak odczytu zablokowanego kodu.

Wspierające wyjaśnienia i detale

  • VPP (Programming Voltage) w trybie równoległym: 12 V ± 0,5 V na pinie EA/VPP.
  • Timing: tACC≈150 ns dla ‑25 (25 MHz); wybór w programatorze wpływa na długość cykli PGM.
  • Lock-bit LB1 znajduje się w adresie 0x2FFF w wewnętrznym rejestrze kontroli; LB2 przy 0x2FFE – ustawiane bitem 0.
  • Adapter PLCC44↔DIP40 – sygnały EA i PSEN przenoszone 1:1, brak dodatkowych rezystorów „pull”.

Aspekty etyczne i prawne

  • Firmware może być objęty prawem autorskim; kopiowanie bez zgody właściciela stanowi naruszenie IP.
  • Omijanie zabezpieczeń (lock-bitów) bywa kwalifikowane jako reverse-engineering – dozwolone jedynie w ściśle określonych przypadkach (np. serwis własnego urządzenia, analizator bezpieczeństwa, art. 75 Dyrektywy 2009/24/WE).
  • Bezpieczeństwo: wysoki VPP może uszkodzić inne elementy PCB, dlatego ISP preferowane w serwisie.

Praktyczne wskazówki

  • Zawsze wykonuj kopię oryginalnego pliku na dwóch nośnikach + checksum SHA-256.
  • Uziemienie ESD: mata + opaska; unikasz latch-up’u rdzenia 8051.
  • Przy ISP odłącz wszelkie linie peryferyjne (np. RS-232 transceiver) – ryzyko przeciągania poziomów.
  • Jeśli urządzenie ma kilka MCU, odczytuj pojedynczo – programatory automatycznie przydzielają VPP tylko do wybranego gniazda.

Ewentualne zastrzeżenia lub uwagi dodatkowe

  • Starsze programatory (Batronix, LabTool-48) obsługują W77E58, ale nie LB2; odczyt może się udać, lecz zapis zablokuje układ.
  • Kości z lat 90. mogą mieć wyczerpane komórki EEPROM – sprawdź verify po kilku gorących/ciepłych cyklach (temperature cycling).
  • Płyty wielowarstwowe: wylutowanie PLCC44 gorącym powietrzem wymaga pre-heatera, by nie wyrywać padów.

Sugestie dalszych badań

  • Analiza sposobu implementacji boot-loadera ISP w rodzinie N79E; pozwala portować projekt na nowszy pin-to-pin zamiennik bez równoległego programatora.
  • Badania nad pasywnym sniffingiem magistrali MOVC (odczyt Flash przez zewnętrzny RAM podczas run-time).
  • Studium metod „voltage/clock glitching” na W77E58 do chwilowego wyłączenia lock-bitów; literatura: Skorobogatov A., "Semi-invasive attacks on embedded non-volatile memory."
  • Źródła: datasheet Winbond W77E58-25 (Rev. A, 2010), AN0430 "In-System Programming Procedure", listy kompatybilności Elnec v3.96, Wellon v9.92.

Krótkie podsumowanie

Odczyt i klonowanie W77E58-25 jest prostą operacją z użyciem dowolnego nowoczesnego programatora ZIF lub interfejsu ISP, pod warunkiem braku aktywnych bitów zabezpieczających. Kluczowe jest prawidłowe napięcie programujące, właściwy wybór algorytmu i dbałość o ESD. W przypadku ustawionych lock-bitów standardowy odczyt nie będzie możliwy; potrzebne są kosztowne techniki laboratoryjne. Zawsze przestrzegaj przepisów dotyczących praw autorskich oraz procedur bezpieczeństwa przy pracy z układami półprzewodnikowymi.

Oceń odpowiedź:
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.