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

Miernik częstotliwości na ATmega8535, INT0/INT1, UART, dokładność i zakres pomiaru

Karollo_82 06 Maj 2005 13:34 3535 10
REKLAMA
  • #1 1466444
    Karollo_82
    Poziom 15  
    Posty: 181
    Pomógł: 4
    Ocena: 7
    Co myślicie o tym, aby zbudować miernik częstotliwości na mikrokontrolerze w ten sposób: skorzystać z przerwania INT0 lub INT1 i zliczać ilość przerwań w ciągu sekundy i dane przesyłać za pomocą UART do kompa. Jaką dokładność bym uzyskał i jaką maksymalną częstotliwość takiego pomoaru przy kwarcu 16MHz (mam na myśli uC Mega8535). Proszę o Wasze opinie na ten temat.
  • REKLAMA
  • #2 1466798
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    A jak chcialbys w inny sposób (przy pomocy tylko uP) zmierzyc częstotliwość?? ;) Poszukaj na forum bo było sporo o pomiarze częstotliwości... co do zakresu... teoretycznie f(oscylatora)/2... bo przy takiej częstotliwości uP jest w stanie jeszcze zarejestrować zmianę na wejściu licznika...

    Pozdrawiam
  • REKLAMA
  • #3 1467038
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Po co INT ? jeden licznik (Timer/Counter0) lata na przepełnieniu co 1s, a drugi (Timer/Counter1) liczy zewnętrzne impulsy na T1. Zmienia się tylko wartość preskalera dla tego drugiego licznika dla zmiany zakresu pomiaru. jak i tak zakres jest za mały, to doczepiamy, do wejścia T1, 74HCT4040 i jedziemy dalej... ;)
    Pozdr. Light'I
  • #4 1467128
    DmZ
    Poziom 18  
    Posty: 371
    Ocena: 37
    crazy_phisic napisał:
    A jak chcialbys w inny sposób (przy . tylko uP) zmierzyc częstotliwość?? ;) Poszukaj na forum bo było sporo o pomiarze częstotliwości... co do zakresu... teoretycznie f(oscylatora)/2... bo przy takiej częstotliwości uP jest w stanie jeszcze zarejestrować zmianę na wejściu licznika...

    Pozdrawiam


    ja przejżałem okolo 100 stron z tematami i jakoś nic konkretngo na ten temat nie znalazłem. chyba ze źle szukalem, co oczywiście jest możliwe.
  • REKLAMA
  • #5 1467247
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Jeśli chodzi o max częstotliwość, to jak napisano wyżej (o procesorze i ew. dzielniku), jest to kwestia ewentualnego dołączonego na wejściu dzielnika i jego parametrów (no i obwodów wejściowych - wzmacniacza). Z klasycznych układów cyfrowych np. TeTeLe 74F161/163 pracują do 130 MHz, 74LVC163 do 200MHz itd

    Natomiast jeśli chodzi o dokładność to jest to kwestia stabilności i dokładności (skalibrowania) kwarcu. W przypadku typowych kwarców w pełnym zakresie temperatur pracy (np.0-80°C) dryft częstotliwości jest rzędu 20-50 ppm, co oznacza, że szósta cyfra pomiaru jest mało wiarygodna.

    Tak więc oprócz skalibrowania kwarcu np. trymerkami, (które z kolei same wprowadzają dryft), trzeba by jeszcze w jakiś sposób stabilizować temperaturę kwarcu (termostat grzałka na tranzystorku lub na jakimś Peltierze). Oczywiście mówimy o dokładności laboratoryjnej, bo w warunkach technicznych powiedzmy te 10ppm to aż nadto.
  • REKLAMA
  • #6 1467304
    DmZ
    Poziom 18  
    Posty: 371
    Ocena: 37
    oklaskami nagrodzimy śmiałka, który zamieści tutaj kod takiego cuda w C!!!
  • #7 1467378
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Proszę, sonda do pomiaru częstotliwości z PE 7/97.
    Kod w C oraz dodatkowo plik wynikowy w *.hex
    Załączniki:
    • FR_PLUM.rar (7.42 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 1467379
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    DmZ, a może Ciebie nagrodzimy oklaskami... ? :P Co nieco w asm już napisałem tutaj, tyle, że nie wiedzieć czemu, oparłem to na INT... ;) Ten kod wymaga pewnych zmian, jeżeli by miał być do częstotliwościomierza, ale raczej niewielkich, no i do tego procedury wyświetlające. Jako źródło sygnału zegarowego najlepiej użyć scalone generatory kwarcowe.
  • #9 1467382
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    Dodatkowo przystawka do pomiaru częstotliwości do PC z PE 6/98
    Kod oczywiście w C
    Załączniki:
    • PECET.rar (7.88 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 1467638
    DmZ
    Poziom 18  
    Posty: 371
    Ocena: 37
    Light -> :D

    Wygląda na to, że o takie coś chodziło. Teraz ze 2 miechy analizowania i może uda mi sie to uruchomić. :)

    pzdr
  • #11 1467795
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Zwykle projekt to u mnie 3-15 plików źródłowych, w zależności od bloku funkcjonalnego, a tam musiałem wszystko pozrzucac do kupy...

Podsumowanie tematu

✨ Dyskusja dotyczy budowy miernika częstotliwości opartego na mikrokontrolerze ATmega8535 z wykorzystaniem przerwań INT0/INT1 do zliczania impulsów w ciągu sekundy oraz przesyłania danych przez UART do komputera. Maksymalna częstotliwość pomiaru jest ograniczona przez częstotliwość taktowania mikrokontrolera (16 MHz) i teoretycznie może sięgać do połowy częstotliwości oscylatora, czyli około 8 MHz, przy założeniu, że mikrokontroler jest w stanie zarejestrować zmiany na wejściu licznika. Alternatywnie proponowane jest użycie liczników sprzętowych Timer/Counter0 i Timer/Counter1, gdzie jeden licznik generuje przerwanie co sekundę, a drugi zlicza impulsy zewnętrzne na wejściu T1, z możliwością zmiany preskalera dla dostosowania zakresu pomiaru. W przypadku wyższych częstotliwości można zastosować zewnętrzne dzielniki częstotliwości, np. układ 74HCT4040. Dokładność pomiaru zależy głównie od stabilności i kalibracji kwarcu 16 MHz, który może mieć dryft rzędu 20-50 ppm w typowym zakresie temperatur (0-80°C). Dla uzyskania wysokiej dokładności laboratoryjnej konieczne byłoby stabilizowanie temperatury kwarcu, np. za pomocą termostatu lub elementu Peltiera. W dyskusji pojawiły się także przykładowe kody źródłowe w języku C i asemblerze oraz sugestie dotyczące wykorzystania scalonych generatorów kwarcowych jako źródła sygnału zegarowego.
Wygenerowane przez model językowy.
REKLAMA