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.
REVELTRONICS company will be closed from 7th Sept to 30th Sept. Support will be very limited during this time. More details.
Odczyt zabezpieczonego DS2431
-
ArT
- Posts: 1613
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 176 times
Re: Odczyt zabezpieczonego DS2431
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
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
Re: Odczyt zabezpieczonego DS2431
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: 1613
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 176 times
Re: Odczyt zabezpieczonego DS2431
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).
Re: Odczyt zabezpieczonego DS2431
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: 1613
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 176 times
Re: Odczyt zabezpieczonego DS2431
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.
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.
Re: Odczyt zabezpieczonego DS2431
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: 1613
- Joined: Wed Mar 25, 2015 8:54 am
- Location: Warsaw, Poland
- Has thanked: 61 times
- Been thanked: 176 times
Re: Odczyt zabezpieczonego DS2431
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.
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.