Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mc68HC..05.... - Czy da się ominąć OTP?

04 Wrz 2016 22:13 3921 8
  • Poziom 14  
    Witam.
    Pytanie w zasadzie proste jak w temacie.
    Posiadam mikrokontrolery Motorola (obecnie już produkcja NXP) i chciałbym je wykorzystać. Ponieważ cena jest dziś kosmiczna tych układów to pomyślałem że może jest sposób jakoś zaprogramować ponownie procka jednokrotnego programowania. Wiem że każde zabezpieczenie można ominąć, ale czy ktoś ma trop albo trik na te właśnie stare scalaki? Z odczytem EPROM, ROM1, ROM2 i każdej komórki niema problemu ale załadować nowy wsad nie udało mi się. Przegrzebałem neta i nie znalazłem a po rusku nie szukałem i domyślam się że oni patenty mają.
  • Poziom 43  
    OPT to nie jest zabezpieczenie tylko fizyczna cecha.
    Tak jak zniszczenie nitu po jednokrotnym użyciu nie jest zabezpieczeniem przed wielokrotnym używaniem nita. A jedynie konsekwencją tego że nit z założenia i z budowy jest jednokrotnego użycia.

    Natomiast mimo wszystko można wykorzystać taki mikrokontroler jeżeli część pamięci jest niezaprogramowana. Swój program należało by umieścić w tej niezaprogramowanej jeszcze części pamięci. A poprzednią część jeżeli się da to tak zedytować żeby jej pierwszy rozkaz był rozkazem skoku do tej dalszej części programu. A jeżeli się nie da uzyskać skoku to po prostu pozapisywać tam same zera (zmiana zawartości pamięci z 1 na 0 zawsze jest możliwa). Co być może zostanie potraktowane jako seria NOPów (nie wiem bo nie znam kodu maszynowego tych procesorów) a więc program po prostu ominie ten fragment aż dojdzie do nowego programu.
    Przy czym może się już nie dać użyć przerwań jeżeli ich położenie jest przypisane na sztywno do pierwszych komórek pamięci programu.

    Tylko podstawowe pytanie czy jest sens się w to bawić dla kilku mikrokontrolerów?
    Dzisiaj za 10zł można kupić kilka sztuk jakichś AVRów, PICów, ARMów czy innych.
  • Poziom 39  
    A po co Ci te zabytki? Chcesz to sprzedawać? Czy pisać na to programy?
  • Poziom 14  
    Jeśli tak to wszystko jasne. Podejrzewałem że może jest jakaś flaga która się ustawia po zaprogramowaniu i jest w niedostępnej do edycji komórce pamięci. A takich obszarów jest trochę w motorolach.

    Dodano po 3 [minuty]:

    Zabytki zawsze w cenie. Scalaki z tej rodziny chodzą do ponad 40€. A są sprzęty które potrzebują czasem serwisu, a klient jest w stanie za zabytek zapłacić.
  • Poziom 27  
    platfus1109 napisał:
    Jeśli tak to wszystko jasne. Podejrzewałem że może jest jakaś flaga która się ustawia po zaprogramowaniu i jest w niedostępnej do edycji komórce pamięci. A takich obszarów jest trochę w motorolach.
    Historycznie układy OTP nie miały służyć zabezpieczeniu przed ponownym użyciem, a jedynie obniżeniem kosztów produkcji.

    Najstarsze miały pamięć PROM w której w procesie programowania zostały "przepalane" ścieżki konkretne komórki w pamięci, tego procesu nie da się odwrócić. Istnieje też technologia "antifuse" gdzie pod wpływem prądu krzem się lokalnie nadtapia a zastygając tworzy ścieżkę o mniejszej rezystancji niż oryginalnie. Tego także nie da się odwrócić bo to proces fizyczny. Można gdybać o przepalaniu i naprawianiu ścieżek laserem, tylko że koszt sprzętu będzie kosmiczny.

    Nieco nowsze układy miały pamięć EPROM kasowalną przez UV, różnica między układami OTP a kasowalnymi była wyłącznie w fizycznej obudowie. Te drugie miały okienko i nieosłoniętą strukturę krzemową. Różnica w cenie obudowy z okienkiem a bez jest kolosalna, ten sam układ w obudowie z okienkiem kosztował 10$, a w zwykłej plastikowej 2$. Hipotetycznie można rozebrać obudowę takiego układu, naświetlić go UV i zaprogramować na nowo. Jedynym problemem jest fizyczny proces dekapsulacji. Do celów hobbystycznych pojedyncze sztuki można rozebrać ręcznie dremelem i w kwasie azotowym, ale nie wyobrażam sobie później zamontowania takiego układu w jakimś sprzęcie. W czasie rozbierania struktura krzemowa może zostać mechanicznie osłabiona, zostaje poddana działaniu tlenu i chemikaliów, nie ma gwarancji że czas życia takiego układu nie zostanie skrócony, albo jakiś elektryczny parametr np obciążalność albo maksymalna częstotliwość pracy. Przy takim ryzyku ten fabrycznie nowy układ za 40E wyjdzie taniej i pewniej.
  • Poziom 38  
    Motorole programuje się inaczej jak typowe mikrokontrolery typu PIC czy AVR. Programowanie jest mocno zbliżone do niektórych ARM-ów. Motorole nie mają podziału na pamięć programu i danych lecz mają jednolity obszar pamięci.
    W pierwszej kolejności należy wymusić za pomocą odpowiednio skonfigurowanych końcówek uruchomienie BOM czyli Boot ROM. To program, który umożliwia załadowanie do pamięci RAM programu poprzez UART. Następnie po załadowaniu programu programujacego do UART można było go uruchomić dzięki czemu było możliwe skasowanie pamięci i po tym samym interfejsie UART zaprogramowanie EEPROM-a lub/i EPROM-a.
    W najstarszych MC68705 programowanie odbywało się jeszcze bardziej egzotycznie. Był potrzebny programowany wsad w EPROM-ie a EPROM należało w odpowiedni sposób podłączyć do mikrokontrolera. Do zwiększania adresu EPROM-a było jeszcze konieczne dołączenie licznika HEF4040. No i oczywiście podanie odpowiednich napięć programujących rzędu 12.5V.
    Z powyższego wynika, że nie polecam owej egzotyki jeżeli jest to zbędne.
  • Użytkownik usunął konto  
  • Poziom 27  
    RitterX napisał:
    Motorole programuje się inaczej jak typowe mikrokontrolery typu PIC czy AVR. Programowanie jest mocno zbliżone do niektórych ARM-ów. Motorole nie mają podziału na pamięć programu i danych lecz mają jednolity obszar pamięci.
    W pierwszej kolejności należy wymusić za pomocą odpowiednio skonfigurowanych końcówek uruchomienie BOM czyli Boot ROM. To program, który umożliwia załadowanie do pamięci RAM programu poprzez UART. Następnie po załadowaniu programu programujacego do UART można było go uruchomić dzięki czemu było możliwe skasowanie pamięci i po tym samym interfejsie UART zaprogramowanie EEPROM-a lub/i EPROM-a.
    W najstarszych MC68705 programowanie odbywało się jeszcze bardziej egzotycznie. Był potrzebny programowany wsad w EPROM-ie a EPROM należało w odpowiedni sposób podłączyć do mikrokontrolera. Do zwiększania adresu EPROM-a było jeszcze konieczne dołączenie licznika HEF4040. No i oczywiście podanie odpowiednich napięć programujących rzędu 12.5V.
    Z powyższego wynika, że nie polecam owej egzotyki jeżeli jest to zbędne.
    Piszesz szczerą prawdę, ale to nie ma nic wspólnego z układami OTP, jeśli układ jest w światło-szczelnej obudowie to na nic nie zda się możliwość go zaprogramowania, jeśli nie odprowadzisz ładunku z bramek EPROM.

    Kolega pyta jak wyczyścić układy OTP do ponownego zaprogramowania, zapewne sposób programowania czystych ma już opracowany. Znasz jakąś metodę na to?