Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kombinacja PWM oraz filtra dolnoprzepustowego

piotrbdg2010 10 Feb 2013 16:42 4419 11
  • #1
    piotrbdg2010
    Level 8  
    Witam,
    Pracuję aktualnie na prywatnym projektem, w którym oświetlenie LED ma być sterowane przez sygnał PWM z uC oraz sygnał Audio. Nie wiem czy mogę połączyć oba te sposoby sterowania. Albo inaczej, wiem że mogę, tylko nie wiem czy w taki sposób, który przedstawiłem na poniższym schemacie.
    Kombinacja PWM oraz filtra dolnoprzepustowego



    Obecnie bez najmniejszych problemów działa mi sterowanie jasnością LED przy pomocy sygnału PWM, podłączonego do tranzysotrów n-MOSFET. Teraz chcę pomiędzy zasilanie LED-ów, a wspólną anodę wstawić tranzystor pnp, który będzie sterowany z filtra dolnoprzepustowego (basy) z sygnału audio (z komputera) - ten element układu przedstawiłem na schemacie po prawej stronie i jest to jedyna niewiadoma w projekcie. Reszta działa.

    Mam pytanie czy to będzie działać jak na powyższym schemacie? A jeżeli tak to z jakimi parametrami i czy nie będę potrzebował wzmacniacza dla sygnału audio?
    aha. małe uzupełnienie odnośnie schematu - POT1.x to 2-kanałowy potencjometr cyfrowy (na schemacie obecnie nie mam narysowanego podłączenia do uC przez TWI)
    masy będą połączone (na schemacie nie są)

    Poniżej zamieszczam dodatkowo schemat zastępczy żeby zbytnio nie mieszać. Na schemacie jest LOAD czyli taśma LED RGB. Po stronie katody mam sterowanie jasnąścią przez PWM z mikrokontrolera (i to mi działa), a po stronie anody mam sterowania basami z wejścia audio i tutaj będę wdzięczny za wszelką pomoc w zaprojektowaniu poprawnego układu. Ostatecznym celem jest sterowanie taśmą led zarówno przez PWM jak też przez wejście audio.
    Kombinacja PWM oraz filtra dolnoprzepustowego
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • Helpful post
    #2
    User removed account
    Level 1  
  • #3
    piotrbdg2010
    Level 8  
    Dziękuję za odpowiedź. Cenne uwagi, które potwierdzają dodatkowo, że długa przede mną droga, jeżeli chodzi o elektronikę. Planuję poszerzać moją wiedzę w tym zakresie. Jakkolwiek na chwilę obecną znalazłem lepszy (z mojej perspektywy) sposób na realizację celu.

    Zmodyfikowałem moduł audio, tak aby sygnał podawać nie na tranzystor tylko na wejście analogowe uC. Na samym uC wykonuję transformatę Fouriera i na podstawie widma planuję decydować o sterowaniu led. W sumie nic odkrywczego, chcę jeszcze dołożyć konwersję z signle float do half float żeby transofrmatę robić na dwa razy większym zbiorze próbek, ale nawet w obecnej sytuacji powinno być nieźle.

    Obecnie moduł analogowy od strony sprzętowej wygląda tak:
    Kombinacja PWM oraz filtra dolnoprzepustowego

    (*1) I tutaj mam prośbę o opinie.

    ...
    Uznałem, że mimo wszystko warto żeby analiza widmowa odbywała się przy wsparciu ze strony filtra dolnoprzepustowego. Tutaj rozpatruję dwa przypadki:
    - (*2.1) wycięcie (stopniowe) wszystkiego nieco powyżej basu (tłumienie od 300Hz) i analiza niskich tonów - tu moje pytanie jakie parametry dla elementów C1 i R8 powinienem dobrać?
    - (*2.2) wycięcie wszystkiego co mogłoby wprowadzić aliasing przy zastosowaniu najszybszego możliwego próbkowania 15ksps. Zatem, kolejne pytanie - jakich parametrów dla C1 i R8 powinienem użyć w tym przypadku aby całkowicie usunąć z sygnału częstotliwości powyżej 7kHz? (tłumienie może się zaczynać nawet od 3kHz).
    (*3) Przedostatnie pytanie - jak sprawić aby wstawienie digipotu (rozumiem, że to określenie na potencjometr cyfrowy?) na wejściu modułu audio nie zmieniło charakterystyki filtra R8C1?
    (*4) I ostatnie pytanie - czy ten wzmacniacz będzie odpowiedni? Czy może proponujecie coś innego (najlepiej gdyby też podnosiło sygnał pomiędzy gnd i +5v)?
  • Helpful post
    #4
    jarek_lnx
    Level 43  
    LM386 to wzmacniacz mocy, zazwyczaj w takich układach stosuje się wzmacniacze operacyjne są bardziej uniwersalne, LM386 ma prostszą polaryzację stałoprądową, jeśli nie przeszkadzają ci większe zniekształcenia i pobór prądu to może być.

    Dla prądów stałych wejście ADC nie ma polaryzacji, a powinno.

    Quote:
    jakich parametrów dla C1 i R8 powinienem użyć w tym przypadku aby całkowicie usunąć z sygnału częstotliwości powyżej 7kHz? (tłumienie może się zaczynać nawet od 3kHz).


    Żeby filtrem pierwszego rzędu przy 7kHz tłumić o zaledwie 48dB (8bit) górna częstotliwość graniczna filtru musiała by być ok 30Hz - jeśli chcesz więcej, potrzebujesz znacznie lepszego filtru antyaliasingowego, dużo wyższego rzędu.(szukaj not aplikacyjnych o filtrach antyaliasingowych).

    Upraszczając, proste filtry można stosować, ale kosztem jest wysokie nadpróbkowanie.
  • #5
    piotrbdg2010
    Level 8  
    @jarek_lnx
    Dziękuję za informacje.
    Zmodyfikowałem moduł w następujący sposób:
    - Zgodnie z radą, dodałem filtr antyaliasingowy. Pytanie czy MAX7410EUA+ to dobry wybór? Szukam czegoś taniego. Przy C7=47pF mam fc=6.4kHz, mam nadzieję, że do 7.5kHz dobrze wytłumi (niestety datasheet podaje charaktrystykę dla fc=1kHz).
    - Całkowicie pozbyłem się wzmacniacza bo chyba nie jest mi w ogóle potrzebny. A może się mylę?
    - Dodałem polaryzację wejścia ADC, której brakowało. Zrealizowałem to przez dzielnik napięć. Pytanie czy rezystory mają dobre wartości?
    - Pojawiło się też pytanie czy jako C1 lepiej zastosować kondensator tantalowy czy mlcc?

    Obecna wersja modułu audio:
    Kombinacja PWM oraz filtra dolnoprzepustowego

    Będę wdzięczny za kolejne opinie i sugestie.
  • Helpful post
    #6
    jarek_lnx
    Level 43  
    Quote:
    Zgodnie z radą, dodałem filtr antyaliasingowy. Pytanie czy MAX7410EUA+ to dobry wybór? Szukam czegoś taniego.
    Jeśli nie chcesz z pasmem podchodzić wyżej niż 2,5kHz to wystarczy.
    Quote:

    Przy C7=47pF mam fc=6.4kHz, mam nadzieję, że do 7.5kHz dobrze wytłumi (niestety datasheet podaje charaktrystykę dla fc=1kHz).
    Oś X charakterystyki możesz sobie przeskalować, 7,5KHz to tylko o 17% więcej niż 6,4kHz taki filtr 5 rzędu stłumi 7,5kHz zaledwie o 10dB (trzy razy z kawałkiem), więc marnie, ale górna częstotliwość graniczna 2,5kHz jest osiągalna dla 8bit chyba że chcesz więcej?
    Quote:
    - Całkowicie pozbyłem się wzmacniacza bo chyba nie jest mi w ogóle potrzebny. A może się mylę?

    To ty musisz wiedzieć jaki masz poziom sygnału.
    Quote:
    - Pojawiło się też pytanie czy jako C1 lepiej zastosować kondensator tantalowy czy mlcc?
    Najlepiej zwiększyć rezystory, zmniejszyć kondensator i dać poliestrowy, jakbym miał wybierać z dwojga złego skreślił bym ferroelektryczny MLCC bo mikrofonuje.
  • #7
    piotrbdg2010
    Level 8  
    Quote:
    Oś X charakterystyki możesz sobie przeskalować

    Ok, w takim razie, o ile dobrze liczę filtr MAX7403ESA+ (8 rzędu) powinien sobie znacznie lepiej poradzić z tłumieniem od 6.4 do 7.5 kHz?
    Miałem cichą nadzieję na jakieś tanie rozwiązanie, ceny tych filtrów są niestety kosmiczne w porównaniu z całą resztą układu. Ale trudno, jak nie ma innego wyjścia to kupię.
    Quote:
    jest osiągalna dla 8bit chyba że chcesz więcej?

    W tym miejscu mam do Ciebie prośbę o wyjaśnienie kwestii 8-bitów. Przyznam, że nie rozumiem.
    Quote:
    To ty musisz wiedzieć jaki masz poziom sygnału.

    Sygnał audio z karty dźwiękowej komputera. Rozumiem, że bez wzmacniacza sygnał będzie miał całkowitą (peak-peak) amplitudę około 1400mV czyli 28% Vref, tym samym przy rozdzielczości 1024 (10-bit) uzyskam faktyczną rozdzielczość 286. Czyli faktycznie przydałoby się wzmocnienie x2.5 - x3. Załóżmy, że chciałbym w tym celu wstawić wzmacniacz operacyjny pomiędzy wyjście filtra, a wejście ADC. Jaki wzmaczniacz proponujesz? Czy w ogóle jest to możliwe w sytuacji gdy sygnał jest już podniesiony o 2.5V? Tzn czy istnieją wzmacniacze, którym mogę podać te 2.5V jako punkt odniesienia? Szukam po datasheetach, ale narazie nic. Czy muszę kombinowac inaczej?
  • Helpful post
    #8
    jarek_lnx
    Level 43  
    Quote:
    Ok, w takim razie, o ile dobrze liczę filtr MAX7403ESA+ (8 rzędu) powinien sobie znacznie lepiej poradzić z tłumieniem od 6.4 do 7.5 kHz?
    Fakt, przykładowo sygnał o częstotliwości 8.6kHz zobaczysz jako alias 6.4kHz ale będzie stłumiony o jakieś 50dB nawet jeśli poziom tego sygnału przed filtrem będzie porównywalny z pełną skalą przetwornika to po filtrze dla przetwornika 8bit alias będzie niezauważalny ale dla przetwornika 10bit i więcej, będzie widoczny, inna sprawa czy będzie przeszkadzał - w twoim zastosowaniu?
    Pytałeś o całkowite usunięcie aliasów, więc moje zalecenia dotyczą prawie całkowitego usuwania, szacowanego na podstawie teoretycznej dynamiki przetwornika o danej rozdzielczości, możesz też sam ustalić jaki poziom aliasów dopuszczasz po FFT, jeśli większy wymagania w stosunku do filtra spadają.
    Ale FFT ma pewną wygodną właściwość - zysk przetwarzania, to pozwala oglądać sygnały poniżej szumu kwantyzacji, niestety takie podejście zwiększy wymagania w stosunku do filtru.

    Quote:
    Miałem cichą nadzieję na jakieś tanie rozwiązanie, ceny tych filtrów są niestety kosmiczne w porównaniu z całą resztą układu.
    Dlatego powszechnie stosowanym rozwiązaniem jest prosty filtr analogowy i wysokie nadpróbkowanie (typowe w zastosowaniach audio), dalej jest filtr cyfrowy i decymacja, ale ty masz taki przetwornik jaki masz, może warto poszukać zewnętrznego przetwornika - szybszego, albo sigma-delta.

    Quote:
    Ale trudno, jak nie ma innego wyjścia to kupię.
    Możesz zrobić filtr na wzmacniaczach operacyjnych wyjdzie tani ale będzie dużo elementów dla filtru wysokiego rzędu.

    Nieco o dobieraniu filtrów antyaliasingowych:
    Link
    Link
  • #9
    piotrbdg2010
    Level 8  
    Ok,

    Trochę poczytałem, dziękuję za linki. Poszperałem też w innych źródłach.
    Obecnie stworzyłem następujące dwie wersje. Mam prośbę o ocenę schematów.

    Kombinacja PWM oraz filtra dolnoprzepustowego

    i drugi

    Kombinacja PWM oraz filtra dolnoprzepustowego

    Poniżej napisałem jak to rozumiem (czy poprawnie?)

    Pierwszy schemat:
    - opamp 0 - dodanie stałego napięcia, takiego, które po wzmocnieniu przez kolejny opamp da przesunięcie od 2.5v czyli połowę vcc
    - opamp 1 - wzmocnienie sygnału x3
    - opamp 2 .. 4 - filtrowanie

    Drugi schemat:
    - opamp 0 - dodanie stałego napięcia i jednocześnie wzmocnienie sygnału x3, w wyniku sygnał jest wzmocniony x3 i przesunięty o 2.5v czyli połowę vcc
    - opamp 1 .. 3 - filtrowanie

    Pytanie, który wybrać? Wolałbym ten drugi, wykorzystałbym wówczas jeden wzmacniacz LM324DG.

    Podane filtry dają mi
    - od f0=1.5kHz i q=0.8, dla kondensatorów spiętych do masy = 5nF (jak na schemacie)
    - do f0=3.5kHz i q=1.8, dla kondensatorów spiętych do masy = 1nF

    Pytanie czy mogę te kondensatory dowolnie zmniejszać? Pewnie nie, zatem pytanie do jakiego poziomu?
  • #10
    jarek_lnx
    Level 43  
    Wzmocnić i dodać składową stałą możesz na jednym wzmacniaczu.

    Widzę że wszystkie ogniwa filtrów masz na takich samych elementach, liczyłeś to jako filtr szóstego rzędu czy powieliłeś filtr drugiego rzędu.
  • #11
    piotrbdg2010
    Level 8  
    ok, w takim razie robię na jednym wzmacniaczu LM324DG.

    Dokładnie tak jak się domyślasz powieliłem filtr drugiego rzędu. Wnioskując z pytania mogłem to zrobić lepiej, licząc jako filtr szóstego rzędu ? ? ;)
  • #12
    jarek_lnx
    Level 43  
    Chodzi o charakterystykę filtr złożony z kilku identycznych będzie miał mniej strome załamanie charakterystyki, niż taki który został policzony jako np szóstego rzędu, z tym wiąże się wybór jaką charakterystykę ma mieć filtr (Bessela, Butterwortha Czebyshewa, Cauera)

    Microchip miał prosty program do liczenia filtrów - FilterLab.