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)
- Demontaż układu lub wypięcie z podstawki.
- Sprawdzenie stanu pinów, czyszczenie alkoholem izopropylowym.
- Umieszczenie w podstawce ZIF; pin 1 do oznaczenia „▲” programatora.
- Oprogramowanie → Select Device : Winbond → W77E58-25.
- Test ID/Blank-Check – szybka weryfikacja poprawnych połączeń.
- READ → bufor → Save as .hex / .bin.
- 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
- Nowy lub skasowany W77E58-25 do podstawki.
- Load File → wcześniej zapisany wsad.
- Blank-Check (jeśli EEPROM).
- PROGRAM/WRITE – oprogramowanie ustawi wymagane sekwencje PGM/PGC.
- VERIFY → Checksum porównawcza.
- (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.
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.