odczyt eeprom 35080 za pomocą programatora 95080 przy zmianie pinout
Tak, M35080 można odczytać programatorem ustawionym jako 95080/M95080, ale tylko po wykonaniu adaptera zmieniającego pinout. Protokół odczytu jest zgodny z SPI, a komenda odczytu pamięci to 03h, więc do samego odczytu zwykle wystarcza poprawne podłączenie linii: CS/S, CLK/C, MOSI/D, MISO/Q, VCC, GND. M35080 ma jednak inny rozkład pinów niż typowa 95080, dlatego nie wolno wkładać jej bezpośrednio do podstawki 95080.
Najważniejsze połączenia:
| M35080 pin | Funkcja M35080 | Pin podstawki/programatora 95080 | Funkcja 95080 |
|---|---|---|---|
| 1 | VSS / GND | 4 | VSS / GND |
| 2 | S / CS | 1 | S / CS |
| 3 | W / WP | 3 | W / WP |
| 4 | Q / MISO / DO | 2 | Q / MISO / DO |
| 5 | NC | nie podłączać | — |
| 6 | C / CLK | 6 | C / CLK |
| 7 | D / MOSI / DI | 5 | D / MOSI / DI |
| 8 | VCC | 8 | VCC |
Pinout M35080 według noty ST to: 1 VSS, 2 S, 3 W, 4 Q, 5 NC, 6 C, 7 D, 8 VCC; dla typowej M95080: 1 S, 2 Q, 3 W, 4 VSS, 5 D, 6 C, 7 HOLD, 8 VCC. (agelectronica.lat)
M35080 i 95080 są układami SPI EEPROM o pojemności 8 kbit, ale mają różny fizyczny rozkład wyprowadzeń. Dla M35080 zasilanie dodatnie jest na pinie 8, tak jak w wielu EEPROM-ach SPI, ale masa jest na pinie 1, a nie na pinie 4. W standardowej 95080 pin 4 to masa, pin 1 to CS, pin 2 to Q/MISO, pin 5 to D/MOSI. (agelectronica.lat)
Jeżeli włożysz M35080 bez adaptera do podstawki 95080:
HOLD profilu 95080,Dlatego potrzebny jest prosty adapter SO8–SO8 albo przewody typu kynar wykonane zgodnie z tabelą krosowania.
Widok od góry, z wycięciem/kropką przy pinie 1:
M35080
.----U----.
VSS 1| |8 VCC
/S 2| |7 D / MOSI
/W 3| |6 C / CLK
Q 4| |5 NC
'---------'
Typowa 95080/M95080 SPI:
95080 / M95080
.----U----.
/S 1| |8 VCC
Q 2| |7 /HOLD
/W 3| |6 C / CLK
VSS 4| |5 D / MOSI
'---------'
Najprościej wykonać adapter z dwóch podstawek SO8/DIP8 albo przewodami:
M35080 pin 1 -> 95080 pin 4
M35080 pin 2 -> 95080 pin 1
M35080 pin 3 -> 95080 pin 3
M35080 pin 4 -> 95080 pin 2
M35080 pin 5 -> NC
M35080 pin 6 -> 95080 pin 6
M35080 pin 7 -> 95080 pin 5
M35080 pin 8 -> 95080 pin 8
Pin 7 podstawki 95080, czyli /HOLD, nie ma odpowiednika w M35080 i pozostaje niepodłączony po stronie M35080.
Dla samego odczytu pin W nie jest krytyczny, ale nie powinien wisieć w powietrzu. Najlepiej:
W do VCC rezystorem np. 4,7–10 kΩ, jeśli programator nie steruje poprawnie tym pinem.W nocie M35080 podano, że pin W pozostawiony niepodłączony jest interpretowany jako stan niski, co ma znaczenie głównie dla ochrony zapisu, ale w praktyce wejść cyfrowych nie należy zostawiać pływających. (agelectronica.lat)
M35080 jest układem specyficznym, często spotykanym w elektronice samochodowej, zwłaszcza w zespołach wskaźników. Z punktu widzenia programatora wygląda częściowo jak zwykły SPI EEPROM, ale ma specjalny obszar inkrementacyjny. Nota ST opisuje pamięć jako 1024 × 8 bitów, zgodną z SPI, z zasilaniem 4,5–5,5 V i zegarem do 5 MHz. (agelectronica.lat)
W praktyce warsztatowej obecnie zaleca się używanie programatorów, które mają bezpośrednią obsługę rodziny M35080 / M35080V6 / 080D0WQ / 160D0WQ, szczególnie jeśli oprócz odczytu planowany jest zapis lub kasowanie obszaru inkrementacyjnego. Programator ustawiony jako 95080 zwykle wystarczy do odczytu, ale nie jest pełnym zamiennikiem obsługi M35080.
M35080 używa komendy:
READ = 03h
czyli takiej samej jak typowe pamięci SPI EEPROM 95xxx/25xxx. Instrukcja READ jest opisana w zestawie instrukcji M35080 jako 0000 0011. (alldatasheet.com)
Sekwencja odczytu wygląda typowo:
CS = 0
wysyłasz 03h
wysyłasz adres 16-bitowy
odbierasz dane
CS = 1
Adresowanie obejmuje zakres:
0x000 – 0x3FF
czyli 1024 bajty.
M35080 nie jest zwykłą 95080 przy zapisie. Pierwsze 32 bajty:
0x000 – 0x01F
tworzą obszar inkrementacyjny zorganizowany jako 16 słów po 16 bitów. Według dokumentacji ST nowa wartość w tym obszarze może zostać zaakceptowana tylko wtedy, gdy jest większa od już zapisanej; zapis wartości mniejszej jest ignorowany. (agelectronica.lat)
Pozostały obszar:
0x020 – 0x3FF
zachowuje się bardziej jak standardowa pamięć EEPROM, z uwzględnieniem ustawień ochrony zapisu. (alldatasheet.com)
M35080 bywa używana w licznikach samochodowych. Sam odczyt pamięci do diagnostyki, naprawy lub archiwizacji wsadu jest normalną czynnością serwisową. Natomiast modyfikacja danych związanych z przebiegiem pojazdu może być nielegalna, jeżeli służy wprowadzeniu kogokolwiek w błąd. Nie udzielam instrukcji służących do cofania lub fałszowania przebiegu. Od strony technicznej można natomiast bezpiecznie omówić odczyt, wykonanie kopii zapasowej i weryfikację poprawności transmisji.
Najlepiej wylutuj układ z płytki.
Odczyt w układzie może się nie udać, bo mikrokontroler licznika lub inne elementy mogą obciążać linie SPI.
Ustal orientację pinu 1.
Patrz na kropkę, wycięcie, sfazowanie obudowy albo oznaczenia na PCB.
Wykonaj adapter według tabeli.
Nie zakładaj, że „SO8 to SO8” — tutaj pinout jest inny.
Ustaw programator jako 95080/M95080 SPI.
Ustaw właściwe napięcie.
Klasyczna M35080 według noty ST pracuje przy 4,5–5,5 V, więc typowo używa się 5 V. (agelectronica.lat)
Odczytaj wsad co najmniej 2–3 razy.
Porównaj pliki binarne.
Jeśli każdy odczyt jest identyczny, połączenie i timing są najpewniej poprawne. Jeśli pliki się różnią, problemem jest zwykle zły pinout, niestabilny kontakt, zbyt długie przewody, zła masa albo niekompatybilny programator.
Dla SPI stosuj możliwie krótkie połączenia:
| Objaw | Możliwa przyczyna |
|---|---|
Same FF FF FF... |
brak komunikacji, zły CS, brak GND, układ nieaktywny |
Same 00 00 00... |
zwarcie MISO do masy, zły pinout |
| Inny wsad przy każdym odczycie | długie przewody, słaby kontakt, zakłócenia, odczyt w układzie |
| Programator nie wykrywa układu | brak prawidłowego zasilania lub zły profil układu |
| Układ się grzeje | natychmiast odłączyć — możliwe błędne zasilanie lub zwarcie |
Trzeba uważać na oznaczenia typu:
M35080,M35080-3,M35080-6,M35080V6,080D0WQ,160D0WQ.Nie wszystkie zamienniki i wersje zachowują się identycznie przy zapisie/kasowaniu, choć do podstawowego odczytu SPI zasada jest zwykle podobna. Jeżeli programator ma w menu bezpośredni wybór M35080, lepiej użyć tego trybu niż 95080.
Istotna korekta względem jednej z podanych przykładowych odpowiedzi: pinout, w którym M35080 ma Q na pinie 1, S na pinie 2, C na pinie 3, D na pinie 4, VCC na pinie 5 i GND na pinie 8, nie odpowiada klasycznej M35080 ST z noty katalogowej. Dla M35080 ST poprawny jest układ: 1 VSS, 2 S, 3 W, 4 Q, 5 NC, 6 C, 7 D, 8 VCC. (agelectronica.lat)
Do odczytu M35080 programatorem ustawionym jako 95080 potrzebujesz tylko poprawnie przekrosować piny. Najważniejsze jest połączenie:
GND: M35080 pin 1 -> 95080 pin 4
CS: M35080 pin 2 -> 95080 pin 1
MISO: M35080 pin 4 -> 95080 pin 2
CLK: M35080 pin 6 -> 95080 pin 6
MOSI: M35080 pin 7 -> 95080 pin 5
VCC: M35080 pin 8 -> 95080 pin 8
Po odczycie wykonaj kilka kopii i porównaj binarnie. Do samego odczytu profil 95080 zwykle wystarczy, ale do pełnej obsługi M35080, zwłaszcza zapisu/kasowania obszaru inkrementacyjnego, potrzebny jest programator obsługujący M35080 bezpośrednio.