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

[ATXMEGA128A3] Problem z zewnetrznym kwarcem.

halif 12 Paź 2010 08:30 1560 2
  • #1 8609876
    halif
    Poziom 26  
    Mam problem z obudzeniem zewnętrznego kwarcu przy w/w mikrokontrolerze. Projekt budzi się standardowo na wewnętrznym oscylatorze 2MHz, potem odpalam wewnętrzny 32MHz (ta operacja działa), a potem ustawiam na zewnętrzny kwarc (pod XTALe jest podpięty 16MHz z 2x10pF). I dooopa. Program zamiera. Nie mam debuggera, więc nei wiem na czym dokładnie, ale wygląda, że program staje na while(!(OSC.STATUS & OSC_XOSCRDY_bm));. Nie wiem, czemu nie może wyjść z pętli...
    Kod:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nie wiem czy jeszcze nie powinienem ustawiać prescallerów do działania, chyba nie...

    Ma ktoś z Was jakąś sugestię?[/i]
  • #2 8648744
    kubus_puchatek
    Poziom 18  
    Z praktyki. 128A1. wszystko wskazuje na błąd scalaka. mam dokładnie ten sam problem na 128A1 na szczęście wewnętrzny 32MHz jest wystarczająco dla mnie dokładny. Kod źródłowy ze strony ATMEL-a który pozwala przełączyć na zewnętrzny generator nie działał. Zacząłem analizować i okazało się, że nie zapala się flaga ustabilizowania generatora. sprawdziłem ojszczyloskopem i zewnętrzny oscylator mimo ustawienia flag nie startuje. Kombinacyje ze zmianami kondziorów, dodawaniem rezystora równolegle do XTAL-a itp nic nie dały. Eksperymenty chybił/trafił z softem nic nie dały. Na szkoleniu Atmela organizowanym przez ATMEL z JM sygnalizowałem ten problem, ale miły chłopak z niemiec rozłożył ręce że nic nie wie. Wszystko wskazuje na solidnego babola w budowie kontrolera. Osobiście radzę przełączać na wewnętrzny i odpowiednio syntezę ustawiać.
  • #3 9297911
    halif
    Poziom 26  
    Wszystko działa, zrobiłem układ na zewnętrznym 11.059MHz z mnożnikiem x2 ze względu na 3 szybkie USARTY w projekcie. Kod odpowiedzialny za inicjację zewn oscylatora: całość jeździ na programowym 22.1184MHz

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Głównym problemem było:
    1. najpierw błędy w kalkulacji PLLCTRL
    2. nie włączałem PLL + EXT_OSC

    po tym ruszyło "jak ta lala" :P

    BTW XMegi są boskie. Gdyby tylko były tańsze...
REKLAMA