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

AVR Xmega128 - Sygnał CLKOUT

JohnCTN 04 Cze 2013 18:45 1260 5
  • #1 04 Cze 2013 18:45
    JohnCTN
    Poziom 17  

    Witam. Mam taki mały problem, opisze go w kilku zdaniach.

    Xmega jest taktowana zewn. kwarcem 16MHz, chciałbym przy pomocy mikrokontrolera za pomocą RC32M generować 2 częstotliwości wyjściowe na CLKOUT, częstotliwości są kosmicznie dziwne i zależy mi na tym aby były dokładnie takie lub jak najbardziej zbliżone.

    1,023 MHz
    0,985 MHz

    Ktoś podsunął mi pomysł jak uzyskać 1,023 MHz i można to zrobić tak:
    ustawić RC32M na 44 MHz, prescaler licznika na 1, TOP licznika na 43, i generował pwm 50%. Wyjdzie wtedy troszkę ponad 1,02325 MHz

    natomiast gorzej mi wyszło z 0,985MHz... bo wygląda to tak:

    RC32M na 54MHz, a TOP licznika na 55. i wychodzi 0.98181 MHz.

    może ktoś będzie miał lepsze rozwiązanie :)

    A i jeszcze mam takie pytanie odnośnie pracy Xmega128, ten mikrokontroler może pracować z częstotliwością 32MHz, ale jak spojrzałem w specyfikacje to się okazuje ze kwarc podpinany do XTAL1 i XTAL2 to 16MHz. i teraz mieszając preskalerami aby wydobyć interesujące mnie częstotliwości musze to zrobić tak aby zachować taktowanie pracy mikrokontrolera na 32 MHz, wiec czy tak da się zrobić ?

    0 5
  • Arrow Multisolution Day
  • #2 04 Cze 2013 21:52
    tmf
    Moderator Mikrokontrolery Projektowanie

    Żeby uzyskać na kwarcu więcej niż 16 MHz trzeba użyć PLL.
    Co do twoich pomysłów z RC32M, to oczywiście można je przetaktować na więcej, tylko nie rozumiem jak się to ma do zewnętrznego kwarcu? Czy chcesz je stabilizować przy pomocy DFLL?
    Może tak - kwarc na 1,023*0,985*10 MHz (10,07655 MHz) - chyba na zamówienie, zrobić z tego PLL *20 i potem masz dzielniki dla timera 197 - da ci 1,023 MHz i 205 co da ci 0,9830 MHz.
    Albo inaczej - RC 32 MHz przeciągnięty przy pomocy DFLL stabilizowanego kwarcem na 32,24496 - wtedy masz dla PLL 25 także 201,531 MHz do łatwego podziału.

    Dodano po 2 [minuty]:

    Oczywiście ponieważ CLKPER jest powiązany z CLKCPU nijak nie utrzymasz taktowania 32 MHz dla rdzenia, ale będziesz miał ponad 25 MHz.

    0
  • Arrow Multisolution Day
  • #3 05 Cze 2013 00:35
    JohnCTN
    Poziom 17  

    @TMF musze pozostawić sobie taktowanie CPU na 32MHz, wiec czy da rade tak ustawić na RC32M preskalery abym jednak mógł cos mieć chociaż w przybliżeniu ? bo jak nie to pozostaje mi programowalny generator (np. ICS307) lub podłączenie dwóch różnych kwarców a znalazłem właśnie cos co by od biedy się nadawało:

    Kwarc 3,93216 /4 = 0,98304 MHz
    Kwarc 4,096 /4 = 1.024MHz

    odbiega od oryginału.... ale może nie będzie odczuwalne :)

    0
  • #4 05 Cze 2013 09:04
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie da się. Wszystkie dostępne zegary są co najwyżej wielokrotnością CLKCPU. Ponieważ PLL jest ograniczony do 200 MHz nic sensownego nie wymyślisz, aby na końcu otrzymać 32 MHz dla CPU i te dziwne częstotliwości. Zewnętrzny generator wydaje się jedynym rozwiązaniem.

    0
  • #6 08 Cze 2013 22:00
    JohnCTN
    Poziom 17  

    po co po co ... potrzebne i już :) i dokładnie muszą być takie jak podałem. (ewentualnie mała tolerancja jest tzn. 0,0001MHz - 0,0003MHz)

    Wiec może inaczej.... może jakiś programowalny generator ?

    przyglądałem się ICS307, ale na nim nie da się uzyskać tak niskich częstotliwości, ale za to wersja ICS307-03 potrafi generować sygnał od 0,0002MHz. Tylko nie za bardzo jeszcze rozumiem jak go zaprogramować :)

    może znacie jakieś inne generatory? co możecie mi doradzić ?

    0