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

[Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

Asmodat 25 Lip 2012 13:22 2419 22
  • #1 25 Lip 2012 13:22
    Asmodat
    Poziom 10  

    Zakładam temat, ponieważ zepsułem już 4 Atmegi, próbując uruchomić zewnętrzny oscylator 8Mhz, na płytce prototypowej zl2avr: http://www.btc.pl/pdf/zl2avr.pdf

    Objawia się to tym, że nie da się już ich ponownie zaprogramować.
    Próbowałem takich ustawień bitów fuse (zgodnie z tabelą w książce ARM & AVR7):

    Wszystko robiłem na mkAVR Calculator

    najpierw manualnie:

    CKSEL3-0: 0111
    CKOPT: 1
    ;-------------------------------------------
    CKSEL3-0: 1000
    CKOPT: 0


    potem uproszczone fusy:
    (Zewnętrzny kwarc 3-8 Mhz)
    CKSEL3-0: 0010
    CKOPT: 0
    ;-------------------------------------------
    (Zewnętrzny kwarc >8Mhz & opcja oscylatora)
    CKSEL3-0: 0000
    CKOPT: 0


    Wszystkie atmegi zdechły, została mi tylko 1 szuka i nie chciał bym jej skopać, help !

    0 22
  • Pomocny post
    #4 25 Lip 2012 13:50
    Tomasz Gumny
    Poziom 27  

    Pewne znaczenie ;) mają pozostałe fusebity - jak je ustawiałeś?
    Czy wstawiłeś zworki JP2 i JP3?

    0
  • #5 25 Lip 2012 13:53
    tehaceole

    Poziom 28  

    Oj Kolego Kolego... Przecież programik Mirka jest napisany tak, że naprawdę bardzo trzeba się postarać, aby ubić atmegę. Co to znaczy, że nie da się jej zaprogramować? Podłączałeś do niej kwarc? Nie startowała? Zamiast kwarcu podpinałeś do nóżki 1 oscylatora jakiś generator przebiegu prostokątnego? Też nie wstała?

    Bawiąc się fusami manualnie, a nie mając w tym doświadczenia mogłeś w najgorszym przypadku przestawić pin reset na zwykły pin IO. A wtedy to już tylko programator równoległy...

    Z Twojego opisu wynika, że albo przestawiłeś procesory na taktowanie zewnętrzne i tego taktowania nie doprowadzasz do nóżek oscylatora albo ukatrupiłeś funkcję programowania szeregowego.

    Mając program, w którym jak na tacy podana jest możliwość bezpiecznej zmiany parametrów mikrokontrolera jest całkowitym bezsensem manualne przestawianie tych parametrów.

    0
  • #6 25 Lip 2012 13:57
    Asmodat
    Poziom 10  

    @UPUP Zworki oczywiście, że wstawione.
    A pozostałe fusy nie zmieniałem (tak jak się ładują ustawienia ze świeżego mikroklocka z listwy tak je zostawiam), bo nic o tym w podręczniku nie było:

    LOW
    BODLEBEL: 0
    BODEN: 0
    SUT1: 0
    SUT0: 1

    HIGH
    RSTDISBL: 0
    WTDON: 0
    SPIEN: 1
    EESAVE: 0
    BOOTSZ1: 1
    BOOTSZ0: 1
    BOOTRST: 0


    To nie może mieć związku, bo na "uproszczonych fusach" te bity i tak się nie zmieniają.
    A np. Wewnętrzny oscylator 8 działa mi bez problemu.

    @UP Widocznie jakoś kiepsko jest zrobiony, a nie mam sprzętu do tego żeby te procesory teraz ratować.

    A jak chce je znowu zaprogramować to avrdude pisze tylko "Błąd AVRDUDE!" tak jakby ich nie było.

    0
  • #7 25 Lip 2012 14:11
    LordBlick
    VIP Zasłużony dla elektroda

    Asmodat napisał:
    RSTDISBL: 0
    Asmodat napisał:
    SPIEN: 1
    Tu leży twój problem... ;)
    RSTDISBL:1 i SPIEN:0 - Zaprogramowany bit to Zero...

    0
  • #8 25 Lip 2012 14:13
    szulat
    Poziom 23  

    Asmodat napisał:

    A pozostałe fusy nie zmieniałem, bo nic o tym w podręczniku nie było:
    SPIEN: 1

    to jakiś ciekawy podręcznik bo w dokumentacji atmela włączenie SPI to SPIEN=0 a nie 1
    ale w ogóle wszystkie bity jakie podajesz są odwrócone w stosunku do rzeczywistości więc albo to jakaś oryginalna konwencja autora podręcznika którą trzeba wcześniej poznać albo może ma udziały w sklepach sprzedających atmegi i chce żeby jak najwięcej klientów sobie zepsuło układy i kupowało nowe ;)

    0
  • #9 25 Lip 2012 14:16
    LordBlick
    VIP Zasłużony dla elektroda

    Asmodat napisał:
    nic o tym w podręczniku
    Noty katalogowe są najlepszymi podręcznikami i nic nie kosztują... W każdej z nich jest sekcja Memory Programming//Fuse Bits. Tu masz od ATmega8.
    Asmodat napisał:
    nie mam sprzętu do tego żeby te procesory teraz ratować.
    Fusebit Doctor...
    szulat napisał:
    to jakiś ciekawy podręcznik
    Nie zwalałbym na podręcznik, ot po prostu niedoinformowanie - czegoś nie doczytano. Skoro program Mirka, to pewnie książka też... ;)

    0
  • #10 25 Lip 2012 14:20
    Asmodat
    Poziom 10  

    Ja oznaczałem 0/1 jako "ptakszki" w programie (mam jego graficzną wersję) - a nie jako właściwe oznaczenia.

    Gdzie oznaczony ptakszek (SPIEN) którego z resztą nie można zmienić to właśnie 0 w rzeczywistości.

    I to (Uproszczone 3-8Mhz zewnętrzne):
    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    I to (Uproszczone >8Mhz + CKOPT opcja oscylatora):
    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    usmażyło mi proce

    0
  • #11 25 Lip 2012 14:20
    LordBlick
    VIP Zasłużony dla elektroda

    To skąd wyczarowałeś te wartości wyżej ?

    0
  • Pomocny post
    #12 25 Lip 2012 14:30
    Tomasz Gumny
    Poziom 27  

    Niekoniecznie - niektóre programatory posługują się zanegowaną symboliką. Tylko w takim wypadku trzeba również negować te, które się samodzielnie ustawia.
    Z tego co widzę ATMEGA8 ma fabrycznie ustawione fusebity na 0xD9E1, czyli:
    1101|1001|1110|0001
    Skoro po odczytaniu masz najstarszy bit (RSTDISBL) równy 0, to również inne bity powinieneś wpisywać jako zanegowane.

    Dodano po 7 [minuty]:

    Asmodat napisał:
    I to:
    I to:
    usmażyło mi proce

    Daj sobie spokój z ptaszkami. ;)
    Na dole okna programatora są wyświetlane fusebity bajtowo:
    0xD9FD
    0xC9FF
    Rozpisz je na bity i sprawdź co ustawiłeś źle.

    0
  • #13 25 Lip 2012 14:33
    LordBlick
    VIP Zasłużony dla elektroda

    No i tak najsolidniejsza forma dostępu do wiedzy się sprowadza do avrdude i noty katalogowej, bez pośredników... ;)

    Asmodat napisał:
    usmażyło mi proce
    To nie prawda, dla mnie to są w pełni sprawne procesory - mam AVRDragona.

    0
  • #14 25 Lip 2012 14:41
    Asmodat
    Poziom 10  

    Pierwsze 2 wartości są z podręcznika Paweł Borowski AVR & ARM7, str 184, tabele 8.2 "Ustawienia bitów konfiguracyjnych oscylatora wewnętrznego i zewnętrznego"

    CKOPT: 1
    CKSEL3..0: 0111
    ;-----------------
    CKOPT: 0
    CKSEL3..0: 1000

    Jeśli tak się ustawi, biorąc pod uwagę, że "ptaszek" to 0, a brak "ptaszka" to proc nie umarł, ale też nie działa prawidłowo - zamiast napisu pojawiają się śmieci na ekranie wyświetlacza.

    0
  • #15 25 Lip 2012 14:44
    mirekk36
    Poziom 42  

    Asmodat napisał:

    I to (Uproszczone >8Mhz + CKOPT opcja oscylatora):
    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz


    Ja się tak zastanawiam, jest w tym programie taka SUPER zakładka o nazwie "Fusy uproszczone" Sam się posługuję nią na co dzień. Bo NIE MA MOŻLIWOŚCI aby przy jej pomocy zablokować procka. A ty się bawisz na własne życzenie w jakieś tam ustawianie bitów w poszczególnych bajtach. Toż skorzystaj z dobrodziejstw tego programu. Zobacz sam jak wygląda ta zakładka którą mogłeś się posłużyć i nie miałbyś NAJMNIEJSZEGO problemu. Polecam ci ją:

    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    Spróbuj chociaż raz - jeden raz ;)

    Dodano po 44 [sekundy]:

    Aha i pobierz sobie najnowszą wersję - bo posługujesz się starą "build 57" ... tu masz LINK do nowej.

    0
  • #16 25 Lip 2012 14:49
    Asmodat
    Poziom 10  

    Obrazk, które wysłałem - są własnie z "fuse uproszczone", tylko pokazałem jak to wygląda na manualach.

    Po zrobieniu tak jak pokazałeś:
    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    Właśnie zepsułem mojego 5 i ostatniego proca... dzięki teraz już nawet nie ma po co tematu prowadzić dalej, szkoda tylko 25 złotych z własnej głupoty. Może to trzeba być magistrem inżynierem, żeby takie rzeczy robić.

    0
  • #17 25 Lip 2012 14:59
    szulat
    Poziom 23  

    Asmodat napisał:
    Właśnie zepsułem mojego 5 i ostatniego proca...

    skoro bity dobrze ustawione ale nie działa to raczej oznacza że jest spieprzona płytka a nie procesor... dobra wiadomość jest taka że płytki naprawia się łatwiej niż atmegi :D

    0
  • Pomocny post
    #18 25 Lip 2012 15:06
    Tomasz Gumny
    Poziom 27  

    Przy 0xD9FF chyba powinien działać.
    Wrócę do kwarcu: czy zworki JP2/3 są poprawnie włożone?
    Czy nic nie jest podłączone do PB6/7?

    0
  • #19 25 Lip 2012 15:17
    Asmodat
    Poziom 10  

    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    Na obrazku to co się dzieje po zaprogramowaniu ostatniego proca.
    Tak jak widać zworki są.
    Atmega trup i nie da się z nią już nic zrobić, bez żadnych kombinacji z zewnętrznym taktowaniem

    A na 8Mhz wewnętrznie było bez problemu.
    (15 sek wcześniej)

    [Atmega8] - Nie można ustawić zewnętrznego oscylatora 8 Mhz

    Na PB I PC mam wyświetlacz
    Może to to, że to atmega8A i coś się zmieniło od czasu jej pierwszej wersji ?

    0
  • #20 25 Lip 2012 15:42
    LordBlick
    VIP Zasłużony dla elektroda

    A nie jest to przypadkiem kwestia zwarcia ? Jakie masz kondensatory przy rezonatorze ?

    0
  • #21 25 Lip 2012 16:20
    Asmodat
    Poziom 10  

    Dokładnie takie jak były w zestawie: http://www.btc.pl/pdf/zl2avr.pdf

    27 pF

    Mogę jeszcze wlutować inny oscylator, bo mam trochę takich:
    http://www.tme.eu/pl/details/8.00m-hc49sr/rez...we-tht/iqd-frequency-products/lf-xtal003156/#

    może będą lepsze niż ten CQ8.000 ?

    ...

    przelutowałem - efekt taki sam, udało mi się jednak uratować też jeden z porocków - zdjąłem zworki i programator go "znalazł" - udało mi się też go zaprogramować - jak wcześniej zgodnie z książką i w sumie proc działa, tyle że zamiast napisu pojawiają się losowe znaki. Do tego wydaje się jakby wolniej pracował.

    Jednak ustawienie lockbitów nie-manualnie mkAVR Calculatorem na pewno skończy się zepsuciem procka na stałe.

    0
  • Pomocny post
    #22 25 Lip 2012 17:06
    Tomasz Gumny
    Poziom 27  

    Asmodat napisał:
    Na PB I PC mam wyświetlacz
    PB6/7 to XTAL1/2. Ustawiając fusebitami zewnętrzny rezonator wyłączyłeś te piny dla portu PB - stąd śmieci na wyświetlaczu. Z kolei podłączenie równolegle z kwarcem pinów wyświetlacza blokuje wewnętrzny oscylator - stąd problemy z taktowaniem procesora.

    0
  • #23 25 Lip 2012 17:08
    Asmodat
    Poziom 10  

    Tyle, że nawet jak wyjmę wyświetlacz, to nie da się proca zaprogramować, a śmieci pojawiają się niezależnie od tego czy zworki są włożone, czy nie - tak jakby wcale nie jechał na zewnętrznym rezonatorze.

    Ale zaraz przełożę wyświetlacz na PD i spróbuję od nowa.

    ......

    No tak teraz działa :D , wielkie podziękowania dla pana Tomasza

    Ale trzeba dać ustawienie takie:
    (wszystkie ptaszki CKSEL I CKOPT odznaczone)
    CKSEL3...0: 1111
    CKOPT: 1

    Inne nic nie dają.

    0