Atmega fusebit doctor (HVPP+HVSP) – napraw fusebity

mega_fusebit_doctor_1Atmega fusebit doctor, jak sama nazwa mówi, to urządzenie do naprawienia nieumiejętnie przestawionych fusebitów w mikrokontrolerach z rodziny AVR. Największymi problemami jest ustawienie nieprawidłowego źródła zegarowego (fusebity CKSEL), wyłączenie programowania SPI (fusebit SPIEN), lub ustawienie pinu reset w tryb I/O (fusebit RSTDISBL). To proste urządzenie w ułamek sekundy naprawi mikrokontroler nadając mu ustawienia fabryczne.

O ile w pierwszym wypadku można poratować się generatorem zegarowym lub generatorem RC/kwarcowym, to w drugim i trzecim przywrócenie mikrokontrolera do życia nie jest możliwe przy pomocy programatora szeregowego SPI. Mało osób decyduje się na budowę programatora równoległego, a to dla tego że jest niewygodny w użyciu, a to dla tego że taniej kupić nowy mikrokontroler niż się bawić w jakieś naprawy. Na dłuższą metę jednak, zbudowanie tego urządzenia okazuje się bardzo dobrym pomysłem.

Przedstawiane urządzenie wykorzystuje możliwość programowania równoległego oraz szeregowego wysokonapięciowego. Są to metody programowania pozwalające dobrać się do układu z wyłączonym resetem czy isp:
HVPP = high voltage parallel programming = wysokonapięciowe programowanie równoległe.
HVSP = high voltage serial programming = wysokonapięciowe programowanie szeregowe.

Lista obsługiwanych układów:
Urządzenie obsługuje obecnie 145 układów, choć nie ze wszystkimi było testowane. Testowane układy są podświetlone na zielono. Zgłaszasz problem – wydaję poprawkę :)
1kB:
AT90s1200, Attiny11, Attiny12, Attiny13/A, Attiny15
2kB:
Attiny2313/A, Attiny24/A, Attiny26, Attiny261/A, Attiny28, AT90s2333, Attiny22, Attiny25, AT90s2313, AT90s2323, AT90s2343
4kB:
Atmega48/A, Atmega48P/PA, Attiny461/A, Attiny43U, Attiny4313, Attiny44/A, Attiny48, AT90s4433, AT90s4414, AT90s4434, Attiny45
8kB:
Atmega8515, Atmega8535, Atmega8/A, Atmega88/A, Atmega88P/PA, AT90pwm1, AT90pwm2, AT90pwm2B, AT90pwm3, AT90pwm3B, AT90pwm81, AT90usb82, Attiny84, Attiny85, Attiny861/A, Attiny87, Attiny88, AT90s8515, AT90s8535
16kB:
Atmega16/A, Atmega16U2, Atmega16U4, Atmega16M1, Atmega161, Atmega162, Atmega163, Atmega164A, Atmega164P/PA, Atmega165A/P/PA, Atmega168/A, Atmega168P/PA, Atmega169A/PA, Attiny167, AT90pwm216, AT90pwm316, AT90usb162
32kB:
Atmega32/A, Atmega32C1, Atmega323/A, Atmega32U2, Atmega32U4, Atmega32U6, Atmega32M1, Atmega324A, Atmega324P, Atmega324PA, Atmega325, Atmega3250, Atmega325A/PA, Atmega3250A/PA, Atmega328, Atmega328P, Atmega329, Atmega3290, Atmega329A/PA, Atmega3290A/PA, AT90can32
64kB:
Atmega64/A, Atmega64C1, Atmega64M1, Atmega649, Atmega6490, Atmega649A/P, Atmega6490A/P, Atmega640, Atmega644/A, Atmega644P/PA, Atmega645, Atmega645A/P, Atmega6450, Atmega6450A/P, AT90usb646, AT90usb647, AT90can64
128kB:
Atmega103, Atmega128/A, Atmega1280, Atmega1281, Atmega1284, Atmega1284P, AT90usb1286, AT90usb1287, AT90can128
256kB:
Atmega2560, Atmega2561

Opis:
Urządzenie jest niezwykle proste i tanie w budowie, wystarczy tylko Atmega8 (lub kompatybilny, patrz dalej) w roli doktora, dwie diody LED, zworka, stabilizator, tranzystory. Wystarczy podłączyć „uwalony” uC i wcisnąc przycisk START a układ wykona żądaną operację i nasz pacjent zostanie przywrócony do życia. Na płytce znajdują się trzy gniazda, dla procesorów zgodnych pinowo z atmega8, atmega16, i attiny2313 – czyli takich najpopularniejszych. Dodatkowo na płytce znajduje się złącze goldpin żeńskie z wyprowadzonymi wszystkimi potrzebnymi sygnałami, do podłączania adapterów:
#1 HVPP adapter” jako rozszerzenie HVPP dla procesorów kompatybilnych z 20pin Attiny26 oraz 40pin Atmega8515
HVSP adapter” dla procesorów HVSP 8pin oraz 14 pin attiny, których nie można programować równolegle z powodu zbyt małej ilości pinów.
Istnieje możliwość wykonania własnych dodatkowych adapterów pod inne rodzaje procesorów w obudowach DIP czy też SMD. Nie trzeba jednak wykonywać adaptera aby naprawić jeden procek, można to zrobić przy pomocy płytki stykowej łącząc sygnały z odpowiednimi pinami. Jak? Zajrzyj do noty katalogowej twojego AVRa, przejdź do „memory programming” a następnie „parallel programming” – nazwy sygnałów i pinów jak na tacy. Wszystkie piny są podpisane pod podstawką DIP40, a w załączniku znajduje się też projekt „pustego” adaptera. Płytka jednostronna, o wymiarach 55mm x 92mm. Na wierzchniej części należy wlutować kilka zworek, lub, płytkę można wykonać także jako dwustronną. Zasilanie 12V stabilizowane. Rezystory R7 do R23 moga mieć wartości od 100 ohm do 1K, proponuję raczej 330ohm. Należy pamiętać że trzy piny bitów z linii danych są także wykorzystywane przez programator ISP do aktualizacji programu – urządzenie nie będzie prawidłowo działało jeśli np podlutujemy się do nich z programatorem.

