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

Jak zbudować generator prostokątny 1Hz-400kHz z wypełnieniem 50%?

CaMIkaZEe 30 Sie 2007 20:21 3287 10
REKLAMA
  • #1 4233444
    CaMIkaZEe
    Poziom 20  
    Posty: 490
    Pomógł: 13
    Ocena: 9
    Witam!

    Stoi przede mna nielada wyzwanie. Potrzebuje zbudowac generator prostokatny o czestotliwosciach od 1Hz-400kHz. Wypelnienie 50%, procesor w sumie nieistotny, pewnie atmega albo atmelek 892C2051. Chcialbym sie spytac bardziej doswiadczonych kolegow jak oni widza taki projekt. Czy w ogole realny jest/
  • REKLAMA
  • #2 4233652
    mkaczor
    Poziom 16  
    Posty: 97
    Pomógł: 13
    Uzywam µkontrolerow PIC Microchipa. Wg moich szacunkow, przy zastosowaniu kwarcu 20MHz mozna zbudowac taki programowy generator w oparciu o przerwania od timera do ok. 100kHz. Co 5µs w przerwaniu nalezaloby zmienic stan nozki procesora i ustawiac timer. Czesciej juz jest trudno bo w przerwaniu trzeba jeszcze dodatkowo zachowywac i odtwarzac rejestr statusu. Powyzej 100kHz trzeba byloby posilkowac sie sprzetowym generatorem PWM z wypelnieniem 50%. Nie kazdy µkontroler ma taki generator. Jakis maly to np. PIC12F683
  • REKLAMA
  • #3 4233714
    antrykot
    Poziom 20  
    Posty: 470
    Pomógł: 27
    Ocena: 27
    w Atmegach można ustawić timer w tryb CTC - clear timer on compare. Spokojnie można uzyskać takie czestotliwości. Nie wiem tylko jak z rozdzielczością.
    Proponuje spojrzeć do datasheetu któregoś z nich i zobaczyć z czym to sie je.
  • #4 4234887
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Witam
    Każdy Atmel z zegarem 12MHz podoła temu zadaniu w trybie CTC. Jeśli chcesz mieć większą dokładność (rozdzielczość) to musisz znależć kontroler z pętla PLL (np ATtiny45). Zakres nastaw jest ogromny, więc timer musiałby pracowac w kilku trybach. Generalnie napisz do czego ten generator ma być potrzebny i czy zmiany musza być płynne, w jaki sposób wyobrażasz sobie zmianę nastawy itp
    Pozdrawiam
  • REKLAMA
  • #5 4235410
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Po co robić to na kontrolerze? Zwykły układ 555 pracuje właśnie do ok. 400 kHz i może generować przebiegi takie jakie potrzebujesz i nie tylko.
  • #6 4238303
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Hehe,
    Moze po to by całość była stabilniejsza i mniejsza. Wyobrażasz sobie ile trzeba kondensatorów by osiągnąć na NE555 taki zakres częstotliwości? A już nie mówie o wielkości..
    Pozdrawiam
  • REKLAMA
  • #7 4424354
    wicekK1
    Poziom 11  
    Posty: 16
    Ocena: 9
    A taki układzik 8038 - mało elementów zewnętrznych , częstotliwość od prawie 0 do 2 MHz ?
  • #8 4425287
    CaMIkaZEe
    Poziom 20  
    Posty: 490
    Pomógł: 13
    Ocena: 9
    Podstawowym zalozeniem projektu jest mikroprocesor jako jednostka sterujaca. Co do ICLa zapoznalem sie z nim :) Troche przesadziles z tym gornym zakresem 2MHz :P
  • #9 4425335
    lakimen
    Poziom 12  
    Posty: 20
    Witam !
    A ja chcę Ci zaproponować programowy DDS wg pomysłu Jespera Hensena http://www.myplace.nu/avr/minidds/index.htm, który daje się łatwo adaptować na całą rodzinę AVR. W skrajnym przypadku daje się obejść bez przetwornika D/A, w 8-mio nóżkowym ATTiny. Jedyny problem to dość duży jitter, zauważalny na wyższych częstotliwościach. Za to rozdzielczość nastaw ponizej Hz.

    Pozdrawiam
  • #10 4425388
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 138
    Ocena: 31
    Przetwornik D/A do prostokąta...?
    A po kiego grzyba...?
    ATtiny26 ma PLL (64MHz) z której taktować można procesor i Timer1...
    W trybie pwm max 500kHz...
  • #11 4425471
    lakimen
    Poziom 12  
    Posty: 20
    Autor wątku sam wybierze najbardziej odpowiadające mu rozwiązanie, chodzi o to (tak sądze) by miał z czego wybierać.
    Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy budowy generatora prostokątnego o częstotliwości od 1 Hz do 400 kHz z wypełnieniem 50%. Proponowane rozwiązania obejmują wykorzystanie mikrokontrolerów, głównie rodziny Atmega (np. Atmega, Atmelek 892C2051, ATtiny45, ATtiny26) oraz mikrokontrolerów PIC (np. PIC12F683). W trybie CTC (Clear Timer on Compare) w Atmegach można osiągnąć wymagany zakres częstotliwości, choć rozdzielczość i stabilność mogą wymagać zastosowania pętli PLL. Przy wyższych częstotliwościach (powyżej 100 kHz) zaleca się użycie sprzętowego generatora PWM, gdyż programowe generowanie sygnału staje się trudne ze względu na ograniczenia przerwań i czasów reakcji. Alternatywnie, sugerowano użycie układów analogowych, takich jak NE555 (do około 400 kHz) lub generatora funkcji ICL8038, jednak autor projektu preferuje rozwiązanie oparte na mikrokontrolerze ze względu na stabilność i kompaktowość. Wspomniano także o implementacji programowego DDS (Direct Digital Synthesis) według pomysłu Jespera Hensena, co pozwala na dużą rozdzielczość, ale może generować jitter przy wyższych częstotliwościach. Ostatecznie wybór metody zależy od wymagań dotyczących dokładności, stabilności i sposobu zmiany częstotliwości.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA