logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega128] Fuse bits - zew. kwarc 16MHz

sony_1000 03 Mar 2010 15:57 3792 5
REKLAMA
  • #1 7778108
    sony_1000
    Poziom 12  
    Witam,

    po przestudiowaniu 10 stron tematu: "Ustawienia fusebit w mikrokontrolerach AVR FAQ" jeszcze bardziej wszystko się skomplikowało - tzn. moja wiedza na temat przestawiania fuse bitów. Postaram się wytłumaczyć mój tok rozumowania i liczę na odrobinę pomocy z Waszej strony. Ale do rzeczy.

    1. Pracuję na Atmega128. Mam dołączony zew. kwarc o wartości 16MHz i chciałbym go wykorzystać do pracy, ponieważ obecnie pracuję na wew. zegarze, który pracuje z częstotliwością jak wiadomo 1MHz.
    Z dodatkowych informacji: programują z wykorzystaniem programatora ISP, program WinAVR

    2. Z tego co wyczytałem z w/w tematu w FAQ oraz wiadomości z google.pl najprostszym sposobem zmieniania fusebitów jest użycie "kalkulatora" ze strony:
    http://www.engbedded.com/fusecalc/

    Moje ustawienia ze strony:

    [Atmega128] Fuse bits - zew. kwarc 16MHz

    W tym pierwszym okienku nigdzie nie ma zew. kwarcu 16MHz, więc
    zasugerowałem się by wziąc ten ostatni?
    Tylko, że nie wiem czy pola START UP TIME + XY ms ma znaczenie?

    Resztę opcji nie wypełniam/nie ruszam i zostawiam takie jakie są.
    Na dole pojawia mi się ustawienia:

    [Atmega128] Fuse bits - zew. kwarc 16MHz

    I no właśnie. Zaznaczyłem opjcę, które trzeba wpisać w linii komend
    AVRDUDE. Ja to tak rozumiem, że wpisuję w linię komend:
    "AVRDUDE -U lfuse:w:0xff:m
    enter,
    i dalej:
    AVRDUDE -U hfuse:w:0x99:m
    enter
    AVRDUDE -U efuse:w:0xfd:m
    enter"

    z tym, że po wpisaniu w linii komend "avrdude" pojawią mi sie
    zestaw przeróżnych opcji i z tego co widzę pod
    "-U" mam: "Memory operation specifiaction" - także nieścisłość.


    P.S pewnie też nie za duża wiedza w obyciu/pracy z uC sprawiają, że różne tematy które czytałem na temat fuse bitów były za bardzo nie zrozumiałe.
    I stąd ten temat i próba wytłumaczenia mojego toku rozumowania.
    Z góry dziękuję za porady.
    Pozdrawiam.
  • REKLAMA
  • REKLAMA
  • #3 7782672
    rpal
    Poziom 27  
    możesz też sobie zassać darmową wersję CodeVision (ograniczenie kodu do 2KB) i użyć jego wewnętrznego programatora który już takich ograniczeń nie ma moim zdaniem bardzo wygodnie się nim programuje.
  • REKLAMA
  • #4 7783388
    sony_1000
    Poziom 12  
    arktik1 napisał:
    Myślę że powinieneś zapoznać się z tym.
    Ja mam i bardzo sobie chwalę:
    https://www.elektroda.pl/rtvforum/topic1354542-360.html



    Bardzo miło studiowało się te 13 stron.
    Bardzo pomocne. Nie wiem dlaczego wcześniej tego tematu nie zauważyłem - karygodny błąd z mojej strony.

    edit. oczywiście zmiana kwarca wg. w/w programu zakończyła się powodzeniem.
    Jest sposób by jakoś odczytać akutalną częstotliwość taktowania - czy rzeczywiście się zmieniło?
    Jedynie zmieniłem wartość Makefile -> F_CPU 16000000 i podczas wgrywania programu nie wywala mi żaden błąd. Jednak to nie jest rzetelna weryfikacja...
  • REKLAMA
  • #5 7783629
    arktik1
    Poziom 27  
    Tak
    Zamiast ZAPIS zaznacz w programie ODCZYT Fuse...
    Po tej operacji program pokaże ci ustawienia.
  • #6 7784579
    sony_1000
    Poziom 12  
    CKSEL3:0 = 0001

    0 - zaprogramowany
    1 - nie

    więc teoretycznie okey.

    Zaznaczyłem zgodnie z sugestią przy zmianie - CKOPT jednak jak
    widać po odczycie jest on niezaprogramowany?

    Odczytane fusy:
    [Atmega128] Fuse bits - zew. kwarc 16MHz
REKLAMA