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.

Arduino - Arduino i kwarc zegarkowy

mac310 07 Gru 2015 16:18 1485 21
  • #1 07 Gru 2015 16:18
    mac310
    Poziom 11  

    Chciałbym wykorzystać kwarc zegarkowy 32,768kHz z Arduino (docelowo z samodzielnym uC) do generowania sekundowego sygnału, który chciałbym wykorzystać do wywoływania jakiejś funkcji dokładnie np. raz na minutę zamiast korzystać z niedokładnego delay().
    Wyobrażam sobie, że uC pracuje sobie na wewnętrznym oscylatorze, a zewnętrzny (ten zegarkowy) jest użyty jako źródło naliczania impulsów, które jakoś należy zamienić na impulsy sekundowe i w końcu minutowe.
    Nie bardzo wiem jak podłączyć takowy kwarc do mikrokontrolera.
    Nigdy jeszcze nie bawiłem się z kwarcami poza podpinaniem takiego 16MHz do taktowania ATmegi328.

    0 21
  • #2 07 Gru 2015 16:30
    vonar
    Poziom 28  

    mac310 napisał:
    zewnętrzny (ten zegarkowy) jest użyty jako źródło naliczania impulsów, które jakoś należy zamienić na impulsy sekundowe i w końcu minutowe

    Timer2 w trybie asynchronicznym - patrz datasheet, rozdział 17.9 Asynchronous Operation of Timer/Counter2

    mac310 napisał:
    nie bardzo wiem jak podłączyć takowy kwarc do mikrokontrolera.

    8.5 Low Frequency Crystal Oscillator

    0
  • #3 07 Gru 2015 16:39
    tmf
    Moderator Mikrokontrolery Projektowanie

    mac310 napisał:
    Chciałbym wykorzystać kwarc zegarkowy 32,768kHz z Arduino (docelowo z samodzielnym uC) do generowania sekundowego sygnału, który chciałbym wykorzystać do wywoływania jakiejś funkcji dokładnie np. raz na minutę zamiast korzystać z niedokładnego delay().
    Wyobrażam sobie, że uC pracuje sobie na wewnętrznym oscylatorze, a zewnętrzny (ten zegarkowy) jest użyty jako źródło naliczania impulsów, które jakoś należy zamienić na impulsy sekundowe i w końcu minutowe.
    Nie bardzo wiem jak podłączyć takowy kwarc do mikrokontrolera.
    Nigdy jeszcze nie bawiłem się z kwarcami poza podpinaniem takiego 16MHz do taktowania ATmegi328.


    Ale po co tak kombinować? Nie prościej skonfigurować timer do odmierzania 1s czy 60 s odcinków czasu i porzucić delay? Jeśli układ taktujesz kwarcem to będzie to nawet bardziej dokładne niż kwarc zegarkowy.

    1
  • #4 07 Gru 2015 16:45
    mac310
    Poziom 11  

    No właśnie nie wiem. Miałem wrażenie, że wewnętrzny oscylator 8MHz jest mało dokładny i na robienie zegara się nie nadaje. Ten impuls co 1 minutę ma być dokładny (na ile to możliwe) bo będzie robił za swego rodzaju zegar. Teraz używam moduł RTC ale chciałem go wyeliminować bo robi tylko za wskaźnik kiedy sekunda będzie równa 0 co wywoła stosowną funkcję. To trochę chyba jak strzelanie z armaty do muchy.

    -1
  • #5 07 Gru 2015 20:08
    tmf
    Moderator Mikrokontrolery Projektowanie

    Owszem, wewnętrzny generator nie jest zbyt dokładny, lecz jeśli dasz zewnętrzny kwarc, z którego będziesz taktował MCU to już będzie ok. Zabawa w kwarc zegarkowy i asynchroniczne taktowanie timera ma sens, jeśli będziesz usypiał MCU w celu oszczędzania energii.

    -1
  • #6 07 Gru 2015 20:24
    mac310
    Poziom 11  

    Jeśli na zewnętrznym kwarcu np. 16MHz miałoby być dokładniej to w takim razie na Arduino powinno to działać dokładnie bo tam takowy kwarc jest użyty. Zatem jeśli użyję funkcji timera na Arduino to jak piszesz powinno wyjść dokładne minutowe taktowanie?

    0
  • #7 07 Gru 2015 21:08
    tmf
    Moderator Mikrokontrolery Projektowanie

    Trzeba policzyć odpowiednio preskaler i wartość do której ma zliczać timer. Ale generalnie powinno być dokładnie. Dokładniej niż na kwarcu zegarkowym.

    1
  • #8 07 Gru 2015 21:24
    mac310
    Poziom 11  

    Czyli muszę pozgłębiać temat timerów i preskalerów...
    Rozumiem, że jak to wdrożę, to na tym samym układzie da mi to większą dokładność niż funkcja delay(1000*60)?
    Czy niedokładność użycia delay wynika tylko z tego, że jak delay czeka sobie minutę, następnie wykonuje się jakaś funkcja i wracam do kolejnego delay to czas wykonania funkcji dodaje się do tej minuty i kolejny raz funkcja wykona się odrobinę później i tak będzie się nawarstwiało powodując spóźnianie się takiego "zegara"?
    Jeśli tak, to zastosowanie timera nie będzie powodowało tej zwłoki na wykonanie funkcji i następny raz znowu wykona się ona po pełnej minucie nie opóźniając się o czas jej wykonywania?

    0
  • Pomocny post
    #9 07 Gru 2015 21:57
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak, niedokładność czasu delay wynika głównie z tego, że dodaje się do tego czas wykonania innych funkcji, w tym szczególnie funkcji obsługi przerwań. W przypadku odpowiedniego użycia timera tej niedokładności nie ma, a w każdym razie nie akumuluje się ona, tak jak w przypadku delay. Oczywiście jeśli coś ma być wykonywane w superdokładnych odstępach to należy z tego zrobić funkcję obsługi przerwania timera.

    0
  • #10 07 Gru 2015 22:11
    mac310
    Poziom 11  

    OK, dzięki, choć do realizacji praktycznej jak widzę jeszcze dużo wody upłynie. Jak popatrzyłem na opisy przerwań timerów i preskalery to mnie trochę przeraziło. Nie wiem kiedy to uda mi się ogarnąć :(

    0
  • #13 07 Gru 2015 23:22
    mac310
    Poziom 11  

    Raczej nie z baterii bo całość wymaga wyższego napięcia (kilkanaście woltów) do innych układów, więc elektronika dostanie +5V ze stabilizatora. Ze względu na chęć obniżenia temperatury stabilizatora wolałbym jednak ograniczyć prąd elektroniki do minimum. Teraz uC+RTC+mostek H pobierają w sumie ponad 50 mA (niestety używam energochłonnego L293D, który sam pożera ok 40mA) co przy 19V zasilania mocno grzeje stabilizator. Bez radiatora się nie da, a z małym i tak ma pewnie ok. 60 stopni.

    0
  • #14 08 Gru 2015 08:38
    tmf
    Moderator Mikrokontrolery Projektowanie

    Jeśli już musisz stosować muzealne mostki to chociaż zastosuj ciut nowocześniejsze stabilizatory - np. regulator impulsowy będzie miał sprawność koło 80-95%, a potrzebujesz dodatkowo zwykle tylko małą cewkę i diodę.

    0
  • #15 11 Sty 2016 15:00
    mac310
    Poziom 11  

    Chętnie bym zastosował, ale wszystko się rozbija o koszt. 7805 to poniżej 1 zł, a jakiś stabilizator impulsowy plus dodatki zrobią z tego minimum kilkanaście złotych.

    0
  • #18 11 Sty 2016 23:00
    stachn
    Poziom 17  

    Niestety - bardzo dobra ATB-PWR3 redukująca bez ciepła napięcie nawet 40V na 5 lub 3,3 V to niestety koszt obecny wynosi 20.50 zł plus droga wysyłka.
    Ale zasilając układ 7805 napięciem np 24V to musisz albo stopniować redukcję na 12 V a następnie na 5 ( ale też nieźle grzeje albo dać jakiś potężny radiator. A to też niemałe koszty no i gabaryty zwiększysz. Ja też potrzebowałem redukcję z 27 V na 5 więc przerabiałem ten temat kilkakrotnie. Nawet z zastosowaniem droższych przetwornic z TME. jednak wróciłem do ww przetwornic. Ale kupiłem ich kilka i mam zapas - a były po 17 zł.

    0
  • #19 11 Sty 2016 23:13
    dondu
    Moderator Mikrokontrolery Projektowanie

    stachn napisał:
    Niestety - bardzo dobra ATB-PWR3 redukująca bez ciepła napięcie nawet 40V na 5 lub 3,3 V to niestety koszt obecny wynosi 20.50 zł plus droga wysyłka.

    Drożyzna straszna, a to tylko układ A8498, który w TME można kupić za 5zł + elementy dodatkowe.

    W Chinach za to kupisz przetwornicę 3A za 0,5$ z dostawą do domu.

    Warto ich kupić więcej, by mieć zawsze "pod ręką".

    Arduino - Arduino i kwarc zegarkowy

    0
  • #20 11 Sty 2016 23:52
    stachn
    Poziom 17  

    No fakt - całkiem o tym zapomniałem. Mam taki ale z jakiegoś powodu leży sobie nieużywany - ale nie pamiętam dlaczego z niego zrezygnowałem. Musze go sprawdzić. Dzięki za przypomnienie :D

    0
  • #21 12 Sty 2016 02:25
    mac310
    Poziom 11  

    Jakoś się zraziłem do ebaya bo kilka rzeczy zamówiłem i przyszła tylko jedna przesyłka. Za dwie inne dostałem zwrot kasy, a ze dwie czy trzy ani kasy, ani towaru.
    Ja na razie przy zejściu z 19V do 5V na 7805 i małym radiatorze mam ok 55 stopni. Tragedia nie jest ale wolałbym mniej.

    0
  • #22 12 Sty 2016 06:20
    stachn
    Poziom 17  

    To masz pecha - ja na ebayu kupuję od 2014 roku i tylko raz miałem zwrot pieniędzy ale to poniekąd była moja wina. A tak zawsze wszystko przychodzi i to sprawne - oczywiście do zabawy się to nadaje - do profesjonalnego zastosowania to trochę strach o jakość. Bo porównując ceny u producenta i na ebayu .. no cóż. Ale warto kupić taniej mając na uwadze możliwość przypadkowego uszkodzenia w trakcie prób.

    0
  Szukaj w 5mln produktów