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

Wzmacniacz audio na... AVR?

szymon_zawiercie 26 Gru 2007 13:41 29282 69
REKLAMA
  • Wzmacniacz audio na... AVR?
    Chyba zbyt dosłownie wziąłem do siebie stwierdzenie, że na procesorze można zrobić wszystko :D.
    Kiedyś kupiłem kilka sztuk ATTINY13 i nie miałem za bardzo pomysłu na ich wykorzystanie aż wczoraj wieczorem przy piwie wpadłem na szalony pomysł wykonania na jednym z nich wzmacniacza mocy.
    Po krótkim namyśle i kilku wyliczeniach okazało się to całkiem realne :).
    Idea polega na z kwantowaniu sygnału audio wbudowanym przetwornikiem AD i wysterowaniu sprzętowych PWM'ów. Kanały PWM sterowane są różnicowo tzn. jak na 1 współczynnik wypełnienia się zwiększa to na 2 zmniejsza. Głośnik podłączony jest bezpośrednio pod porty procesora. Tak powstała w pełni funkcjonalna końcówka mocy w klasie D.
    Uprzedzam przyszłe pytania. Nie wiem jakie jest pasmo przenoszenia i moc a tym bardziej zniekształcenia. Na ucho pasmo jest ok 10-15 kHz i moc kilkaset miliwatów.
    Zalety:
    - prosta konstrukcja (dosłownie 4 elementy)
    - duża sprawność
    Wady:
    - mała głębokość skali (ze względu na 8 bitowy PWM max 40dB)
    - trochę słychać "pracę procesora" w głośniku
    Program sterujący napisany w Bascom'ie:
    $regfile = "attiny13.dat"
    $crystal = 9600000
    
    Dim Temp As Iram Byte
    
    Config Pinb.0 = Output
    Config Pinb.1 = Output
    
    Tccr0a = &B10100011   'PWM
    Tccr0b = &B00000001
    
    Didr0 = &B00010000    'ADC
    Admux = &B00100010
    Adcsrb = &B00000000
    Adcsra = &B11101000
    
    On Adc Adc_int
    Enable Interrupts
    
    Do
    Loop
    
    Adc_int:
    Temp = 255 - adch
    Ocr0a = Adch
    Ocr0b = Temp
    Return

    Wysyłam też zdjęcie i krótki filmik z działania programu :)
    Wzmacniacz audio na... AVR?



    (przesterowanie które słychać na filmie to przesterowanie mikrofonu w aparacie :) w rzeczywistości brzmi czyściej)

    Projekt nie ma chyba większego praktycznego zastosowania (a może jednak :) - wszystko zależy od waszej wyobraźni :) ) ale jak najbardziej może być dalej rozwijany, w AVR'ze zostało jeszcze dużo miejsca i czasu procesora :)

    Fajne? Ranking DIY
    O autorze
    szymon_zawiercie
    Poziom 13  
    Offline 
    szymon_zawiercie napisał 79 postów o ocenie 19. Jest z nami od 2003 roku.
  • REKLAMA
  • #2 4624911
    ghost666
    Tłumacz Redaktor
    Posty: 11961
    Pomógł: 157
    Ocena: 10263
    Uau, ale to absolutnie uau. Serio zaskoczyłeś mnie totalnie.

    Teraz tylko daj wyjścia PWMów na tranzystory MOS i postaraj się bardziej wyżyłować uC, a będziesz miał normalny, prawdziwy koniec mocy w klasie D. 8bitowy przetwornik to nie tak mało, wystarczy do tej roboty, gorzej z częstotliwością PWMa - no właśnie, jaka jest?
  • #3 4625115
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    Niestety mylisz się, 8 bitów to jest bardzo mało i przy zmniejszeniu sygnału wejściowego bardzo szybko rosną zniekształcenia. PWM działa na częstotliwości ok 75kHz. I jak pisałem projekt traktuję tylko jako ciekawostkę ;)
  • #4 4625289
    ghost666
    Tłumacz Redaktor
    Posty: 11961
    Pomógł: 157
    Ocena: 10263
    Ja wiem że ciekawostke, ale gdybyś to wykończył i zapodał w formie naprawde działającego porządnie wzmacniacza, to... jejciu - full respect. Bo projekt dałoby sie zrobić tak poważnie, szczerze mówiac. Mój kumpel męczył konwersje D/A robioną PWMem, ale na ARMie i działa toto nieżle :).
  • REKLAMA
  • #5 4625339
    ferdu
    Poziom 13  
    Posty: 110
    Pomógł: 1
    Ocena: 1
    a jak by zrobic cos podobnego na 16bit? potrzebuje cos co bedzie w miare dzialalo i gralo i bylo wmiare energooszczedne i dysponowalo moca okolo 2w. a projekt bardzo ciekawy ja bym go rozwijal dalej.
  • #6 4625340
    karol12b
    Poziom 16  
    Posty: 267
    Pomógł: 1
    Ocena: 4
    Trzebo bylo sie bardziej postarac zrobic plytke jakos mala obudowe i bylo by gi ale rozumiem praca tworcza przy piwie
  • REKLAMA
  • #7 4625399
    ALTON
    Poziom 38  
    Posty: 4153
    Pomógł: 304
    Ocena: 145
    karol12b sądząc po numerku 12 w twoim pseudo można ci wybaczyć tak bezmyślną krytykę. Projekt naprawdę ciekawy i przypuszczam, że znajdzie się osoba na elektrodzie która zacznie rozwijać go dalej. Jak zauważono, jest to idealna droga do wzmacniacza cyfrowego w klasie D opartego na mikrokontrolerach (co jest dość niecodzienne).
  • #8 4625415
    Shanleaf
    Poziom 17  
    Posty: 298
    Pomógł: 20
    Ocena: 6
    Pomysł rzeczywiście robi wrażenie. Bardzo mnie to zaintrygowało, jednak z uwagi na moją niewielką wiedzę z zakresu elektroniki cyfrowej, prosiłbym kogoś o przynajmniej pobieżne wytłumaczenie działania całego układu. Konkretniej mam na myśli to, co dzieje się z sygnałem po zamienieniu go na formę cyfrową przez przetwornik A/D. Wiem, na czym polega idea PWM (rozumiem, że jest to regulacja wspólczynnika wypełnienia sygnału prostokątnego), jednak nie wiem, w jaki sposób takim sygnałem wysterowany jest głośnik.
  • #9 4625552
    curylop
    Poziom 16  
    Posty: 221
    Pomógł: 13
    Ocena: 20
    projek bardzo mi się podoba. ciekawy projekt.hmmmmmm....... chodzi mi teraz po głowie equalizer zbudowany na jednym uK
  • #10 4625702
    Tranzystor_1992
    Poziom 16  
    Posty: 260
    Ocena: 3
    Ta konstrukcja po prostu postawiła mnie na nogi :D AVR jako wzmacniacz :P Pomyśl może o jakimś bardziej szybszym procesorze AVR, np.: ATtiny2313 i podłącz kwarc 20MHz, a może ATMEGA8 z 10 bitowym PWM i AC :?: Lub jej szybsza wersja ATMEGA88 :P Nie no układ ciekawy, naprawdę robi wrażenie :P

    Pozdrawiam ;)
  • #11 4625729
    Tomek515
    Poziom 23  
    Posty: 918
    Pomógł: 24
    Ocena: 211
    Pomysł ciekawy, ale kilkaset miliwatów to ma sygnał z kompa, więc czy to wogłóle wzmacnia sygnał ;)
  • #12 4625770
    Bisuside14
    Poziom 15  
    Posty: 201
    Ocena: 18
    Ostatnio też myślałem o takim wzmacniaczu(tak dla jaj), ale to była tylko myśl, a nie żadne wyliczenia itp.
    Bravo!
    PS. ciekawe czy dało by rade zaprogramować ten twój wzmak ,podłączyć LCD i jeszcze sterowanie pilotem, ale była by jazda! na 1 mikroprocesorku. WOW
  • #13 4625771
    matelektronik
    Poziom 17  
    Posty: 296
    Pomógł: 12
    Ocena: 40
    Nie liczy się moc tego wzmacniaczyka tylko sam fakt przetwarzania sygnału analogowego przez układ czysto cyfrowy.
  • #14 4625828
    michal.rogaczewski
    Poziom 28  
    Posty: 1401
    Pomógł: 94
    Ocena: 82
    Shanleaf napisał:
    Wiem, na czym polega idea PWM (rozumiem, że jest to regulacja wspólczynnika wypełnienia sygnału prostokątnego), jednak nie wiem, w jaki sposób takim sygnałem wysterowany jest głośnik.


    Po prostu to jest taki pwm w którym szerokość impulsu sterowana jest przez sygnał wejściowy, a na wyjściu mamy filtr LC który z tego pwm robi sygnał "zjadliwy" dla głośnika (Swoją drogo próba sprawdzenia sygnału wyjściowego na oscyloskopie bez obciążenia zakończyłaby się zobaczeniem prostej lini :P ) Jak sie myle to niech ktoś mnie poprawi :P

    A teraz odnośnie konstrukcji to jak już ktoś powiedział podłącz mosfeta na wyjście i wspomniany filtr i masz wzmacniacz w klasie D o mocy koło 5W przy 4Ω głośniku konstrukcja jak dla mnie wypas dostajesz 6 :!:

    P.S. Rzuci ktoś jakimś prostym programatorem do tego uP ?? bo posiadam pony proga ale nie obsługuje tego a posiadam także kilka tych procków więc by sie pobawił. No chyba że ktoś ma na Atmgege8 program :P
  • #15 4625878
    elektronik999
    Poziom 26  
    Posty: 1203
    Pomógł: 8
    Ocena: 85
    Niech ktoś sprawdzi zakłucenia kto ma oscyloskop
  • #16 4625887
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    Przedstawiam idee mojego wzmacniacza, może przebiegi czasowe rozjaśnią sytuację:
    Wzmacniacz audio na... AVR?
    Co do programatora to wersja demo bascoma i "Sample Electronics programmer" (podłączasz procek prawie bezpośrednio pod LPT ) :)
  • #17 4625892
    Villen
    Poziom 21  
    Posty: 572
    Ocena: 509
    Powinno działać bez większego problemu na Atmedze i innych... Trzeba tylko zwrócioć uwagę do których pinów będziemy podłączać głośnik i wejscie sygnału i dokonać kosmetycznych przeróbek w programie ;)

    Aż jutro spróbuje sie pobawić :D
  • #18 4625900
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    trzeba zwrócić uwagę też na czas konwersji przez przetwornik AD np w atmega8 wynosi on 65 us, a w attiny13 13 us
  • #19 4625903
    pawlik19
    Poziom 16  
    Posty: 173
    Pomógł: 19
    Ocena: 33
    Nigdy nie pomyślałem ze AVR może być wzmacniaczem... niezły pomysł Ci przyszedł, mam tylko małe pytanie odnośnie wpadnięcia na ten pomysł.
    Jakie i ile piłeś piwa? i gdzie?
    Życzę więcej takich pomysłów ;-)
  • REKLAMA
  • #20 4625963
    lukasb9
    Poziom 28  
    Posty: 1421
    Pomógł: 56
    Ocena: 69
    Witam, pomysł przedni! ja kiedys robiłem taki bajerek na zwykłym TL494.

    ktoś napisał o filtrze RC - nie jest tu potrzebny wszystko załatwia indukcyjnosć głosnika - zapewnia uśrednianie prądu.
    Aż się prosi o dodanie na wyjściu małego mostka H i sterowania z niego głosniczkiem.
  • #21 4625967
    badworm
    Poziom 18  
    Posty: 351
    Ocena: 36
    16 bitów wcale nie jest potrzebne - Tact Millenium, jeden z pierwszych(jak i nie pierwszy) wzmacniacz cyfrowy dostępny w normalnej sprzedaży, też pracował na 8 bitach - po prostu strumień danych do przetworzenia przy sygnale wejściowym o jakości CD wymagałby procesora o częstotliwości taktowania bodajże 2 czy 3GHz.

    ALTON napisał:
    Jak zauważono, jest to idealna droga do wzmacniacza cyfrowego w klasie D opartego na mikrokontrolerach (co jest dość niecodzienne).


    Tak się składa, że prawie każdy wzmacniacz klasy D zawiera w sobie jakiś mikrokontroler, w dosłownym tego słowa znaczeniu lub jako DSP :) Ciekawszy byłby projekt wzmacniacza impulsowego zrealizowanego bez układów programowalnych - widziałem taką konstrukcję, miałem okazję jej posłuchać i zapoznać się z dokumentacją. Co ciekawe ze względu na przyjęte rozwiązanie konstrukcyjne mniej jest problemów z podłączeniem jej do źródła sygnału analogowego niż cyfrowego ;)
  • #22 4625990
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    koncepcja klasy D powstała grubo przed rokiem '50, dopiero firma Tripath, chyba w '98r, wprowadziła na rynek wzmacniacze w klasie T, które zawierają procesor DSP w swojej strukturze. Do konstrukcji "analogowego" wzmacniacza w klasie D wystarczy generator piły i komparator i takich konstrukcji jest mnóstwo w internecie np. https://www.elektroda.pl/rtvforum/topic472999.html
  • #23 4626000
    Łukaszek157
    Poziom 19  
    Posty: 382
    Ocena: 12
    Wow jestem zaskoczony, kiedyś ktoś mi mówił że można zrobić wzmacniacz na AVR ale nigdy nie próbowałem.Ile cię kosztował ten wzmacniacz? A sterowanie głośnością jest przez urządzenie wejściowe?
  • #24 4626180
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    koszt poniżej 4zł (cena attiny13), a regulacji głośności jako takiej nie ma, może być przez urządzenie wejściowe
  • #25 4626233
    Łukaszek157
    Poziom 19  
    Posty: 382
    Ocena: 12
    Acha a mógł byś dać jakiś wykaz części, wiem że ich tam dużo nie ma :D :?: I jak to wszystko zmontować :?:

    Dodano po 1 [minuty]:

    I mam jeszcze pytanie jakim napięciem jest on zasilany :?:
  • #26 4626263
    szymon_zawiercie
    Poziom 13  
    Posty: 79
    Ocena: 19
    żuć okiem kilka postów wyżej
  • #27 4626515
    Pth
    Poziom 26  
    Posty: 1080
    Pomógł: 9
    Ocena: 39
    Nie piły tylko trójkąta... http://www.ee.ucr.edu/~rlake/EE135/Class_D_amp_notes_AL.pdf

    Hm.... Gdyby procesor był odpowiednio szybki to bez problemu można by zapisywać dźwięk np na karcie SD :D Tylko trzeba by więcej ramu niż w tiny13 :]

    O! potem nawet można by zapisać każdą literę osobo i bawić się w syntezator mowy! :)


    AVR'y standardowo zasilasz napięciem 5 Volt (max możesz dać 6V).

    To nie nadaje się do wzmacniania audio. Jest to tylko pewny zakres częstotliwości i zniekształcenia jak stąd do Warszawy. Głośność trzeba regulować na zewnątrz w np procesorze dzwięku.

    Co to jest za typ pamięci "Iram"?
  • #28 4627016
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Oj zdziwił byś się Pth jakby dennie mówił ten syntezator mowy z wpisanych osobno liter ;) - problem tkwi w łączeniach i zmianach wysokości dźwięku mowy bez jeżdżenia formantami aby to brzmiało jakoś "z rękami i nogami" ;)


    Ale pomysł z tym PWM wzmacniaczem jest ciekawy :)

    A gdyby dać drugie PWM przez rezystor tak by sumować prądowo:

    Iwy=PWM1+PWM2/256 (lub PWM2/64) chociaż to teoretycznie można by wyciągnąć rozdzielczość przynajmniej wyjścia (a dodając na wejściu jakiś wyżej rozdzielczy przetwornik można już coś wycisnąć z takiego układu - może nie HI-FI ale może chociaż samo HI ;))
  • #30 4627165
    Tranzystor_1992
    Poziom 16  
    Posty: 260
    Ocena: 3
    Niektórzy piszą o małej mocy, co za problem ją zwiększyć, dasz BUZ11 na wyjście generatora PWM i będzie... Nie róbmy problemu jeżeli go nie ma. Kolega mnie bardzo zainteresował tym projektem, może sobie samemu wykonam i po eksperymentuję :D

    Pozdrawiam ;)

