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

Attiny fusebit doctor (HVSP) - napraw fusebity

manekinen 08 Lut 2010 08:14 28923 31
  • Attiny fusebit doctor (HVSP) - napraw fusebity
    Pomyliłeś się przy ustawianiu, lub celowo wyłączyłeś pin resetu (RSTDISBL) czy możliwość programowania przez ISP (SPIEN)? Nie ma sensu kupować lub robić niewygodnego i skomplikowanego programatora HV, tylko po to aby odblokować kilka procków. To urządzenie wyleczy problemy z fusebitami w mikrokontrolerach z szeregowym HV – szybko i sprawnie ustawi je do wartości fabrycznych. Obsługuje wszystkie uC AVR z interfejsem szeregowym HV, czyli 8-nóżkowe: Attiny11, Attiny12, Attiny13, Attiny15, Attiny25, Attiny45, Attiny85, oraz 14-nóżkowe: Attiny24, Attiny44, Attiny84.

    Całość bardzo prosta i tania w wykonaniu – mózgiem układu jest Attiny2313, do tego kilka rezystorów, tranzystorów, i stabilizator 5V. Zasilanie układu – stabilizowane 12V. Naprawa rozpoczyna się zaraz po naciśnięciu przycisku START. Przycisk jest ponownie aktywny po 250ms i jego przyciśnięcie spowoduje zresetowanie układu i wykonanie operacji jeszcze raz.

    Oznaczenia diod:
    świeci zielona – fusebity naprawione i zweryfikowane, układ naprawiony. Jeśli jest ustawione zabezpieczenie lockbit, to tylko sprawdza czy fuski odpowiadają fabrycznym, i jeśli tak to także zapali tę diodę.
    świeci czerwona – problem z odczytaniem sygnatury, brak układu, lub brak sygnatury w bazie.
    migająca zielona – sygnatura odczytana, fusebity się nie zgadzają z fabrycznymi, ale ustawione są lockbity i trzeba zezwolić na wymazanie pamięci aby je naprawić (czytaj dalej).
    migająca czerwona – sygnatura odczytana, lockbity wyłączone, ale nie można z jakichś powodów zapisać nowych fusebitów, nie przechodzą weryfikacji po 10 próbach zapisu.

    Urządzenie wykorzystuje wysokonapięciowe programowanie szeregowe (high-voltage serial programming, HVSP). Najpierw pacjent jest wprowadzany w tryb programowania wysokonapięciowego, następnie odczytywana jest sygnatura i sprawdzana czy dany procek obsługujemy. Następnie cała pamięć jest wymazywana jeśli użytkownik zezwolił na to zworką. Następnie sprawdzane są lockbity, i jeśli nie są aktywne pacjent otrzymuje nowe fusebity zgodne ze swoją specyfikacją. Po tym zabiegu fusebity są weryfikowane i jeśli przejdą próbę – to już koniec. Jeśli nie, doktor powtarza zapis i weryfikację 10 razy, i jeśli nadal będą błędne – doktor poddaje się.

    Dodatkowo na płytce znajdują się dwie zworki:
    chip erase – zezwala na całkowite wymazanie pamięci flash. W przypadku kiedy są włączone lockbity (fusebity zabezpieczające) nie mamy możliwości zmiany fusebitów, a jedynym sposobem na wyłączenie lockbitów jest wymazanie całej pamięci. Założenie zworki skasuje pamięć.
    unknown signature – zdarza się dość rzadko, ale jednak, że uC ma uszkodzoną sygnaturę. Sygnatura, bajty kalibracyjne, i inne dane nie są na stałe zapisane w strukturze układu i mogą w pewnych przypadkach ulec usunięciu – np. na wskutek przepięć zasilania, np. przy programowaniu czy włączaniu/wyłączaniu zasilania. Sygnatura w takim przypadku będzie najczęściej odczytywana jako FF FF FF, ale układ nadal normalnie działa, daje się zapisywać i odczytywać z pominięciem sprawdzania sygnatury. W przypadku gdy odczytana sygnatura nie będzie pasowała do tych zapisanych w pamięci (czyli między innymi FF FF FF czy 00 00 00), doktor spróbuje wgrać uniwersalny zestaw fusebitów, który co prawda namiesza w ustawieniach taktowania itp, ale włączy z powrotem reset (wyłączy RSTDISBL) i włączy możliwość programowania przez SPI (włączy SPIEN) – mikroprocesor taki będzie zdatny do dalszej naprawy poprzez ISP lub inny “zwykły” programator. UWAGA nie stosować w przypadku Attiny11 i Attiny15.

    Fusebity: wewnęrzny zegar 4MHz nie dzielony przez 8, dobrze też będzie włączyć “fast rising power” aby do minimum skrócić czas przez który piny będą w stanie nieustalonym.

    Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity

    Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity Attiny fusebit doctor (HVSP) - napraw fusebity

    UWAGA: PROGRAM W WERSJI BETA. Urządzenia nie miałem jak przetestować na wszystkich wymienionych uC, jeśli coś jest nie tak to proszę o info, niezwłocznie poprawię.

    Już niebawem: AVR Atmega fusebit doctor (HVPP) czyli doktor dla procków z interfejsem równoległym wysokonapięciowym.

    Zapraszam też na moją stronę http://diy.elektroda.eu/attiny-fusebit-hvsp-doctor/

    W załączniku niezbędne pliki.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    manekinen
    Poziom 29  
    Offline 
    manekinen napisał 1690 postów o ocenie 2220, pomógł 75 razy. Mieszka w mieście Kętrzyn. Jest z nami od 2006 roku.
  • PCBway
  • #2
    jacxek
    Poziom 11  
    Witam

    Bardzo Interesujący projekt.... Zastanawiam się czy dało by się coś takiego wykonać żeby odblokować Atmega8, Atmega16, Atmega32 ... ????
  • #3
    sens
    Poziom 14  
    jacxek Był projekt podobny tylko że dla Atmega 8 w EDW.
  • #4
    Coolkk
    Poziom 12  
    Mam dwie Atmegi32 chyba właśnie tak zablokowane.. czy będzie to też działać jak ustawiłem zły clock np. na zewnętrzny oscylator? Oczywiście rozumiem że nie ten układ ale ogólnie HVSP?
  • PCBway
  • #6
    adammruk
    Poziom 16  
    Świetny, dopracowany projekt, nie ma się czego przyczepić... Z niecierpliwością czekam na doktora dla AVR :)
    Co do rezurektora - posiadam go, ale nie działa, wyczytałem że dużo ludzi ma z nim problem.
  • #10
    Jacek31
    Warunkowo odblokowany
    W sumie dla mnie jest dziwne że ludzie bawią się w rezurektory i tym podobne udziwninia. Przecież za podobne pieniądze można zbudować programator HVSP, który jest 2x funkcjonalniejszy, bo nie tylko pozwala naprawić zablokowany układ, ale i programować. A tak trzeba mieć właściwie 2 urządzenia, bo osobno programator i osobno Doktora i to nie jednego, bo nie ma uniwersalnego który by obsłużył większość proców. Ogólnie obecnie bólem jest brak dobrego uniwersalnego programatora HVSP dla AVT. jest natomiast pełno właście takich półrozwiązań, które powodują że szuflada zapełnia się płytkami.
  • #11
    mgsk8er
    Poziom 13  
    Jacek31 napisał:
    Ogólnie obecnie bólem jest brak dobrego uniwersalnego programatora HVSP dla AVT. jest natomiast pełno właście takich półrozwiązań, które powodują że szuflada zapełnia się płytkami.

    Myślę, że jednak istnieje ów uniwersalny HVSP dla AVT, oparty na popularnym projekcie ze strony elm-chan.org: http://pin.if.uz.zgora.pl/~jsieracki/Programator_rownolegly.html
    Duży, bo duży, ale jednak wszystko w jednym miejscu. Ewentualne adaptery trzeba dorabiać jak ktoś chce programowywać procesory smd, ale to już we własnym zakresie i na własne życzenie.
  • #13
    manekinen
    Poziom 29  
    No właśnie nie ma dobrego narzędzia HV dla AVR, dobrego czyli taniego prostego i na USB. Po za tym, taki uniwersalny programator HVPP siłą rzeczy będzie drogi i skomplikowany. Programując układy poprzez ISP mamy tylko 6 przewodów. Chcąc to zrobić poprzez HVPP jest ich około 20, a do tego masa procków z inaczej ułożonymi wyprowadzeniami = programator musi mieć dużą ilość podstawek a sama płytka skomplikowana. Z HVSP jest łatwiej bo tak jak w ISP jest 6 przewodów i tylko dwa rodzaje podstawek które obsłużą wszystkie układy.

    Jacek31 nie do końca się z tobą zgodzę, co do kosztów wykonania takiego układu. Wystarczy za 4zł zakupić attiny2313, rezystory chyba każdy ma? Po drugie, ja nie widzę innej potrzeby posiadania programatora HV jak nie do odblokowywania - pomimo że programowanie przez ISP jest wolniejsze jak przez HVPP to, heh, określenie "dużo wygodniejsze" to za mało powiedziane :)

    Układ przeznaczony raczej dla wszystkich korzystających często z AVR z serii Tiny, w których niejednokrotnie trzeba wyłączać reset. Mi się z pewnością przyda.

    W internecie można znaleźć kilka projektów podobnych, może potem przytoczę linki. Jednak nie działają one jak ten, każdy jest dedykowany do konkretnego modelu. Np do Tiny13 czy Tiny11, nie odczytują nawet sygnatury, po prostu wysyłają to co mają wysłać i tyle.

    A co do wersji HVPP (czyli dla rodziny Atmega) mocno się zastanawiam, policzyłem ile musi być różnych podstawek i się zniechęciłem... bo chciałbym żeby nie tylko można było odblokowywać m8 i t2313 (tak jak rezzurektor) ale też np. 8535 8515 M164 M32 T26 no i M8 i T2313 - każdy jeden ma inaczej rozłożone piny. Rozmyślam nad użyciem uniwersalnej podstawki ZIF40 i autowykrywaniem procka. Ale tak jak w przypadku HVSP, tak i w przypadku autowykrywania dla HVPP na elektrodzie do pomocy nikt się nie rwał, tylko nie rozumiem czemu co drugi założony temat dotyczy zablokowanego procka i wielkiego płaczu. Więc trochę to potrwa zanim zrobię to sam.

    Pozdrawiam :)
  • #14
    kombo
    Poziom 12  
    A czemu to nie zrobić sobie programatora HV? prosty projekt leży od dawna w sieci.
    Mianowicie ELM AVR programer. Trochę go zmodyfikowałem (zastąpiłem cyfrowe tranzystory i zastosowałem inna przetwornicę 5/12V)
    Co prawda kłopotliwa obsługa oprogramowania (konsola) ale mi wystarcza od kilku lat.
    Zaprojektowałem płytki do tego ustrojstwa.
    http://kombo.republika.pl/avrp.htm
  • #15
    Jacek31
    Warunkowo odblokowany
    Zgadzam się z kolegami ze zrobienie dobrego uniwersalnego programatora to problem. Zawdzięczamy to między innymi ATMELowi, który od momentu wprowadzenia rodziny Tiny zrobił niesłychany bajzel z całej rodzinie AVR tak sprzętowy jak i programowy. Kolega tutaj dobrze kombinuje z tym ZIF40, tylko auto wykrywanie to będzie poważny problem, bo jak niby programator ma zgadnąć co mu włożono do podstawki, skoro jest sporo różnic w pinologi ? Jedyne wyjście to CPLD (dla sygnałów cyfrowych) + klucze analogowe (Maxim robi całkiem ciekawe na SPI)
    Ja osobiście widzę w takiej sytuacji 2 możliwe rozwiązania. Wybór odpowiedniego CPU w programie sterującym, lub wyposarzenie programatora w mały LCD np 2x8 znaków i jaką prostą 4 przyciskowa klawiaturę i ręczny wybór CPU.
  • #16
    manekinen
    Poziom 29  
    Sposób na wykrycie jest, całkiem prosty, chętnych zapraszam tutaj https://www.elektroda.pl/rtvforum/viewtopic.php?t=1564025&highlight=
    pozostaje kilka innych problemów takich jak możliwość podania 12V na dowolnym pinie ZIFa - no i potrzebne 40 pinów I/O.

    Obiecywałem linki do innych odblokowywaczy rodziny TINY:

    attiny12 http://cappels.org/dproj/t12fp/t12f.htm
    attiny45 http://home.ict.nl/~fredkrom/pe0fko/Fuse-restore-ATtiny45/
    attiny13 https://www.elektroda.pl/rtvforum/viewtopic.php?t=1497080
    attiny11 jeszcze był ale nie mogę znaleźć...

    Nawet nie szukałem dla rodziny MEGA ale z pewnością by coś się znalazło.

    Tutaj odblokowywacz na platformie adurnio http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/

    Tutaj jeszcze komercyjne rozwiązanie HVSP i HVPP http://www.microcontrollerprog.com/
  • #17
    mirekk36
    Poziom 42  
    Uważam, że siła takiego urządzenia - rezurektora/defusatora/reanimatora czy jak tam zwał leży w maksymalnej prostocie wykonania , niskiej cenie i możliwości obsługi jak największej ilości procków.

    Autor w tym przypadku spełnił już dwa pierwsze punkty. Rzeczywiście jego rozwiązanie wydaje się o niebo lepsze od wspominanego wyżej rezurektora z EdW który na ślepo zapisuje Fusebity bez próby ich uprzedniego odczytania itp. Ot po prostu tamten wykonuje lobotomię jak zwykły konował przez co operacja może się nie powieść i pacjent ze śpiączki na prawdę umrze ;)

    A tutaj - urządzenie autora to już nieco wyższa szkoła jazdy bo - najpierw dokonuje analizy medycznej stanu pacjenta i na podstawie informacji z jego ciała dokonuje precyzyjnych cięć skalpelem w mózgu - przywracając mu funkcje życiowe ;)

    hmmmm odnośnie urządzenia dla dużej ilości procesorów. Autor pisze, że o ile już rozpoznał temat automatycznego wykrywania włożonego procka to teraz pozostaje problem portów, podawania +12V na różne nogi podstawki ZIF itd

    ...... ale czy nie lepiej może pójść inną drogą żeby to wszystko uprościć do MAXIMUM ! ;) ...... jak?? to tylko moja propozycja i może nie jest jedynie słuszna ale:

    - zamiast robić milionów podstawek
    - zamiast wkładać podstawkę ZIF
    - zamiast kombinować z wolnymi portami i próbą podawania 12V na różne nogi

    (bo wszystko to jakby nie patrzeć coraz bardziej zaczyna komplikować przecież ten zaprezentowany tu prosty układ - przez co traci on jedną z cech dzięki którym opłaca się go wykonać w porównaniu do programatora HV)

    .... to może wyprowadzić tych kilka sygnałów na zewnątrz na kabelkach. Każdy kabelek zakończony pojedyńczą nóżką z podstawki precyzyjnej żeby można było ją ściśle i pewnie założyć na nogę procka aż po pachwinę.
    Każdy sygnał czy kabelek ładnie opisany i .....

    ..... i nawet ten układ który tu widać jeszcze bardziej się uprości ! a za to już tylko od wyobraźni i możliwości programisty będzie zależało ile rodzajów procków on obsłuży. Wiem, wiem - każdy będzie musiał zajrzeć do noty PDF swojego procka, który chce odblokować (a to przecież bardzo boli co niektórych) żeby dowiedzieć się na które nogi podłączyć sygnały. Ale równie dobrze autor może zebrać te informacje i zrobić z nich jednego małego PDF'a.

    To oczywiście tylko taka moja skromna propozycja i wiem że nie musi się spodobać - ale na prawdę - to byłby MEGA SUPER PROSTY i TANI

    REZU - MULTI - REKTOR

    ;)

    Co pan na to ? - panie autor ;)
  • #18
    manekinen
    Poziom 29  
    Oczywiście, pomysł dobry. W takim odblokowywaczu można by było zaimplementować zarówno HVPP jak i HVSP - no bo czemu by nie?

    Sposób z kabelkami pewnie odstraszy sporą część ludzi, można też inaczej wykombinować, na płytce dać np. dwie podstawki pod najbardziej popularne procki czyli M8 i M16. Obydwie podstawki precyzyjne, i obydwie mają przecież wyprowadzone wszystkie sygnały. I tutaj użytkownik mógłby sobie albo wpiąć właśnie te gotowe oznakowane przewody, albo wykonać przejściówki pod konkretne modele procków. Wpina przejściówkę a w nią procek. I nikt nie każe robić wszystkich przejściówek, można wykonać tylko takie jakie się przydadzą. Można wykonać przejściówki dla procków w wersji SMD, bo tutaj kabelki są dyskwalifikowane. Pod ostatnim linkiem który podałem widać na tamtym odblokowywaczu że jest 5 podstawek i już całkiem sporo procków, niestety nie wszystkie. Atmel sam sobie sprawę utrudnił, bo już na STK500 jest aż 8 podstawek i dodatkowe złącza (+milion zworek) - a po co, nie można było przyjąć jakiejś pinologii i w ten sam sposób klepać tych procków... ehhh.
  • #19
    Quaki
    Poziom 20  
    Witam mi osobiscie caly projekt przypadl do gustu co do podstawki zif to czemu koledzy musza miec samowykrywanie (przeciez wystarczy podstawka zif 40 pin z wyprowadzonymi na zewnatrz gold pinami wtedy mozna spokojnie podlaczac sobie kabelki na kazdy pin i nie martwic sie o nic mozna nawet zdublowac kabelki po jednej i drugiej stronie tak zeby nie bylo problemu z tymi ktore przechodza nad zifem )
    Ja wiem ze sa tacy co im sie niechce nawet przeczytac jak wyglada pinologia danego procka i chcieliby wszystko na srebrnej tacy lopatlogicznie (bo angielski niemiecki czy wogole jakikowliek innych jezyk lacznie z Polskim sprawia im problemy) i najlepiej za darmo ale tak to tylko w erze ;)
    Pozdrawiam
    ps. jak znjade troche czasu to chce wlasnie w ten spsob przerobic projekt orginalny oczywiscie jesli autor nie ma nicprzeciwko
  • #20
    manekinen
    Poziom 29  
    Quaki, mam nieodparte wrażenie że nie przeczytałeś dokładnie tematu i nie zrozumiałeś o co do końca chodzi. Ostatnie posty dotyczą rozważań na temat wersji dla atmega z HVPP - natomiast projekt dotyczy attiny HVSP - i wystarczą w nim dwie podstawki bo procków z HVSP jest zaledwie kilka.

    Nagrałem filmik. Najpierw "psuje" attiny45 poprzez wyłączenie resetu a potem go uzdrawiam ;)


    Link
  • #21
    manekinen
    Poziom 29  
    Aktualizacja.

    A więc z tego co się dowiedziałem były problemy tylko z Attiny15, ale po dogłębnym przeanalizowaniu problemu, okazało się że Attiny11 również nie miała szans być naprawiona - namieszałem troszkę z fuskami bo w notach tych procków są bardzo ubogo opisane ;)

    Dodałem obsługę procków:

    8pin: Attiny22, AT90s2323, AT90s2343

    W załączniku nowy wsad, nie testowałem jak działa na tych prockach (również t11 i t15) bo po prostu ich nie mam.

    W drugim załączniku kod źródłowy bas, może nie jest szczytem czytelności czy wzorem optymalizacji ;)

    Proszę o nie łączenie postów jeśli można :)

    Pozdrawiam.
  • #22
    Carek
    Poziom 11  
    Witam
    Ten "doctor" to bardzo potrzebne narzędzie. Uruchamiałem nowy programator
    ISP i niechcący zablokowałem kilka "13-tek". Przymierzam się do tego układu,
    bo mój własny nie wyszedł przy pierwszym podejściu. Jeśli chodzi o układy z
    równoległym interfejsem, to udało mi się z powodzeniem odblokować
    ATmega8535 oraz ATtiny2313 według metody opisanej przez pana Baranowskiego,
    w jego książkach, polecam gorąco. To działa, generator zbudowałem na NE-555
    o f=160 kHz.
    Pozdrawiam
  • #23
    manekinen
    Poziom 29  
    Żaden generator nie pomoże jeśli wyłączysz sobie pin resetu lub programowanie ISP (zgaduję tylko że chodzi o sam generator który taktuje procek).

    Powstał drugi układ, do odblokowywania procków z HVPP... w tym momencie obsługuje 76 procków, jest juz gotowa aktualizacja do 83 procków. A już niedługo adaptery, między innymi obsługujący procki z HVSP - czyli taki 2in1 hvsp i hvpp w jednym :)

    Będzie również na elce, narazie -> http://diy.elektroda.eu/atmega-fusebit-doctor-hvpp/

    Attiny fusebit doctor (HVSP) - napraw fusebity
    Attiny fusebit doctor (HVSP) - napraw fusebity
  • #24
    Carek
    Poziom 11  
    To fakt.
    Tam gdzie jest dużo końcówek, Pin RESET pozostawiam w spokoju.
    Zbudowałem układ oparty na Twoim programie i "13" znowu ożyły.
    Zastosowałem czterostopniowy powielacz napięcia oraz plus VCC i uzyskałem
    11,5V, co wystarczyło do wprowadzenia procków w stan programowania,
    dzięki czemu zasilam "doctora" z USB.
    Pozdrowienia M
  • #25
    manekinen
    Poziom 29  
    Miałem zamiar wykorzystać jakąś niewielka przetworniczkę żeby uzyskać 12V z 5V (np USB) ale jakoś... poszedłem na łatwiznę, no i koszta mniejsze. Jeśli ten powielacz jest prościutki to możesz pokazać :) I cieszę się że program się komuś przydał :)

    Jeśli chodzi o same T13 to kolega sq6ade zbudował dedykowany układ dla nich, z programem pisanym w asm lecz niestety w roli doktora jakiś starszy procek jest - link -> https://www.elektroda.pl/rtvforum/viewtopic.php?t=1497080&highlight=
  • #26
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #27
    manekinen
    Poziom 29  
    Po co są rezystory, a po to że jeśli nasz pacjent nie wejdzie w tryb programowania i będzie wykonywał swój kod, a doktor swój, to mamy piękny konflikt stanów na liniach i można łatwo coś popalić. Te rezystory mogą być z przedziału 100ohm do 1K lub i nawet więcej choć powyżej 1K nie próbowałem.

    Czy napięcia +5 i +12 podczas bezczynności są bliskie 0V?

    A czy ten tiny13 jest sprawny, czy taki do naprawienia?
  • #28
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #29
    manekinen
    Poziom 29  
    Naprawdę nie wiem w czym problem. A może na próbę ustawić 1MHz? Bo skoro raz udało się zaświecić zieloną... to sądzę że układ zaprogramowany poprawnie...

    AHA nie wiem czy wspominałem w tym temacie, na płytce brakuje kawałeczek ścieżki pomiędzy T2 a R10 - kolega to zauważył?
  • #30
    Użytkownik usunął konto
    Użytkownik usunął konto