Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

zewnętrzny kwarc w Atmega8, Bascom, fusebits...

francu 27 Mar 2006 19:02 17129 17
  • #1
    francu
    Level 16  
    Witam.

    Wykonałem mały zestaw uruchomieniowy z procem atmega8 z kwarcem 8MHz. Kwarc nie jest chyba jednak "widziany" przez proca. Pod ikoną Run programmer->Manual program w Bascom jest zakładka Fuse and Lock bits. Mogę tam ustawić rodzaj i częstotliwość oscylatora. Standardowo Fusebit 987 jest ustawiony jako 1MHZ RC.

    Chcąc korzystać z zewnętrznego kwarcu 8MHz powinienem ustawić "1110:1110 external XTAL" czy "1111:1111 external XTAL" ?? Później chciałbym korzystać z kwarcu 10MHz. Jakie ustawienie będzie pasować??

    Mogę to ustawić gdzieś na stałe w Bascomie czy podczas każdego programowania??

    Pozdrawiam.
  • Helpful post
    #2
    maly35
    Level 13  
    Jak raz ustawisz fuse bits to dopóki ich nie zmienisz pozostaną takie jak ustawiłeś (programowanie procesora ich nie zmienia). Jak je poustawiać znajdziesz tutaj (fajnie bo graficznie pokazana na PonyProg):

    http://www.tkdami.net/~voytek/programy/programy.html

    Jest to dla ATmega16 ale dla ATmega8 jest to samo. Lepiej o nich trochę poczytać bo jak się nakombinuje to potem może procek niewystartować:cry:
  • #4
    hunterhouse
    Level 26  
    oprucz tego proponuje włączyć opcje "FULL AMPLITUDE" to jest jeden z fuse bitów(niestety niepamiętam jak programator bascoma dokładnie go nazywa). poprawia on stabilnośćprocka na wyższych czestotliwościach, kosztem zwiększonego poboru prądu.
    dla 10Mhz nie jest to mzoę konieczne ale dla 16 to już zawsze chba trzeba.
  • Helpful post
    #5
    ArtXs
    Level 22  
    NAJPIERW PRZECZYTAĆ A PÓŻNIEJ ROBIĆ - NIE ODWROTNIE.

    Aby dokonać zmiany ustawienia kwarcu z wewnętrznego RC 1 MHz na zewnętrzny ( np.8MHz). Trzeba przejść do programowania ręcznego procesora MANUAL PROGRAM i wybrać zakładkę LOCK AND FUSE BITS. UWAGA w razie pomyłki można nie odpalić procesora!!!

    ATmega8

    CKSEL[3..0] - Fusebits opcję Fusebit A987 - 0001:Internal RC oscylator 1 MHz
    Zmienić ustawienia na – 1111:1111 external XTAL.
    Po tej zmianie zatwierdzić ją przyciskając JEDEN RAZ przycisk po prawej stronie [WRITE FS].

    CKOPT - Fusebits High opcję Fusebit H – 1:CKOPT 1
    Zmienić ustawienia na – 0:CKOPT 0
    Po tej zmianie zatwierdzić ją przyciskając JEDEN RAZ przycisk po prawej stronie [Write FSH].
  • #6
    francu
    Level 16  
    No to coś się nie zgadza.

    Z linka podanego przez maly35 wynika, że jeśli ustawię CKOPT=1 i CKSEL[0...3]=1111 to mogę podłączyć kwarc max 8MHz. Jeśli ustawię CKOPT=0 to mógłbym podłączyć kwarc o wyższej częstotliwości.

    Z postu ArtXs wynika co innego.

    Jak to naprawdę jest??
  • #7
    hunterhouse
    Level 26  
    CKSEL[3..0] = 1111
    to jest pewne

    a co do CKOPT to w nocie katalogowej piszą:
    Quote:
    For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed

    programed to znaczy 0
    unprogramed znaczy 1

    czyli dla 10Mhz CKOPT=0
  • #8
    francu
    Level 16  
    To znalazłem.

    Właśnie w bascomie ustawiłe fusebity i proc się zblokował:/
    CKSEL ustawiłem na 1111, CKOPT był wcześniej na 1 i nie zmieniałem.

    Teraz nie chce czytać proca ani programować:(

    Ps.
    Podobno mozna odblokować programatorem równoległym?? Co to takiego?? Ma ktoś schemat??
  • #9
    hunterhouse
    Level 26  
    sprawdz połączenia kwarcu z uP. kwarc musi być blisko procka i musą być 2 kondensatory do masy (z zakresu 22pF-33pF).

    jaki masz programator ??? niektóre ISP mają opory przy duzych czestotliwościach kwarcu.

    ADD:
    jeśli zmieniałeś tylko fusebity od kwarcu to wystarczy zewnętrzne żródło sygnału zegarowego np inny procek z zewnętrznym kwarcem lub generator.
    sygnał podaje sie na Xtal1.

    ja zawsze łaczyem dwa procki.
    Xtal2(sprawnego procka) >> Xtal1(zablokowany procek)
    sprawny procek musi miec podpięty kwarc i go wykozystywać a zablokowany musi byc odpięty kwarc.
    połączenie mozna zrobić przez jakis mały kondensator lub rezystor (ja zawsze łączyłem bezpośrednio).
    oba procki muszą być zasilane ze wspólnego zasialnia i przewód mostkujący musi byc jak najkrótszy
  • #10
    1ceman
    Level 12  
    ArtXs wrote:
    CKOPT - Fusebits High opcję Fusebit H – 1:CKOPT 1
    Zmienić ustawienia na – 0:CKOPT 0
    Po tej zmianie zatwierdzić ją przyciskając JEDEN RAZ przycisk po prawej stronie [Write FSH].

    Zrobiłem dokładnie tak jak pisze ArtXs i wszystko ślicznie śmiga (podłączyłem 8MHz, nie wiem jak z kwarcami powyżej tej częstotliwości).
    Mam tylko pytanie odnośnie tego co zacytowałem powyżej. Co ustawia ta opcja i czy konieczna jest ta zmiana? Na stronie Bascoma jest tutorial jak ustawiać zewnętrzy kwarc i tam zmieniane jest tylko ustawienie Fusebit A987 na same jedynki. Z tym, że z wiadomości francu wynika, że bez tej zmiany kontroler sie blokuje.
    francu wrote:
    To znalazłem.
    Właśnie w bascomie ustawiłe fusebity i procesor się zblokował:/
    CKSEL ustawiłem na 1111, CKOPT był wcześniej na 1 i nie zmieniałem.
    Teraz nie chce czytać proca ani programowaćSad
    Ps.
    Podobno mozna odblokować programatorem równoległym?? Co to takiego?? Ma ktoś schemat??

    Ja zablokowałem niedawno w identyczny sposób dwie ATmegi8.
    W dokumentacji do ATmegi8 można znaleźć układzik do odblokowania. W załączniku masz ten układ wraz z wartościami kondensatora i rezystora, które u mnie zadziałały. Wartość rezystora musisz sobie dobrać doświadczalnie, u mnie z braku rezystora ok. 1k połączyłem dwa o wartościach jak na rysunku :)
    Powodzenia.
  • #11
    krzychu-gsxr
    Level 9  
    Witam wszystkich ja mam identyczny problem z fusami chciałem zaprogramować w bascomie ATMEGE8L z rezonatorem 8MHz przestawiłem fuse na 1111:1111 i zapisałem po zaprogramowaniu weryfikacja nie powiodła sie.
    Teraz jak chce programować to wyświetla sie komunikat że nie można zidentyfikować mikrokontrolera może ktoś powie co zrobiłen źle? dzięki
  • #12
    1ceman
    Level 12  
    Cześć
    Oprócz tego ustawienia:
    ArtXs wrote:
    CKSEL[3..0] - Fusebits opcję Fusebit A987 - 0001:Internal RC oscylator 1 MHz
    Zmienić ustawienia na – 1111:1111 external XTAL.
    Po tej zmianie zatwierdzić ją przyciskając JEDEN RAZ przycisk po prawej stronie [WRITE FS].

    ...czy zrobiłeś również to?
    ArtXs wrote:
    CKOPT - Fusebits High opcję Fusebit H – 1:CKOPT 1
    Zmienić ustawienia na – 0:CKOPT 0
    Po tej zmianie zatwierdzić ją przyciskając JEDEN RAZ przycisk po prawej stronie [Write FSH].


    Pamiętaj, że rezonator musi być podłączony w trakcie zmiany fusebitów!!

    Odblokować swoją ATmege możesz stosując układ RC, który narysowałem w poprzednim poście.

    Pozdrawiam.
  • #13
    krzychu-gsxr
    Level 9  
    dzięki 1ceman zmieniłem fusy tak jak pisałes i wszystko ruszyło pozdrawiam
  • #14
    grabek_radek
    Level 21  
    witam
    zmienilem ustawienia na – 1111:1111 external XTAL. raz na [WRITE FS]

    ale zapomnialem przestawic CKOPT - Fusebits High opcję Fusebit H – 1:CKOPT 1
    na – 0:CKOPT 0 i sie zablokopwac czy ta metoda pomoze ??
    bo jakos narazie nic, a jak odblokowac przez inny procek??

    jest udalo sie !!!!

    troszke inaczej to zrobilem do programatora dolaczylem kwarc zewnetzny 8MHz i kondensatory 27 pF i dziala :)
  • #15
    fiskusmati
    User under supervision
    Ja zmieniam fucy w nowym procku tak jak pisaliscie ale jak zmienie i klikam to write fs potem write fsh to po zaprogramowainu procka ustawiani wracają do poprzedniego stanu i zeby w rzeczywistosci dac sekunde prockowi to musze pisac waitms 180 i mam sekunde :-)
  • #16
    dawid512
    Level 32  
    Temat stary jak świat. Przykładowe ustawienie: External Crystal Resonator High Frequency CKSEL 1111 SUT 00. To jest ustawienie dla kwarcu 8MHz. Kla kwarcu powyżej 8MHz należy również zaprogramować CKOPT (CKOPT = 0).
  • #18
    fiskusmati
    User under supervision
    Znów odnowie temat, po zmianie fuse bitów i podłączniu kwarcu 8mhz na lcd w obu liniach sa kwadraty, a przed zmianą były tylko w jednej linii. Przypominam ze procek jest nowy.


    Pozdrawiam