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

STM32F4-Discovery i 8-bitowy przetwornik DAC

Kubald 02 Wrz 2012 12:51 5445 6
  • STM32F4-Discovery i 8-bitowy przetwornik DAC

    Autor w końcu znalazł nieco czasu, aby poeksperymentować z płytką STM32F4-Discovery, którą kupił jeszcze w zeszłym roku. Jak w przypadku innych mikroprocesorów, naukę dobrze jest zacząć od obsługi pinów GPIO.

    Ponieważ na płytce STM32F4-Discovery wyjścia zorganizowane są w dwu dwurzędowych złączach, nie można jej bezpośrednio wpiąć w płytkę stykową ze względu na zwarcie sąsiednich wyprowadzeń. Dlatego też autor zbudował adapter dla płytki ewaluacyjnej, wyprowadzając na pięć jednorzędowych złącz szpilkowych piny poszczególnych portów, od PORTA do PORTE, zorganizowane następująco:
    3V3 GND P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 GND 5V0
    Jako że każde złącze ma 20 szpilek, można użyć standardowego kabla IDE do połączenia adaptera z płytką stykową.

    STM32F4-Discovery i 8-bitowy przetwornik DAC

    Aby przetestować działanie układu, autor użył równoległego przetwornika D/A, którego stosunkowo łatwo „okiełznać”. Procesor STM32F4 został połączony z układem AD5330 przy użyciu 8-bitowej szyny danych. Do podstawowej kontroli pracy przetwornika D/A potrzebne jest 9 pinów mikrokontrolera – 8 dla danych i jeden do sterowania układem. Układ AD5330 pracuje z niebuforowanym, ustalonym na napięcie zasilania, napięciem odniesienia Vref i ze wzmocnieniem wyjściowym wynoszącym jeden.

    Poniższy kod pokazuje, jak generować sinusoidę o częstotliwości 60 Hz z 256 próbek, używając metody bit-bang. Ponieważ ze swej natury sinusoida jest symetryczna, wystarczy w pamięci procesora zapisać wartości odpowiadające zakresowi od 0 do π/4. Wartości z zakresu [π/4, 2π] zostaną wygenerowane przez odpowiednie przesuwanie zapisanego fragmentu sinusoidy o π/4.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Jak widać, kod jest całkiem prosty. Ogólnie, aby użyć któregokolwiek pinu GPIO procesora STM32F4, należy najpierw odblokować zegar dla tego portu. Następnie należy ustawić funkcje (wejście/wyjście) dla pinów. Rejestry BSRRH i BSRRL są używane do zmiany stanu pinów. W podprogramie write() dane dla DAC są wystawiane na 8 niższych pinów portu D, a następnie na wejście WR przetwornika jest podawana 1, aby ustalić napięcie na jego wyjściu. W zależności od szybkości użytego przetwornika może być wymagane opóźnienie pomiędzy podawaniem kolejnych danych.

    Wykorzystując 256 próbek, wyjściowa sinusoida jest całkiem „gładka”, jak można zobaczyć poniżej.

    STM32F4-Discovery i 8-bitowy przetwornik DAC

    Źródło

    Fajne? Ranking DIY
    O autorze
    Kubald
    Poziom 15  
    Offline 
    Specjalizuje się w: spektroskopia exafs/xanes, uc, it
    Kubald napisał 188 postów o ocenie 112. Mieszka w mieście Kraków. Jest z nami od 2004 roku.
  • #2 11272681
    kocur_90
    Poziom 12  
    No to się zaczęło publikowanie "hello_led'ów" na STM32. Nie widzę nic odkrywczego w tym "projekcie", choć może przyda się zwycięzcą konkursu który niedawno miał miejsce.
  • #3 11273091
    MrDarkenRahl
    Poziom 13  
    I bardzo dobrze. Dla nas, początkujących, takie artykuły są bardzo cenne, mimo że doświadczonym użytkownikom wydają się śmieszne i oczywiste ;).
  • #4 11273101
    kocur_90
    Poziom 12  
    Mi jako początkującemu większy problem zrobiło utworzenie projektu w keilu ;)
  • #6 11273203
    kocur_90
    Poziom 12  
    Nie ta seria procesorów ;) Autor ma F4 a do wygrania było F0
  • #7 11277311
    zygfryd.W
    Poziom 20  
    Co nie zmienia faktu że funkcjonalność podobna a ja stałem się posiadaczem jednej sztuki, czekam aż do mnie trafi:)
REKLAMA