UWAGA!
Podczas montażu podstawki DIP40 należy usunąć z niej metalowe złącza od 29 do 37 pinu! Ścieżki przechodzące w tych miejscach nie mogą zostać elektrycznie połączone z pinami włożonego procesora, a biegną tamtędy aby uprościć samą płytkę. Na obrazku po lewej zaznaczyłem które to piny.

Działanie układu:
Zworka ALLOW ERASE zezwala na wymazanie całej pamięci w przypadku ustawionych Lockbitów (bez ich wykasowania nie jest możliwe przestawienie Fusebitów). Po podłączeniu układu i wciśnięciu przycisku START program inicjuje tryb programowania wysokonapięciowego. Czy jest to HVSP czy HVPP zależy od konfiguracji sprzętowej, po ludzku mówiąc, układ sam wykryje włożony adapter HVSP i automatycznie będzie w tym trybie pracował. Bez tego adaptera pracuje w trybie HVPP. Pierwsze co układ robi, to czeka na stan wysoki na pinie RDY/BSY co oznacza prawidłowe wejście w tryb programowania. Po tym odczytuje sygnaturę podłączonego mikrokontrolera i sprawdza czy jest w stanie go obsłużyć. Następny krok to wymazanie całej pamięci jeśli użytkownik na to zezwolił. Następnie sprawdzane są lockbity, i jeśli nie blokują dostępu, doktor odczytuje fusebity i porównuje je z fabrycznymi zapisanymi w bazie. Jeśli się różnią, zapisuje te fabryczne, uwzględniając czy dany model pacjenta posiada extended fusebits, czy nie. Niektóre starsze układy AVR mają jedynie jeden bajt fusków – LOW – i to także jest brane pod uwagę. Program na końcu weryfikuje poprawność zapisanych danych i zapala odpowiednią diodę.

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.

Terminal:
Terminal jest tylko opcjonalny, urządzenie działa bez niego a wszystkiego dowiemy się z samych diod…
Na płytce dodatkowo znajduje się złącze opisane jako RS232, jest to wyjście UARTa, podłączając się pod nie, dowiemy się wszystkiego o przebiegu operacji naprawy – przykładowe zrzuty w galerii poniżej. Informacje przez uart są wysyłane na bieżąco. Aby połączyć urządzenie z komputerem, użyć należy odpowiedniego konwertera. Jeśli w komputerze mamy gniazdo COM dla RS232, użyć można prostego konwertera zbudowanego w oparciu o układ MAX232 (np taki). Jeśli używamy laptopa, użyć należy konwertera na USB (może być taki lub taki).

Ustawienia dla terminala:
baudrate: 4800
parity: none
databits: 8
stopbits: 1
handshake: none

Inne:
W roli układu-doktora można użyć jednego z następujących mikrokontrolerów: Atmega8, Atmega88, Atmega88P, Atmega168, Atmega168P, Atmega328, Atmega328P – oraz ich nowsze/niskonapięciowe wersje „A” czy też „L”. Wsady znajdują się w odpowiednio opisanych folderach.
Zasilanie układu to stabilizowane 12V. Większe napięcie może uszkodzić naprawiany układ!

Program został napisany na podstawie opisu programowania równoległego oraz szeregowego wysokonapięciowego, zawartego w każdej z not katalogowych mikrokontrolerów AVR, (memory programming – parallel/serial programming). Projekt rozpoczęty jeszcze w 2008 roku, ale z braku czasu porzucony, teraz (2010) wykonany na nowo. Jeśli szukasz dedykowanego urządzenia do odblokowania procesorów Attiny, sprawdź mój poprzedni projekt, Attiny fusebit doctor. W projekcie ujawniły się jednak błędy a nie jest on już rozwijany z powodu powstania „Atmega fusebit doctor” który obsługuje wszystkie procesorki Attiny. Opublikowałem tam jednak kod źródłowy, i posiłkując się w/w rozdziałem noty katalogowej, można szybko zrozumieć omawiany mechanizm.

Fusebity:
Wewnętrzny zegar 1MHz oraz włączony bit EESAVE, patrz plik README.
Jeśli używasz nowego układu w roli doktora, to nie musisz nic przestawiać ponieważ fabryczne ustawienia są dobre i układ działa już na wewnętrznym 1MHz. Bit EESAVE nie jest konieczny, powoduje on że zawartość pamięci eeprom nie jest kasowana w przypadku aktualizacji programu – w eeprom układ zapisuje licznik naprawionych układów, którego wartość jest słana po rs232 w celach czysto statystycznych. Więc olej ten fusebit jeśli chcesz.



AKTUALIZACJA 2.1X DAJE NOWĄ FUNKCJONALNOŚĆ!

