Elektroda.pl
Elektroda.pl
X
Prosz, dodaj wyj徠ek www.elektroda.pl do Adblock.
Dzi瘯i temu, 瞠 ogl康asz reklamy, wspierasz portal i u篡tkownik闚.

Analizator Bodego na STM32F407 z p造tki Discovery

ghost666 25 Cze 2018 18:40 2502 1
  • Analizator Bodego na STM32F407 z p造tki Discovery
    Analizator Bodego na STM32F407 z p造tki Discovery
    Analiza urz康zeni w przestrzeni cz瘰totliwo軼i, jest niezwykle istotne dla zbadania wielu jego parametr闚. Poznanie charakterystyki Bodego czy funkcji przej軼ia uk豉du jest dosy prostym pomiarem, kt鏎y zrealizowa mo積a z pomoc zaprezentowanego poni瞠j urz康zenia.

    Jak pokazuje uproszczony schemat po prawej stronie, przez mierzony uk豉d przepuszcza si po kolei przebiegi o r騜nej, liniowo zmieniaj帷ej si cz瘰totliwo軼i. Tego rodzaju sygna o zmiennej cz瘰totliwo軼i nazywany jest chirpem. Gdy cz瘰totliwo嗆 jest powoli zmieniana - dajmy na to z pr璠ko軼i 1 Hz/s - amplituda sygna逝 musi by utrzymywana na sta造m poziomie, aby pomiar by dok豉dny. Jako 瞠 zazwyczaj mierzy si charakterystyk w dosy szerokim zakresie cz瘰totliwo軼i, to trudno jest utrzyma amplitud na jednym poziomie. Dlatego te, jak pokazano na obrazku, ca造 zakres dzieli si na podzakresy. dla wygody pomiaru.

    Generacja sygna逝 i jego pomiar

    Analizator Bodego na STM32F407 z p造tki Discovery
    Generacja przebiegu sinusoidalnego jest dosy prosta, je郵i wykorzystuje si przetwornik DAC i procesor zdolny do operacji zmiennoprzecinkowych. Nale篡 jednak瞠 pami皻a, 瞠 funkcje sin() i cos() z standardowej biblioteki math.h zajmuj strasznie du穎 czasu, poniewa realizuj iteracyjny algorytm obliczania tych warto軼i z dosy wysok precyzj. Zamiast tego, autor konstrukcji wykorzysta tablic - 2048 punk闚 od 0 do 2π - z warto軼iami funkcji sinus. Cz瘰totliwo嗆 pr鏏kowania ADC i DAC wynosi 200 kHz dla ka盥ej mierzonej cz瘰totliwo軼i. Wykorzystanie sta貫j cz瘰totliwo軼i pr鏏kowania istotnie upraszcza dalsze przetwarzanie sygna逝.

    Problemy zaczynaj si w momencie, gdy z stabelaryzowanej funkcji chcemy generowa przebiegi o r騜nej cz瘰totliwo軼i. Dla jednego okresu sinusa, przy cz瘰totliwo軼i pr鏏kowania 200 kHz potrzebujemy:





    * 200 tysi璚y punkt闚 dla cz瘰totliwo軼i 1 Hz
    * 20 punkt闚 dla cz瘰totliwo軼i 10 kHz.

    Oczywi軼ie, zwyk豉 tabela nie da tutaj rady i musimy wykorzysta dodatkowe zabiegi, takie jak liniowa interpolacja pomi璠zy punktami. Je郵i cz瘰totliwo嗆 jest taka, 瞠 mo瞠my dok豉dnie korzysta z tabeli 2048 punkt闚 to z niej korzystamy, ale dla cz瘰totliwo軼i pomi璠zy tymi konieczne jest interpolowanie liniowe z wykorzystaniem warto軼i z tabeli. Dla ni窺zych cz瘰totliwo軼i niekt鏎e punkty z tabeli s po prostu opuszczane.

    Oczywi軼ie mo磧iwe by by這 wykorzystanie zewn皻rznego uk豉du DDS, takiego jak AD9833, jednak瞠 samodzielne generowanie warto軼i sinusa i cosinusa do pomiar闚 jest wygodniejsze, je郵i chodzi o p騧niejsz detekcj fazy i amplitudy. O ile je郵i chodzi o cz瘰totliwo嗆 to przy DDSie nie ma wi瘯szego problemu - mo積a sprawdzi jaka komenda zosta豉 wys豉na poprzez SPI do uk豉du, to nie da si pozna fazy, bez pr鏏kowania sygna逝. A wtedy i tak musimy dobudowa osobny uk豉d, kt鏎y obraca faz o 90 stopnii.

    Analizator Bodego na STM32F407 z p造tki Discovery
    Filtr antyaliasingowy na wyj軼iu DACa

    Wykorzystanie przetwornika DAC jest ca趾iem proste, jedynie co musimy robi to przeskalowa warto軼i od -1 do +1 odczytane z tabeli do warto軼i 2048 (鈔odkowa warto嗆 12 bitowego przetwornika DAC). Jakkolwiek wykorzystanie takiego przetwornika wiele upraszcza, to pami皻a trzeba o pewnych komplikacjach. Po pierwsze, o parametrach DAC decyduje czas stabilizacji jego wyj軼ia. W przypadku uk豉du STM32F407 czas stabilizacji wynosi 3 µs (jak wida na fragmencie karty katalogowej pokazanym po prawej), co przek豉da si na cz瘰totliwo嗆 333,33 kHz - st康 te wyb鏎 200 kHz, jako cz瘰totliwo軼i pr鏏kowania; jest ona bezpieczna i stanowczo w granicy liniowo軼i pracy przetwornika.

    Analizator Bodego na STM32F407 z p造tki Discovery

    Innym czynnikiem, kt鏎y ogranicza dzia豉nie przetwornika jest maksymalna pr璠ko嗆 narastania napi璚ia w wewn皻rznym buforze DACa - w uk豉dzie STM32F407. Je郵i skorzystamy z informacji, jakie zawarte s w nocie aplikacyjnej (pokazanej po lewej stronie) to mo瞠my obej嗆 te ograniczenia. Mo瞠 to pozwoli na uzyskanie cz瘰totliwo軼i pr鏏kowania do 2 MHz, ale tak szybkie pr鏏kowanie ogranicza czas na obliczenia pomi璠zy poszczeg鏊nymi pr鏏kami i przerwaniami.

    Obliczenia poszczeg鏊nych warto軼i zajmuj oko這 4,1 µs. Dlatego te czas pr鏏kowania 200 kHz daje komfortowe warunki pracy - pomi璠zy pr鏏kami jest 5 µs, wi璚 jest dostatecznie du穎 czasu na interpolacj, obliczenie amplitudy i fazy etc.

    Jak wspomniano powy瞠j, przy cz瘰totliwo軼i pr鏏kowania i cz瘰totliwo軼i wyj軼iowego przebiegu r闚nej 10 kHz na ka盥y okres sinusa mamy zaledwie 20 punkt闚. St康, dla wy窺zych cz瘰totliwo軼i (powiedzmy powy瞠j 1 kHz) w sygnale obecne b璠 wy窺ze harmoniczne (parzyste i nieparzyste). Je郵i nie zostan one odfiltrowane, to b璠 one obecne w sygnale wyj軼iowym i w konsekwencji trafi na wej軼ie przetwornika ADC. Aby wyt逝mi obecne w sygnale harmonicznie autor eksperymentowa z r騜nymi pasywnymi filtrami RC i doszed eksperymentalnie do optymalnej cz瘰totliwo軼i granicznej 18 kHz.

    Niestety tak niska cz瘰totliwo嗆 graniczna filtra antyaliasingowego niesie ze sob pewne problemy. Jak pisali鄉y powy瞠j chcemy, aby amplituda wyj軼ia z przetwornika DAC by豉 sta豉 dla wszystkich cz瘰totliwo軼i. Jak wida na pierwszym z pokazanych poni瞠j oscylogramow, filtr 18 kHz powoduje spadek amplitudy dla wy窺zych cz瘰totliwo軼i. Podobnie jest, je瞠li wykorzystamy filtr z cz瘰totliwo軼i graniczn r闚n 45 kHz (drugi oscylogram). Oczywi軼ie, filtry te redukuj harmonicznie, jednak瞠 wprowadzana przez nie nieliniowo嗆 w sygnale, sprawia, 瞠 konieczne jest wykorzystanie filtra anty-aliasingowego o wy窺zej cz瘰totliwo軼i. W ten spos鏏 autor doszed do cz瘰totliwo軼i 132 kHz, kt鏎a pozwala na t逝mienie t逝mienie harmonicznych, a jednocze郾ie taki filtr nie ma wp造wu na amplitud sygna堯w generowanych w uk豉dzie.

    Analizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki Discovery


    Analizator Bodego na STM32F407 z p造tki Discovery
    Rezultaty test闚 z fizycznym filtrem RC

    Poni窺ze wykresy pokazuj charakterystyki Bodego r騜nych filtr闚, zmierzone z pomoc samego omawianego urz康zenia.

    Testowane by造 trzy r騜ne uk豉dy RC, z r騜nymi cz瘰totliwo軼iami granicznymi.. Rezultaty s bardzo obiecuj帷e - tak punkt -3 dB na charakterystyce amplitudowej jak i -45 na charakterystyce fazowej s zgodne z ich odpowiednikami z symulacji obu uk豉d闚. Podobnie amplituda i faza mierzonych sygna堯w, zachowuj si dok豉dnie tak, jak powinny. Dodatkowo, dobr wiadomo軼i jest fakt, 瞠 amplituda jest poprawnie mierzona a do poziomu -80 dB, czyli oko這 100 µV.

    Analizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki Discovery


    Analizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki Discovery
    Testy z filtrami cyfrowymi

    Podobne filtry, jak ten opisany powy瞠j, zrealizowa mo積a tak瞠 cyfrowo - realizacja niekt鏎ych z nich wymaga sporego zachodu, zw豉szcza dla filtr闚 wy窺zego rz璠u, a programowo s istotnie prostsze.

    Autor planuje przetestowanie szeregu filtr闚 cyfrowych w przysz這軼i z wykorzystaniem swojego analizatora.

    Jako, 瞠 ca造 analizator zrealizowano programowo, to uk豉d jest bardzo prosty. Software zaimplementowano na p造tce uruchomieniowej STM32F407 Discovery. Pe軟i ona rol analizatora i interfejsu PC - do komputera uk豉d do陰czony jest poprzez konwerter USB-TTL. Jedynymi zewn皻rznymi elementami s filtry analogowe lub druga p造tka STM32F407 Discovery, na kt鏎ej zaimplementowano filtry cyfrowe.

    Analizator Bodego na STM32F407 z p造tki DiscoveryAnalizator Bodego na STM32F407 z p造tki Discovery
    Drukowanie wykres闚 na komputerze PC

    Za kre郵enie charakterystyk Bodego odpowiedzialny jest komputer PC. Uruchomiony na nim skrypt, napisany w Pythonie (na poni窺zych zrzutach ekranu) wykorzytsuje bibliotek matplotlib do rysowania wykres闚. Na pierwszym zrzucie widzimy konfiguracj macierzy oraz interfejs szeregowy, a na drugim konwersj z zebranych danych dotycz帷ych amplitudy i fazy do danych w skali logarytmicznej i stopniach.

    Program na STM32 napisany zosta bezpo鈔ednio na sprz璚ie, z bezpo鈔ednim dost瘼em do rejestr闚, bez wykorzystania warstwy abstrakcji sprz皻owej (HAL / CUBE).



    Je郵i jeste軼ie zainteresowani dok豉dniejszymi matematycznymi podstawami tego rodzaju analizy, to na stronie 廝鏚這wej znajduje si pe軟e wyprowadzenie wykorzystanych funkcji wraz z opisem i przyk豉dami.

    毒鏚這: https://sites.google.com/site/hobbydebraj/bode-analyzer-using-stm32f407


    Fajne! Ranking DIY
  • #2 28 Cze 2018 15:40
    Pablo2015
    Poziom 18  

    Czy to nie jest przypadkiem WAO (wektorowy analizator obwodu)? Je郵i tak, to opisany pomiar jest co najwy瞠j zgrubny...

  Szukaj w 5mln produkt闚