Odczyt zabezpieczonego DS2431

Pytania techniczne oraz porady dotyczące programowania pamięci oraz funkcjonalności programatora.
Post Reply
Marcin
Posts: 4
Joined: Sun Feb 24, 2019 10:02 pm

Odczyt zabezpieczonego DS2431

Post by Marcin »

Cześć wszystkim,
na wstępie napiszę, że są to moje pierwsze kroki z programowaniem dlatego będę wdzięczny za wyrozumiałość.
Zakupiłem programator celem skopiowania zawartości DS2431, niby zawartość odczytałem, ale po wgraniu na inny układ nie działa, zacząłem drążyć temat i z tego co widzę układ jest zabezpieczony przed kopiowaniem0084h1)R/(W)Copy Protection Byte55h or AAh: Copy Protect 0080:008Fh, andany write-protected Pages(wycinek wsadu na zdjęciu), moje pytanie brzmi czy ktoś ma jakieś rozwiązanie problemu? Idzie jakoś ominąć to zabezpieczenie?
Będę wdzięczny za sugestie bądź gotowe rozwiązanie.
Attachments
IMG_5233.jpg
IMG_5233.jpg (665.69 KiB) Viewed 13744 times
ArT
Posts: 1602
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 61 times
Been thanked: 171 times

Re: Odczyt zabezpieczonego DS2431

Post by ArT »

Programator wszystkie 4 strony (4*256bit = 1024bit = 128 bajtów) zapisuje bez problemu. Przy zapisie powinien przejść weryfikacje - jeżeli przeszedł weryfikacje to zapisał poprawnie. Więc pierwsze pytanie - czy podczas zapisu przechodzi weryfikacje?

Jeżeli tak, to moim zdaniem przyczyna leży zupełnie gdzie indziej. Każdy DS ma unikalny 64-bitowy ID (wypalany laserem na etapie produkcji - nie da się go zmienić) i urządzenie z którym działa Twój układ widocznie ma wpisany ID poprzedniej kości, a nie tej nowej i dlatego nie działa. Trzeba by odnaleźć teraz w drugim układzie (tym który komunikuje się z DS2431) obszar w którym jest zapisane ID i spróbować je zmienić. W REVELPROG-IS odczytasz 8 bajtów ID dla obu układów (menu narzędzia - odczyt ID).

W dokumentacji faktycznie jest wzmianka że zapisanie 0xAA lub 0x55 pod addresy 0x80 - 0x84 nie może zostać już cofnięte (jest read-only) więc jeżeli masz tak ustawione te bajty w odczytanym wsadzie to możesz je zmienić na 0xFF przed zapisaniem do drugiej pamięci. Na stronach 7-8 więcej info https://datasheets.maximintegrated.com/en/ds/DS2431.pdf
Marcin
Posts: 4
Joined: Sun Feb 24, 2019 10:02 pm

Re: Odczyt zabezpieczonego DS2431

Post by Marcin »

Dzięki za odpowiedź, weryfikację przechodzi pomyślnie, ale może rozjaśnię temat, układ pracuje jako licznik w części wymiennej, zawartość wsadu zmienia się w zależności jaki ma przebieg, wartość jest sczytana z nowej części i wgrana na używaną, suma CRC się zgadza. Wydaje mi się, że nie jestem w stanie odczytać całości zawartości, muszę odnaleźć nową kość i ją spróbować zaprogramować.
ArT
Posts: 1602
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 61 times
Been thanked: 171 times

Re: Odczyt zabezpieczonego DS2431

Post by ArT »

Z tego co widzę w datasheet to tej pamięci nie da sie zabezpieczyć przed odczytem, więc musi ją poprawnie całą odczytywać. Moim zdaniem to jest kwestia ID pamięci - w innym miejscu/w innej pamięci jest wpisane ID tej starej pamięci i dlatego nie działa z nową pamięcią która ma inne ID. Trzeba by poszukać gdzie to ID jest przechowywane i tam zmienić (bo samego ID pamięci nie zmienisz).
Marcin
Posts: 4
Joined: Sun Feb 24, 2019 10:02 pm

Re: Odczyt zabezpieczonego DS2431

Post by Marcin »

Dziękuję za wcześniejsze odpowiedzi, musiałem odpuścić projekt, ale właśnie do niego wracam, proszę o informacje jak zmienić abym mógł odczytać 9 linijkę kodu, bo czyta mi tylko do 00000070 a dopiero jak zmienię na inny układ pojawia się 00000080 i tam muszę wprowadzić zmiany
ArT
Posts: 1602
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 61 times
Been thanked: 171 times

Re: Odczyt zabezpieczonego DS2431

Post by ArT »

Rzuć proszę okiem na notę katalogową strona 7
https://datasheets.maximintegrated.com/en/ds/DS2431.pdf

0x80h są rejestry a nie sama pamięć - które dane musisz zmienić? Postaram Ci się przygotować odpowiednie skrypty.
Marcin
Posts: 4
Joined: Sun Feb 24, 2019 10:02 pm

Re: Odczyt zabezpieczonego DS2431

Post by Marcin »

Muszę zmienić wartości jak w załączonym zdjęciu, tam gdzie jest wpisane 55, bo gdy odczytuje kość i zapiszę ją nawet tą samą wartością, urządzenie tak jakby nie czyta zawartości i domniemuję że to wina właśnie tego
ArT
Posts: 1602
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 61 times
Been thanked: 171 times

Re: Odczyt zabezpieczonego DS2431

Post by ArT »

Na pierwszym zdjęciu masz 0x55 pod adresem 0x85 oraz 0x8F
Wg datasheeta pod adresem 0x85 jest "Factory Byte. Set at Factory." jako read only - niestety jego nie zmienisz, 55h oznacza włączony write protect. Tutaj masz skrypty na obsługę tych rejestrów w DS2431: https://forum.reveltronics.com/viewtopic.php?f=32&t=699 Podsumowując: odczytać możesz, zostaje tylko opcja skopiowania do nowej pamięci, ale ona już będzie miała inne ID.
Post Reply