Podsumowanie tematu

✨ Dyskusja dotyczy nietypowego projektu wzmacniacza audio klasy D opartego na mikrokontrolerze AVR, konkretnie na ATTINY13. Projekt wykorzystuje wbudowany przetwornik analogowo-cyfrowy (ADC) do próbkowania sygnału audio oraz sprzętowe generatory PWM sterowane różnicowo, gdzie głośnik jest podłączony bezpośrednio między dwa wyjścia PWM, tworząc mostek H. Zaletą jest bardzo prosta konstrukcja (około 4 elementy) i wysoka sprawność, jednak ograniczenia techniczne mikrokontrolera, takie jak 8-bitowa rozdzielczość PWM, 10-bitowy ADC, niska moc wyjściowa (kilkaset miliwatów) oraz ograniczone pasmo przenoszenia (około 10-15 kHz), powodują znaczne zniekształcenia i ograniczenia jakości dźwięku. Częstotliwość PWM wynosi około 75 kHz. W dyskusji poruszono kwestie poprawy projektu poprzez zastosowanie szybszych i bardziej zaawansowanych mikrokontrolerów AVR (np. ATtiny2313, ATmega8, ATmega88) z wyższą rozdzielczością PWM i ADC, dodanie filtrów dolnoprzepustowych na wejściu i wyjściu, zastosowanie tranzystorów MOSFET do zwiększenia mocy wyjściowej oraz implementację mostka H. Wspomniano także o alternatywnych technikach modulacji, takich jak modulacja sigma-delta i modulacja delta-sigma wyższego rzędu, stosowanych w profesjonalnych wzmacniaczach cyfrowych (np. Tact Millenium, wzmacniacze Texas Instruments). Projekt ma charakter edukacyjny i eksperymentalny, a jego celem jest pokazanie możliwości cyfrowego przetwarzania sygnału audio w mikrokontrolerze, a nie uzyskanie wysokiej jakości dźwięku. Wskazano również na konieczność precyzyjnego zarządzania czasem próbkowania i generacji PWM, eliminacji zakłóceń oraz ewentualne wykorzystanie programowania asemblerowego dla optymalizacji działania. Koszt realizacji jest niski (około 4 zł za ATTINY13). W dyskusji pojawiły się także propozycje rozbudowy projektu o dodatkowe funkcje, takie jak sterowanie pilotem, wyświetlacz LCD czy syntezator mowy.
Wygenerowane przez model językowy.
REKLAMA