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 - Wybór kwarcu do komunikacji po UART, I2C, SPI

bochnio 26 Cze 2013 22:08 3177 14
  • #1 26 Cze 2013 22:08
    bochnio
    Poziom 13  

    Cześć,

    buduję urządzenie z użyciem ATmegi8, które będzie używało 3 interfejsów komunikacyjnych - UART, I2C, SPI. ATmega8 będzie komunikować się z innym procesorem (ARM) + kolejną ATmegą, która to z kolei będzie nadawać po SPI z innym urządzeniem ;) tak czy owak muszę wykorzystać 3 interfejsy. Treść pytania jest taka:

    Jaki kwarc wybrać? Kupiłem 14.318Mhz bo poczytałem, że taki jest dobry. Czy nie wygodniej będzie mi pozostać przy wbudowanym rezonatorze 8Mhz bez zabawy z fuse bitami (uprości to również płytkę)? A może do wykorzystania tych interfejsów preferowanym kwarcem będzie jakiś inny?

    Dzięki wszystkim specjalistom za pomoc, pozdrawiam.

    0 14
  • Pomocny post
    #2 26 Cze 2013 22:14
    tmf
    Moderator Mikrokontrolery Projektowanie

    I2C i SPI nie wymagają kwarcu, gdyż są to interfejsy synchroniczne. Z kolei USART na wbudowanym RC z M8 może nie działać i taka konfiguracja jest niezalecana. Więc kwarc musi być. Jaki? To ma mniejsze znaczenie, zawsze dobierzesz podział na ARM i AVR tak, aby błąd był możliwie mały. Z drugiej strony w cenie ATMega8 kupisz sobie np. XMEGA32E5, która ma tyle samo wyprowadzeń, jest ciut droższa (chyba, że kupisz gdzieś XMEGA8E5), ale za to USART może być taktowany w wewnętrznego generatora i kwarc jest niepotrzebny.
    Z ciekawości - po co aż tyle procków?

    1
  • #3 26 Cze 2013 22:39
    bochnio
    Poziom 13  

    Robię urządzenie, które może działać w kilku trybach. Im bardziej skomplikowany tryb pracy tym dochodzą nowe możliwości, nowe płytki, nowe procki ;P będzie składało się w minimalnej wersji z jednej płytki, a maksymalnie z 3 i na każdej procek :)

    Dzięki za pomoc, dam ten kwarc co kupiłem.

    0
  • Pomocny post
    #4 26 Cze 2013 22:59
    BlueDraco
    Specjalista - Mikrokontrolery

    Jeśli twoje urządzenie ma dekodować sygnał chrominancji TV analogowej (PAL, NTSC), to ten kwarc jest w sam raz. Do wszelkich innych celów potrzebujesz albo kwarcu "transmisyjnego" (o ile masz mieć komunikację po RS232 z jedną z typowych szybkości), abo "okrągłego" (jeżeli masz np. USB lub musisz odmierzać czas w ludzkich jednostkach).

    "Transmisyjne", to np. 1.8432 MHz lub wielokrotność - 7.3728, 22.1184.
    "Okrągłe", to np. 8 MHz lub 12 MHz.

    0
  • #5 27 Cze 2013 10:25
    bochnio
    Poziom 13  

    Czyli podsumowując 14.318Mhz nie da się zastosować do bezstratnej komunikacji po UART?

    0
  • Pomocny post
    #6 27 Cze 2013 11:18
    BlueDraco
    Specjalista - Mikrokontrolery

    Czasem się da - kiedy nie używasz standardowych szybkości transmisji albo kiedy szybkość jest niewielka i błąd wnoszony przez kwarc "ni w pięć ni w dziewięć" wynosi poniżej 2% albo kiedy oba komunikujące się urządzenia mają taką samą częstotliwość kwarcu.

    0
  • #7 27 Cze 2013 14:52
    bochnio
    Poziom 13  

    A jaki proponujesz kwarc do ATmegi8 żeby komunikacja była najszybsza i najmniej stratna??

    0
  • #8 27 Cze 2013 16:01
    tmf
    Moderator Mikrokontrolery Projektowanie

    Jeśli ta transmisja RS ma być pomiędzy dwoma prockami, które są taktowane kwarcem o tej samej częstotliwości, lub wielokrotnością to problemu w ogóle nie ma, bo błąd po obu stronach będzie taki sam i się zniesie. Jeśli chodzi o transmisję do PC to po prostu policz błąd dla wybranej szybkości i sprawdź czy mieści się w tolerancji.
    BTW, wspomniana XMEGA ma generator frakcyjny dla USART, więc można zastosować dowolny kwarc i tak sobie przy pomocy generatora frakcyjnego można z tego zrobić pożądaną szybkość transmisji. Podobne ustrojstwa zapewne mają też ARMy.

    0
  • #9 27 Cze 2013 16:07
    bochnio
    Poziom 13  

    Między dwoma prockami, więc mogę używać wewnętrznego rezonatora w dwóch ATmegach i będzie dobrze działało, jeśli w obu będzie 8Mhz czy tam 1Mhz standardowo? :)

    0
  • #11 27 Cze 2013 16:43
    bochnio
    Poziom 13  

    W takim razie zastosuję kwarc będący wielokrotnością 1.8432 MHz np: 14,7456 ew 7.3728 (w zależności od wersji ATmega/ATmegaL), wtedy nie będzie problemu ani w komunikacji z PC ani między prockami ;)

    Dziękuję wszystkim za pomoc.

    0
  • #12 27 Cze 2013 17:02
    tmf
    Moderator Mikrokontrolery Projektowanie

    Jeśli to dwie ATMegi, to możesz zastosować dowolny kwarc, byle w obu taki sam. RC z przyczyn o których kolega piotrva wspomniał odpada.

    1
  • #13 27 Cze 2013 17:08
    bochnio
    Poziom 13  

    Oczywiście w granicach możliwości ATmegi, to jest 16Mhz :)

    0
  • #15 28 Cze 2013 10:53
    bochnio
    Poziom 13  

    Dziękuję wszystkim za pomoc, myślę, że temat wartościowy - zamykam :)

    0