Wyślij własne fusebity i lockbity przez terminal, pracuj z układami z uszkodzoną sygnaturą. Jeśli dołączysz pin Tx terminala do pinu RX doctora – tryb manualny uruchomi się automatycznie. Wymaga to aby pin Tx terminala był w stanie wysokim w czasie bezczynności, musi on podciągnąć rezystor ściągający 10K. Jeśli tak się nie stanie (połączenie przychodzące odłączone) to doctor będzie pracował w trybie automatycznym (jak dotychczas).

CO I JAK:
Najpierw, doctor odczyta sygnaturę. Jeśli odczyt się nie powiedzie, poprosi o ręczne jej wpisanie. Wpisz dwa ostatnie bajty sygnatury w HEX (4 znaki) i wduś enter.

Następnie doctor spróbuje odczytać układ na podstawie podanej sygnatury.
Jeśli się powiedzie, wybierz jedną z opcji:
1 – write fusebits – zapis fusebitów wartościami z bufora (początkowo fabryczne).
2 – modify fusebits – opcja pozwala na ręczną zmianę fusebitów, dane w buforze się zmienią. Wpisz jeden bajt w HEX (2 znaki) i wduś enter. Powtarzaj dla każdego bajtu (jeśli istnieje).
3 – set lockbits – wpisz wartość lockbajtu, jeden bajt w HEX (2 znaki) i wduś enter.
Pamiętaj że nieużywane bity zawsze muszą być 1! Np, jeśli chcesz włączyć LB1 i LB2, wpisz FC (11111100)
4 – erase the chip – wymazanie całej pamięci i lockbitów, dla bezpieczeństwa wymagana zworka „allow erase”.
5 – end – zakończ programowanie i zwolnij napięcia – można wyjąć układ.

Zobacz jak został naprawiony Attiny13 z uszkodzoną sygnaturą.
Zobacz jak ten sam układ został z powrotem „zepsuty”.
Nie sugeruj się diodami w trybie manualnym – migają jak chcą :)
UWAGA – Firmware 2.1x WYMAGA aktualizacji płytki do wersji 2h!


Galeria:


Pliki:

POBIERZ – ARCHIWUM wszystkich poprzednich aktualizacji. Wsady + płytki.
Historia zmian w pliku README. -WERSJA SMD TUTAJ-
Nie musisz tego pobierać, najnowszy komplet plików znajduje się poniżej.


POBIERZ – AKTUALIZACJA #11, 30.04.2011:
Program ver.2.11 – poprawki
Fusebity: patrz plik README

Poprawiono błąd nie zapisywania się fusebajta HIGH (dotyczy wszystkich procków!)
To „tylko” literówka którą sieknąłem przy optymalizowaniu programu do 2.10 :)

POBIERZ – Adapter SMD:
4 pola układów, kompatybilnych z: T2313, M8, M16, M128 – wszystkie przetestowane.
Do dociśnięcia układu należy użyć silnych spinaczy do papieru.

Powiadomienia o nowych aktualizacjach – twitter.com/manekinen


FAQ – czyli często zadawane Pytania i Odpowiedzi:

P: Brak żadnego znaku życia, diody się nie zapalają.
O: Poważne błędy na płytce lub źle zaprogramowany procesor.

P: Zapala się czerwona dioda.
O: Procesor nie jest rozpoznawany. Wykonaj pomiar napięć. W czasie bezczynności, zmierz napięcia na liniach +12 RESET oraz +5 SUPPLY w złączu goldpin żeńskim – powinny wynosić 0V, lub być bliskie 0V. Po naciśnięciu przycisku START, napięcia te na czas około sekundy powędrują do wartości bliskich +5V oraz +12V. Jeśli jest inaczej, upewnij się że użyłeś dobrych tranzystorów i wlutowałeś je poprawnie.

P: Zapala się czerwona dioda.
O:Błędy na płytce, ścieżki są gęsto upakowane i bardzo możliwe że jest gdzieś niewidoczna przerwa, zwarcie, lub zimny lut. Sprawdź wszystko miernikiem, ale DOKŁADNIE.

P: Zapala się czerwona dioda.
O: Podłącz urządzenie do terminala aby odebrać log z naprawy. Wciśnij start aby odebrać dane.

P: Odebrano „Init programming…” i nic więcej – LUB – odebrana sygnatura to „00 01 02″ lub „FF FF FF”.
O: Włożony procesor jest uszkodzony, lub występują błędy na płytce – patrz wyżej.

P: Odebrana sygnatura to „1E 90 00″, ” 1E 1E 1E”, lub coś podobnego (przypominającego sensowne dane)
O: Włożony procesor jest sprawny, inicjuje się, na płytce są zwarcia na liniach DATA, BS, XA.

P: Zapaliła się zielona dioda / odebrano „Verifying… – OK!” ale procesor nadal nie działa w zwykłym programatorze
O: Fusebity na 100% zostały naprawione, procesor posiada uszkodzony sprzętowy SPI lub posiada inne uszkodzenie.

P: Co w logu robi „Read Signature… FAIL!” oraz „Trying T2313 pinout… OK”?
O: Wszystkie układy z 20pinami trzeba traktować nieco inaczej. Urządzenie domyślnie próbuje odczytać procesor wg standardowego schematu, i jeśli się to nie powiedzie („FAIL!”), to próbuje schematu dla ukłaów 20pinowych zgodnych z T2313 i dopiero układ zostaje odczytany. Jest to normalne zachowanie, nie jest to żaden błąd.

P: Co na początku logu robią krzaki typu „<[2J" ?
O: Jest to sekwencja czyszczenia ekranu terminala, w ustawieniach włącz emulację „VT100″.

P: Próbuję wysłać znaki na terminal w wersji 2.10, ale żadne się nie pojawiają.
O: Upewnij się że w ustawieniach terminala opcję handshake ustawiłeś na NONE.

P: To mi nadal nie pomaga, próbowałem wszystkiego i ciągle mam problem.
O: Zapytaj w komentarzach poniżej :) Podaj wersję softu oraz wersję płytki z którymi walczysz.

