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

[ATTiny45] Jak zrealizować DAC

Freddy 20 Lis 2009 15:26 1341 6
REKLAMA
  • #1 7285815
    Freddy
    Poziom 43  
    Jak na procesorze ATTiny45 zrealizować 12 bitowy DAC bez zewnętrznego przetwornika ?
  • REKLAMA
  • Pomocny post
    #2 7285932
    pubus
    Poziom 30  
    Soft PWM i filtr wyjściowy...
    To w sumie najmniej elementów... i chyba jedyne wyjście....
    Tylko trochę zabawy z programem...
    Sprzętowy timer do interwałów a resztę programowo...

    Każde inne rozwiązanie wymaga zewnętrznych układów...
  • REKLAMA
  • #3 7285952
    Freddy
    Poziom 43  
    pubus napisał:
    Soft PWM i filtr wyjściowy...
    To w sumie najmniej elementów... i chyba jedyne wyjście....
    Tylko trochę zabawy z programem...
    Sprzętowy timer do interwałów a resztę programowo...

    Każde inne rozwiązanie wymaga zewnętrznych układów...

    Masz jakiś przykład, i kawałek softu, najchętniej bascom :)
  • REKLAMA
  • Pomocny post
    #4 7286035
    pubus
    Poziom 30  
    Nie znam za grosz bascoma...
    Ale ogólnie to tak...

    Pogonił bym go z wewnętrznej PLL (64MHz) na 16MHz...
    To samo z zegarem timera...
    Dzięki temu częstotliwość dla PWM będzie jako taka...
    W zasadzie to sprowadza się to do zrealizowania timera 12-bit...
    W C łatwiej mi pokazać o co chodzi niż pisać esej...

    ISR (TIM1_OVF_vect)
    {
    if(timer_compare==timer_counter) ustaw_pin_H;

    if(timer_counter < 0xFFF) timer_counter++;
    else
    {
    timer_counter=0;
    timer_compare = tmp_timer_compare;
    ustaw_pin_L;
    }
    }

    timer_compare - jak compare match w sprzętowym timerze
    tmp_timer_compare - zmienna na której operujemy poza przerwaniem a jej wartość jest przepisywana tylko po przepełnieniu
    timer_counter - zmienna zliczająca dla naszego timera

    Teraz problem pozostaje taki...
    Tak dobrać zegar dla timer1 żeby częstotliwość wyjściowa była w miarę wysoko a uC wyrabiał się z innymi rzeczami między przerwaniami ale i ich obsługą...

    No to tak mniej więcej o co mi chodziło...
  • #5 7286044
    Freddy
    Poziom 43  
    Tak też może być, potrafię "odczytać C", a jaki dać do tego filtr ?

    ATTiny ma odczytywać sygnał z ADC zamieniać bity i wysyłać na DAC. Częstotliwość sygnału analogowego to około 8 - 12 kHz.
  • Pomocny post
    #6 7286111
    pubus
    Poziom 30  
    RC, LC może coś bardziej rozbudowanego...
    Ale tu już musi się wypowiedzieć ktoś bardziej z tym obeznany...
    Wartości elementów filtra będzie trzeba dobrać do częstotliwości PWM jaką uda Ci się wydusić...
  • REKLAMA
  • #7 7286216
    Freddy
    Poziom 43  
    Dzięki w zasadzie już wiem wszystko, temat zamykam.
REKLAMA