Русский перевод – Евгений из GetChip Блог.


860 Komentarzy

  1. SBMK pisze:

    Hi!
    I want to build this Resetter my self but cannot find the BILLS OF MATERIAL. I mean the list of materials need for the circuit.

    Thanks

  2. Ricardo de Sena pisze:

    I am nearing completion of the pcb and have a little doubt when the jumper is connected pcb manual mode and automatic mode when opened?
    Thanks.

  3. Ricardo de Sena pisze:

    Good morning, I set up yesterday and tested the device before putting the chip recorded and the source of 12 volts was in direct high level checked the circuit and it was a wrong value of r2 was put 1k after testing the value of 60k ai stopped high level of the 12v and put ci and give level was high when pressed a button and there levels of 12v and 5v were high for a short time and there tested with two chips atmel 1284P today and it worked perfectly! Congratulations to the community by providing DY.

  4. Ricardo de Sena pisze:

    Good evening, now tested the card with the computer in terminal mode and manual mode and automatic tested worked perfectly with atmel 8 and tested before without terminal with atmega chip 1284P unlocked two chips that you can put it in testing.
    Continue with these projects that help hobbyists much of the world.
    I’m from Brazil and found you on the net that’s incredible.
    Thank you.

  5. KM pisze:

    Hello,

    could I use a NP2222A or a 2N3904 (inverting the pin out) instead of the BC547 npn transistor?

    thanks

    • manekinen pisze:

      Any bipolar transistor will be ok (100mA or more), as long as you mount BCE pins correctly.

  6. sorena pisze:

    thank you mr manekinen

    i couldn’t find codes to program chip !!

  7. sorena pisze:

    sorry i found it !! ;)

  8. sorena pisze:

    MR ADMIN I HAVE A QUESTION

    you connect BS2 (PD6) to „COM” bus & use it from „DATA” bus to SV2 !!

    is it ok ? please take a look to schematic

  9. Borislav pisze:

    Dear, manekinen!
    Can you help me with the power supply that I can use with this board? I know, that it must be 12 Volts, but how many amps? Will be enough 12V/0.3-0.5A?
    Thank you for your help in advance!
    Best regards,
    Bobby

    • manekinen pisze:

      300mA should do the job, but i never measured how many it takes. Just try it.

    • Borislav pisze:

      Wow, I was fast in your answer! :) Thank you very much!

    • Borislav pisze:

      Wow, YOU was fast in your answer! :) Thank you very much!

  10. sorena pisze:

    HI …
    thank you mr manekinen. i built and used it. its reconstruct one of my dead mega 8 . I need to use pc & program to help . What program do you use and how i can get that ? please …

    • manekinen pisze:

      Everything is in the description. Just read it carefully.

  11. judo pisze:

    hello,
    Can you help me?
    I get a problem about how to use fuse bit doctor, and I am confused how to use the firmware.
    Can you explain to me in detail? but I had to send my questions to your email, please help me ..
    Thank you for your help in advance!
    Best regards,
    judo

    • manekinen pisze:

      I do not understand what do you mean by „how to use the firmware”. You build the circuit and burn the firmware into the atmega8, and thats it. Usage – see description.

    • judo pisze:

      so I just burn the firmware into the ATmega8 and it’s ready to use?
      how about the blue screen as in the picture (in the gallery) how can I show like that? whether it’s about a serial interface with a pc? and to use fusebit doctor if I have to connect to it with a pc?

      I’m sorry I ask too much, I just know fusebit doctor and I want to build it.

    • manekinen pisze:

      Yes it is ready to use. PC terminal is only optional. Its also described above.

    • judo pisze:

      and if I want to send information about fixing process via uart and connect this with the Laptop, what kind of software should I use ? would you like to give me tutorial how to conect it with my Laptop ?

      thank’s a lot manekinen..

  12. judo pisze:

    and if I want to send information about fixing process via uart and connect this with the Laptop, what kind of software should I use ? would you like to give me tutorial how to conect it with my Laptop ?

    thank’s a lot manekinen..

  13. snout pisze:

    Hej, mam mały problem z odblokowaniem Atmegi88.
    Logi:
    MANUAL HVPP MODE

    Init programming… DONE
    Read signature… FF FF FF – FAIL!
    Trying T2313 pinout..FF FF FF – FAIL!
    Type the signature: 1E930A

    Searching chip… no names in 8kB ver
    Read fusebits… L:FF H:FF E:FF
    Should be… L:62 H:DF E:F9
    Lockbits… DISABLED (FF)

    What to do?…
    1 – write fusebits
    2 – modify fusebits
    3 – set lockbits
    4 – chip erase
    5 – end

    Writing 62 DF F9… DONE
    Verifying… L:FF H:FF E:FF- FAIL!
    Please try again…

    Oprócz tego niemiłosiernie grzeje mi się stabilizator. Pobór prądu to prawie 0.22A. Aż tyle ma być? Nie znalazłem nigdzie żadnego zwarcia.
    Jakaś rada!?

    • snout pisze:

      Udało mi się zdobyć działającą atmege8 i wynika z logów że fuse doctor działa poprawnie. Czyli uC jest całkowicie uwalony?

    • manekinen pisze:

      Na to wygląda. W ogóle nie inicjuje trybu programowania.

  14. WebConn pisze:

    Thanks for this device! I often use it, and it helps me so many times…

    I created an SMD version of PCB (without sockets for DIP, but you can use adapters) and I want to share it with you (for free, of course). In archive I included a README file, photos of my board and two versions of PCB (with Power-Jack connector and with terminal connector as at the original board).

    WARNING: Some SMD components heats so much, so try to do all your tasks as fast as possible (about 3 minutes to avoid fire, I didn’t try :) ). But the device is useable, I had no problems.

    Link: http://depositfiles.com/files/rwszprks2

    P.S. Remember that the position of 78L05 on the photo is not right! (It was my mistake at first revision of the PCB :) )

    Have fun!

    • manekinen pisze:

      Hello.

      Why it is heating up? I can publish it in the download section above, but not when it is getting hot – something is wrong.

      Which element is heating? If it is T3, try to increase R25 for example up to 470 ohms.

      78L05 also shouldn’t heat up. Measure the power consumption and try to fix it. Also, these transistors are working only up to 1 second after button is pressed, so they shouldn’t be hot.

  15. Michał pisze:

    Witam czy jeżeli wystarczy podłączyć rezonator lub rc , ten układ mi pomoże odblokować atmege32 ?

  16. liubin pisze:

    hi,I urgently need to know ATtiny13A whether it can be healed, I tried green lantern is lit, it looks normal, but actually it has not been healed.
    I hope you can help me, I hope you all the best, thank you!

    • manekinen pisze:

      Of course it can, its on the list, as tested. It can has broken ISP. RS232 output can tell you more.

  17. Peter pisze:

    I first of all, It saved me quite some chips :-))
    I have a question. When i am connected with Terminal and insert
    a chip it doesn’t tell me the type ex. Atmega8 or tiny2313.
    But exept of this it erases the chip quit fine.
    Is there a list of the chip’s???

    • manekinen pisze:

      8kB firmware wont tell you the chips names. You’ll get them only with 16kB firmware for atmega168 or 328 doctor chips.

  18. szalony elektron pisze:

    świetny projekt :) Czy do komunikacji z komputerem można użyc taniego konwertera USB->RS232 na allegro można takie coś znaleść za 6zł więc nie opłacało by sie budowac :) pozdrawiam

    • manekinen pisze:

      Jeśli konwerter będzie spełniał warunki (prędkość i poziomy napięć) to czemu nie.

  19. SQ5EKU pisze:

    Gratuluję udanego projektu, wykonałem i odratowałem kilka sztuk ATMEL-i.
    Pozdrawiam.

  20. David pisze:

    hi !?
    any body there ?
    i just say thanks a lot. thank you for advice

  21. Truong Hiep pisze:

    Hi friends.

    I have a trouble with my arduino board. The board is arduino atmega 2560. I do not like Arduino IDE so I use Avr studio for programming and I used another programmer for downloading to the chip but I had a fault with fuse bits. Now microcontroller only wokrs with external oscilator (not work with crystal), I can not program it, can not download into the chip also. I did do your Atmega fusebit doctor and connected it to my arduino board but I did not work out the problem. Befor press restart button I did not see any signal on the red and green LED, after press restart button I saw the green LED fast flashing, and the red LED also flashes fast. After that both of them are off.

    Could you what is the problem and if you can please, tell me the way to solve it!

    Thank you.

    • manekinen pisze:

      I don’t know more than you, you have to check what doctor is sending trough uart output.

  22. Piotrek pisze:

    Witam! mam płytkę z dnia 03.03.2010-01.07.2010 i mam pytanie, jaki najnowszy soft moge wgrać do tej wersji?
    P.S. w mojej wersji jest problem z atmega 162

    • manekinen pisze:

      Nie wiem jaka to płytka bo data nic mi nie mówi, na płytce powinna być napisana jej wersja. Soft 2.10 i wyższe wymagają płytki 2h. Wcześniejsze softy pasują do wcześniejszych płytek. Proponuję jednak wprowadzić zmiany na płytce bo nie są one wielkie a usprawniają urządzenie, starsze płytki potrafią robić spore problemy z niektórymi prockami.

  23. Piotrek pisze:

    Jest to płytka z elektrody, po włożeniu atmegi 162 i przyciśnięciu start nie zapala się żadna dioda, na atmedze 8 i 32 wszystko działa jak powinno

  24. Jacek pisze:

    Wielkie dzięki! :D
    Złożyłem schemacik na płytce stykowej i naprawiłem sobie dwie Atmegi 8 :)
    Dla tych, którym nie działa:
    Sprawdźcie sobie kilka razy styki. Mi się udało znaleźć błąd dopiero za czwartym razem. U mnie migała ciągle czerwona dioda, ale po wyeliminowaniu błędów świeci się zielona i komputer wykrywa mikrokontrolery :)

    • manekinen pisze:

      No to teraz proponuję wykonać płytkę drukowaną i zmontować na stałe, jeszcze nie raz się przyda ;)

  25. Elyar pisze:

    This is amazing it realy works, thank you. I have a question why some components are missing from final assembled board but they are exist in schematics?

    • manekinen pisze:

      Because you are watching at pictures with PCB in first version and at schematic in latest version. This project had something about eleven updates :)

  26. Kris pisze:

    Witam,
    czy testowałeś swój układ w wersji smd ? ja go zrobiłem i nie chcę mi działać, sprawdzałem płytkę kilka razy, napięcia 5v i 12v pojawiają się kiedy trzeba, ale niestety nie działa. Wymieniłem procka, dołożyłem ftdi żeby zobaczyć co się dzieje, testowałem na kilku prockach (atmega168,8, attiny13) na wszystkich jest to samo, otrzymuję coś takiego
    Init programming… DONE
    Read signature… FF FF FF – FAIL!
    Trying T2313 pinout..FF FF FF – FAIL!

    chociaż nie zawsze jest to FF.
    już nie wiem co może być źle

    • Kris pisze:

      ok, widzę że testowałeś, u mnie nie chcę to za cholerę działać, czyżby wszystkie procki były uwalone ?

    • manekinen pisze:

      Chodzi o przystawkę smd? Była testowana i nie tylko przeze mnie. Być może za słabo dociskasz układy lub pady nie są dokładnie (równo) pocynowane.

    • Kris pisze:

      nie, nie przystawkę, układ główny, chyba zrobię go jeszcze raz ale tym razem na elementach przewlekanych bo już nie wiem co może być źle. Mam jeszcze jedno pytanie, bo chcę podpiąć pod logic analyzer wszystkie linie do odblokowania attiny13, czy możesz mi powiedzieć jakie sygnały są wysyłane na poszczególnych liniach, mógłbym sprawdzić czy u mnie są one prawidłowe.

    • manekinen pisze:

      Wersja SMD nie jest mojego autorstwa i nawet jej nie wykonywałem żeby ją sprawdzić – ludzie piszą że jest ok. Nie była też aktualizowana od jakiegoś czasu.

      Czy w przypadku attiny13 układ startuje w trybie HVSP?

      Co do sygnałów, jest ich dużo, i po prostu nie da się tego opisać tekstem :) Zobacz projekt „attiny fusebit doctor” jest to poprzednia wersja tego układu tylko z interfejsem HVSP, opublikowałem tam źródła kodu, jeśli coś z niego zrozumiesz to będziesz w stanie porównać to do tego co zobaczysz na analizatorze.

  27. krzysiek pisze:

    Witam czy da się tym odblokować ISP w procesorku AT89S2051.

    • manekinen pisze:

      Układów AT89 doctor w ogóle nie obsługuje, co prawda mają one jakieś programowanie równoległe ale na pewno nie jest to zgodne z HVPP – teraz pobieżnie przejrzałem notę.

  28. szpila pisze:

    Witam, rozważam budowę w/w układu i chciałbym się doradzić czy jest sens. Uszkodziły mi się (jeszcze nie wiem od czego i jak) dwa uP Atmegi8 niezależnie czy programuję je usbasp czy stk500(klon SIBIT’a) zwraca mi ten sam błąd. Fusebity czyta i zmienia bez błędy ale przy programowaniu Flash jest błąd weryfikacji(programowanie wolne).

    • manekinen pisze:

      Błąd weryfikacji występuje pod różnymi losowymi adresami? Jeśli tak to tasiemka łącząca jest za długa (max 15cm), zasilanie kiepskiej jakości, nie zblokowane kondensatorkami 100nF. Może jakieś zimne luty, trzeba dokładnie przedzwonić miernikiem połączenia. Jeśli błąd występuje przy obydwu programatorach to usterek należy szukać na płytce z układem docelowym. Sama tasiemka może też być źle zaciśnięta we wtyczce.

      Ten układ w tym przypadku nie pomoże bo układy są sprawne. No, chyba że błąd występuje zawsze pod tym samym adresem, to można domniemywać że układy są uszkodzone, ale to jak jeden na milion że uszkodziły by się obydwa w taki sam sposób.

  29. szpila pisze:

    Na płytce już wcześniej programowałem kilkanaście razy procesor i było zawsze ok. Procesor nie był nowy gdy odmówił posłuszeństwa pomyślałem że porostu padł z zbyt dużej ilości programowania i kupiłem nowy, który po zaprogramowaniu około 4 razy zaczął się zachowywać jak stary. nic na zasilaniu i taśmie czy układzie się nie zmieniło w międzyczasie. Tak różne adresy błędu.

  30. Grzegorz pisze:

    Genialny projekt.Stworzyłem układ na płytce uniwersalnej.Trochę się zmartwiłem gdy układ bez żadnego pacjenta nie pracował poprawnie.To jest przestroga dla takich amatorów jak ja.Chciałem po prostu sprawdzić doktora (Atmega8) czy wyświetli czerwoną diodę (nie rozpoznał układu). Niestety nie zrobił tego.Dopiero po podłączeniu Atmegi 162 zaczął działać poprawnie.Myślę ,że kolega Manekinen powinien zacząć współpracę z Atmelem. Życzę powodzenia.

  31. FULDA pisze:

    Hi, In my shop they have only ATMega8A and not ATMega8. Is it problem? Or can I use 8A without problems?

    Thank you.

  32. AlxDroidDev pisze:

    How do I program the Atmega8 wiwth the HEX file?
    I have both an Arduino and a cheap Chinese clone of a USBasp. Can I use either one of these to program the Atmega8 ? If so, how do I connect the Atmega8 to the breadboard to flash it? Thanks.

    • manekinen pisze:

      Mate, you have to use ISP connector to do this, there are tons of info around the web on how to do this :)

  33. Fernando pisze:

    Dear, I fix atmega48 fine. but i have one atmega168-20pu the Reset disabled, but fuse doctor only show this:

    *****************************
    AUTOMATIC HVSP MODE
    Init programming… DONE
    Read signature… 00 00 00 – FAIL!
    No chip in socket or chip does not responding
    Please try again…
    *****************************

    I try disabled reset pin with new and good atmega168-20pu, and show same.

    what can do?

  34. Fernando pisze:

    Men, i do one test with attiny2313, fc lock fix, but i disabled reset fuse also, same problem. I make rs232 to see, manual mode:

    MANUAL HVSP MODE
    Init programming… DONE
    Read signature… 36 36 36 – FAIL!
    Type the signature: 1E910A

    Searching chip… no names in 8kB ver
    Read fusebits… L:36 H:3F E:37
    Should be… L:64 H:DF E:FF
    Lockbits… ENABLED (3E)
    *******************************************
    *Freeze…, after put a finger on BS1 pin:*
    *******************************************
    Chip erase… DONE
    What to do?…
    1 – write fusebits
    2 – modify fusebits
    3 – set lockbits
    4 – chip erase
    5 – end
    *******************************************
    *Freeze again.., after put finger BS1:
    *******************************************
    Writing 64 DF FF… DONE
    Verifying… L:FF H:00 E:FE- FAIL!
    Please try again…

    *I dont know what can be, may you help

    • manekinen pisze:

      Hello,

      Atmega 48 and 168 are the same chip, the second one only have more memory, so both should work fine with doctor. And both were tested with it.

      Attiny2313 also was tested.

      When it’s freezing, it waits for READY pin to go high, your finger is giving a positive charge there, but it should depend on real RDY pin so it is possible that you also have break there.

      Check your board twice for shorts or breaks in circuit, they are tricky to find.

      Cheers.

    • Fernando pisze:

      You are right! I remount and work fine now.
      Its a very useful project. Cheers!

  35. Radu pisze:

    Hi manekinen,

    I built this to repair one Atmega328 that got wrong fuses because of some usbasp complications.

    I built it and it worked the first time, so I was able to repair my 328p successfully. Thanks for that.

    Some strange problems happened afterwards:
    1. I put a atmega8 that was good, but just for a test. Let GREEN was blinking. Looking over serial connection, I saw the following: http://i45.tinypic.com/2hqrvr4.png
    The chip became unreadable and it was working before via ISP, etc. Unable to fix it I tried to raise the voltage, from 12V to 18V, but that broke the chip permanently: the RED led turned on instead of the blinking green.

    2. I tried with a working atmega168. It worked well – settings set back to default . Nice constant green led light.

    3. I tried with another 328p . Worked good.

    4. I tried with an Attiny2313 . It worked, but the Serial debugger showed some weird data:
    http://i47.tinypic.com/iwq5hc.png
    But this worked too.

    5. I tried a brand new atmega8 . The green light was blinking. I then connected it via ISP and was able to use it correctly. Putting it back to Fusedoctor, showed blinking green light again. Why?
    I connected the serial debugger. It showed everything was normal: http://i47.tinypic.com/15ezujs.png
    I disconnected the serial/uart debugger, pressed the START button, but the green light was blinking again

    6. Inspecting the PCB, I found an improper soldering at one of the 1K resistors. The circuit was interrupted there. Strange that atmega168 , attiny2313 and the atmega328p (the reason I built your tool) where all working. So I soldered the resistor correctly, BUT:

    NOW NONE OF THE LEDS TURN ON. The debugger now only shows:
    http://i48.tinypic.com/3466elu.png
    And stops there . No leds turn on regardless of what I put in the sockets.

    I hope this wasn’t a total waste of time, and there is something I can do to make it work as expected. What could be the cause of all this?

    My only change to your original schematic was using 2x BC327 instead of BC557. Any help would be appreciated.

    • Jack Ravenno pisze:

      Hi!

      At first you MUST verify carefully that PCB is perfectly „error free”. I’ve had ONE error – simple broken track and my console screen was like yours.

      Init programming…

      and nothing more :/

      Now my device works OK.

      Thanks to Manekinen

  36. MG pisze:

    it’s work for ATmega8..
    but how bout ATmega8A..i’ve tried but no working.

  37. MG pisze:

    how bout atmega8A…i’ve tried it’s no work
    help please

  38. Stan pisze:

    Hallo Manekinen,
    i look for print-layout for fuse doctor.
    Is any chance? No problem PayPal or $/Eu pay.
    Thanks for any information.
    Stan, Brno, CZ

  39. MIREK pisze:

    Ahoj Manekinko.
    Ten doktor absolutně nefunguje. Dělá si to co chce, jen ne to co by měl. Při osazení jakoukoliv atmegou, po stisku tlačítka červená led zhasne a pak se už nic neděje. Testováno na mega8-16, mega32, Attiny2313 a 4313. Ani při jednom obvodu to nefunguje. Zbytečně zničený kuprextit, součástky a výsledek velká nula. :-( :-(

  40. Steve pisze:

    Hi, great project & thank you for releasing it. I have just built mine & worked like a charm.
    I am interesting in using Bascom with Atmel chips, would it be possible to see the source code for the Doctor ATMega8 chip?
    Thanks again

  41. Jack Ravenno pisze:

    Cześć!

    Dzięki! Bardzo fajne urządzonko. Zmontowałem jako wprawkę przed poważniejszymi projektami. Miałem mały problem z brakiem 12V na układach jednak szybko znalazłem przerwaną z jakiegoś powodu ścieżkę. Hula jak trzeba. Twoje uwagi odnośnie błędów w trakcie uruchamiania są bardzo pożyteczne. Zwłaszcza jedna: sprawdzić DOKŁADNIE płytkę na ciągłość połączeń i brak zwarć.

    Pozdrawiam

  42. ghostknight pisze:

    red led is ON …
    when push start button >>> red led OFF , wait few seconds ,green led flashing , and red led return ON …
    AND chip still not repaired
    can any one help please :)

  43. Harm pisze:

    Hi there,
    Are there ready-made pcb’s (factory-made) for this project available?
    At dangerous-prototypes there are all out of stock and don’t sell/have them anymore.
    Please eply?
    Regards,
    Harm

  44. Lovarda pisze:

    Hello

    How i can connect my atmega169P to this?

  45. Rupert pisze:

    Hi Manekinen

    I just wondered if you could help me with the correct fuses to burn your firmware on a 328P-PU for the Fuse Doctor chip, I am using AVRDUDESS as it supports the 328P and Arduino as ISP out of the box.

    It previously had an Arduino bootloader on it.

    What would the fuses be for the Low/High/Ext and Lock Bits ?

    Its all very confusing :)

    Thanks

    Rupert

    • manekinen pisze:

      Hi. Fuses are described in the readme file in the attachment.

      For M328: L:0×62 H:0xD1 E:0xFF

      And of course use proper firmware for this chip.

  46. Mahmoud pisze:

    hello Manekinen
    i am going out right now to buy the components for this circuit
    but can you please tell me the difference between connecting the dead Atmega8 in the dip socket within the board and connecting it through the adapter ??
    thanks in advance man

    • manekinen pisze:

      Hm? Theres no adapter for mega8.

    • Mahmoud pisze:

      so this means that for example for Atmega8 & Atmega32 & Atmega16 i need no adapters to revive them ???

    • manekinen pisze:

      Nope, just put them into the main board. There are 3 sockets for most popular AVRs :)

  47. Vladimir pisze:

    Can I omit all 1k resistors ? I want to set up this schematic on a breadboard. That’s why I want to omit some parts (1k resistors).

    • manekinen pisze:

      Yes you can, but if something will go wrong you will get hi-low state collision and can broke your uc’s pins.

  48. tomek pisze:

    mam problem z atmega16.w pony prog wyskakuje mi Alert:dewice missing or unknown device (-24).wyswietlaja sie tylko czarne kwadraciki.stalo sie to gdy probowalem wpisywac rozne kombinacje fusebitow wykorzystujac kwarc zewneczny16mHz.to juz druga atmega16.zmienialem tylko jtagen,cksel2,suto,bootSZ1,bootSZ0.
    Czy to moglo zablokowac atmege16.zmienialem kilkanascie razy az wyskoczylo ten alert(-24).Bardzo prosze o pomoc bo chyba pukam do odpowiednich drzwi.nie da sie skasowac programu,wpiasac nowych fusebitow

    • manekinen pisze:

      Wywal tego pony proga i zacznij używać normalnego programu, np AVR Burn-O-Mat, wtedy nic nie zablokujesz.

      Co do problemu to ciężko powiedzieć, spróbuj podłączyć jakiś sygnał zegarowy na pin xtal1 (schematy prostych generatorków znajdziesz w sieci).

  49. tomek pisze:

    Czy ktos juz robi odplatnie plytki do doktorka?
    Stk200,ponyprog i uklad atmega16 w ukladzie avt5229,probowalem wpisywac rozne kombinacje fusebitow do kwarca16mhz zewnetrznego,nawet z programu http://www.engbedded.com odczytywalem fusebity i nic tylko zablokowalem sobie dwie atmegi16.Problem polega na tym,ze na wyswietlaczu pojawia sie tylko pierwsza i trzecia liniai jeszcze pare krzaczkow mrugajacych,dopiero po dotknieciu palcem pod kwarc uklad sie wzbudza i pojawiaja sie 4linie.W ponyprog gdy Jtagen odznaczylem na -v to wyswietlacz palil sie kwadracikami czarnymi,pierwsza i trzecia linia.Gdzy zaczalem mieszac z Cksel1 iCksel2-v to uklad zdechl.Czy doktorkiem mozna go reanimowac?Prosze kolegow o pomoc bo nie jestem w tym temacie dobry a cztajac i czytajac jakie tu rozwiazujecie problemy to moj problem to bedzie dla was pikus bo dla mnie jest wielka gora na ktora sie wspinam i spadam z bolaca glowa.Problem opisalem tez na trioda miernik lamp elektronowych avt5229.Bardzo prosze o pomoc.
    tomek_miszczyk

  50. tomek pisze:

    OJ teraz zobaczylem,ze kolega Manekin odpisal.program Avr8 Burn-O-Matv2 tez mam ale cos Stk200 nie widzial,chyba cos zle kombinowalem.
    1.O jakies czestotliwosci ma byc ten generatorek:1Mhz ?
    2.posiadam tylko stk200
    3. jakie powinny byc fusebity do 16Mhz prawidlowe?
    4.czy mozna tak sobie zmienic kwarca na 4Mhz i fusebity aby wyswietlacz dzialal poprawnie,bez uszczerbku na programie?
    5.kupujac plytke ze scalakiem to atmega16 miala ustawienia:Spien-v,Ckopt-v,BootSZ0-v,BootSZ1-v,odczyt ponyprog.Juz mam dwa komplety,myslalem,ze drugi bedzie dzialal porawnie,ale sie przeliczylem.Czy to sa poprawnie ustawione fusebity?
    6.jak to sa ustawienia prawidlowe to gdzie moze byc proble?Czy ktos juz mial taki problem?
    7.Jestem ze Skarzyska-kam.moze ktos mieszka nie daleko aby mi pomoc
    8.dziekuje za odpowiedz samego kolegi Manekinen co stworzyl fusebit doktorka
    9.Bardzo prosze o pomoc.
    tomek_miszczyk

Dodaj komentarz

Proszę pozostawić te dwa pola tak jak są:




Dodaj obrazek / Add image