Strony

niedziela, 13 maja 2012

WAV - PLAYER - TDA1543 (DAC 16-bit)

Witam,

Chciałbym dzisiaj przedstawić najnowszy projekt jakim jest odtwarzacz plików dźwiękowych WAV, odtwarzanych z karty pamięci microSD. Oparty jest on o przetwornik DAC - TDA1543 - obsługiwany przy pomocy magistrali I2S. Tak na prawdę, docelowo nie będzie on pełnił tylko takiej roli, zobaczycie bowiem kilka jeszcze nie uruchomionych do końca opcji, nad którymi pracuję. Ponieważ jednak projekt już na tym etapie spełnia świetnie większość moich oczekiwań to pozwolę go sobie zaanonsować. Sercem układu jest mikrokontroler ATmega32A SMD, taktowana częstotliwością 20MHz. Projekt w swoich podstawowych założeniach miał spełniać tylko dwie funkcje:





1. Odtwarzać kolejno wgrane na kartę pliki dźwiękowe WAV w jakości STEREO i mono, przy samplowaniu 22kHz a nawet 44kHz

2. Odtwarzać nagrane przez nas własne efekty dźwiękowe po naciśnięciu dowolnego z 10 klawiszy.

Bardzo szybko okazało się jednak, że moc procesora jest jeszcze bardzo mało wykorzystana. Dlatego szybko dodane zostały już kolejne funkcjonalności jak:

3. Możliwość sterowania za pomocą pilota RC5
4. Możliwość sterowania poprzez Bluetooth !!! (z komputera lub telefonu komórkowego)
5. Możliwość podmiany firmware zdalnie poprzez Bluetooth !
6. Możliwość wyłączania całego urządzenia / zasilania z pilota

a pojawią się jeszcze kolejne o ile uda się wytrwać przy pisaniu oprogramowania, będą to:

7. Nagrywanie dźwięków z mikrofonu podłączonego do modułu na kartę (dyktafon)
8. Obsługa czujników temperatury DS18x20 - z funkcją datalogera i zdalnych pomiarów - łączność Bluetooth
9. Efekty dźwiękowe związane ze zmianami samplingu podczas odtwarzania.
10. Zapis i odczyt danych na i z karty do komputera poprzez Bluetooth!

Jak widać niewielka płyteczka a możliwości dosyć sporo. Cały moduł może być z powodzeniem wykorzystywany we wszelkiego rodzaju zabawkach, sygnalizatorach akustycznych, do generowania komunikatów ostrzegawczych w tym przy pomocy spersonalizowanego głosu ludzkiego i wielu innych. Wszystko zależy w zasadzie od wyobraźni. Ja dodam, że już na etapie prototypu, kilka takich modułów zostało użytych do konkretnych projektów.

Nieocenioną zaletą modułu jest możliwość ćwiczenia własnych umiejętności programowania mikrokontrolerów AVR a przy okazji poznawania i korzystania pełną piersią z możliwości współpracy nie tylko z kartą pamięci ale również co bardzo istotne z przetwornikiem cyfrowo analogowym DAC 16-bitowym o symbolu TDA1543.

zobaczcie sami jak idealnie wygląda odtworzony sygnał wzorcowy - sinusoida 8kHz przez taki playerek z udziałem tego scalaka!!!



Jest to nieśmiertelny ale po prostu wspaniały układ scalony. Aż szkoda, że już zaprzestano jego produkcji, stąd też jego cena nie należy do najniższych. Ale zapewniam was że każa złotówka wydana na ten układ zwróci się po stokroć. Wystarczy na własne ucho raz usłyszeć co on potrafi a człowiekowi nogi miękną w kolanach. Ja jestem wprost oczarowany i zakochałem się w muzyce od nowa ;) Na uwagę zasługuje także fakt, że do przetwornika dane przesyłane są za pomocą magistrali I2S. Do niedawna była mi ona absolutnie nieznana. Co więcej, troszkę czasu musiałem poświęcić aby ją rozgryźć w pełni ale się udało. Na szczęście będzie wszystko na ten temat wyjaśnione w najbliższej książce pt: "Język C. Pasja programowania mikrokontrolerów 8-bitowych". Dlatego serdecznie zapraszam wszystkich do przeczytania rozdziałów poświęconych technice audio z wykorzystaniem mikrokontrolerów AVR a w szczególności z użyciem TDA1543!



Poniżej zamieszczam krótki film przedstawiający proces uruchamiania i składania tego modułu jak z klocków lego. Jak widać moduł można wyposażyć bądź nie, w niektóre składniki. Wiele z nich jest opcjonalnych co zdecydowanie podnosi jego walory użytkowe! Można bowiem użyć go zarówno z wyświetlaczem LCD jak i bez. Można wykorzystać moduł Bluetooth BTM-222 ale nie trzeba koniecznie. Podobnie z obsługą podczerwieni czy mikrofonu.

Mam nadzieję, że gdy skończę całość będę mógł jeszcze więcej o nim powiedzieć i przedstawić kolejne fascynujące możliwości, przejdźmy zatem do filmu i bieżących właściwości:


tutaj można z kolei posłuchać kilku różnych odwarzanych na nim dowolnych plików MP3 po uprzedniej konwersji np programem NERO do plików WAV:


I jak ? czy różni się jakość odtwarzanej muzyki z takiego playerka AVR +TDA1543 od słuchania zwykłych mp3-jek ??? ;)

Obecnie opracowuję mały programik na PC, który umożliwia zdalne sterowanie modułem poprzez typowe złącze RS232 ale także poprzez Bluetooth. Widać dobrze to na filmiku poniżej ;)

film w jakości HD - można ją wybrać i powiększyć na cały ekran

Jak widać na prezentowanym filmie video - mamy możliwość wygodnego wyłączania modułu zdalnie np., za pomocą pilota albo poprzez Bluetooth. Nadmienię, że wykorzystuję tutaj kolejną zaletę użytej przetwornicy ATB-PWR-3, która to została wzbogacona o mini logikę pozwalającą na włączanie i wyłączanie przetwornicy. O ile samo włączanie odbywa się ręcznie za pomocą przycisku, to wyłączanie polega na sprowadzeniu do poziomu GND wejścia ENABLE układu przetwornicy, co powoduje odłączenie zasilania wyjściowego. Dzięki takiemu podejściu do niezbędnego minimum ograniczamy wykorzystanie prądu w stanie wyłączenia gdy korzystamy z zasilania bateryjnego. Dla porównania podam przykłady pobory prądu całego modułu w trzech różnych stanach pracy, zobaczcie - to dosyć istotne:

Stan urządzenia
Pobór prądu
brak zasilania
0
zasilanie tylko przetwornicy
102 uA
praca całego modułu bez odtwarzania dźwięków (plus podświetlenie LCD)
 ok 46-55 mA
praca całego urządzenia, odtwarzanie muzyki plus podświetlenie LCD
ok 60-70 mA

Naturalnie 100 uA przy wyłączonym module to nie jest jeszcze taki rewelacyjny wynik ponieważ są jeszcze lepsze przetwornice pod tym względem, które w trakcie uśpienia potrafią się pożywić kilkoma uA albo nawet nA. Jednak moduł playera posiada przygotowaną (jak widać na filmie) podstawkę, dzięki czemu można użyć tak na prawdę jeszcze lepszej przetwornicy jeśli zamierzamy np zasilać całość z typowych i niedużych baterii a jednocześnie zależy nam na długiej żywotności łącznie z okresami gdy urządzenie nie działa, np we wszelkiego rodzaju zabawkach. Można wtedy nie używać wyświetlacza LCD i pobór prądu zmalej w trakcie pracy do kilkunastu mA. Reasumując nawet przy prądzie uśpienia przetwornicy 100 uA układ ładnie zachowuje się przy zasilaniu bateryjnym, biorąc pod uwagę jednak akumulatory o większych napięciach np żelowe 12V lub gdy zechcemy moduł wykorzystywać w samochodzie przy typowym zasilaniu z akumulatora. Wiadomo, że w takich sytuacjach ważne jest aby wszelkie urządzenia także nie nadwyrężały akumulatora, szczególnie zimą ;)

W dalszej części zaprezentuję z kolei kilka zdjęć modułu oraz poniekąd jego proces powstawania. Zanim jednak do tego przejdę dodam jeszcze, że w celu zmaksymalizowania jakości odtwarzanych dźwięków użyłem tuż za przetwornikiem DAC niskoszumnego wzmacniacza operacyjnego, przystosowanego co celów audio o symbolu NE5532. Identyczny układ został także użyty do wzmacniacza mikrofonowego.

projekt 3D z programu Eagle














41 komentarzy:

  1. Dla mnie bomba,ile to można wycisnąć z poczciwego AVRka.

    OdpowiedzUsuń
    Odpowiedzi
    1. No właśnie przyznam szczerze, że mnie to właśnie ciągnie tak bardzo do 8-bitowców dlatego, że jak się chce to strasznie dużo można na nich osiągnąć przy stosunkowo niewielkim nakładzie pracy ;) ..... i aż miło mi odpoczywać przy ich programowaniu w porównaniu do tego co robię zawodowo na co dzień czyli hyhyhy programowanie ale na PC tyle że na duuuuuużo większej ilości bitów.

      Usuń
  2. Jeżeli układ nie jest już produkowany to istnieje jakiś jego zamiennik a takich samych parametrach czy nie za bardzo ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie ma odpowiedników, tzn są podobne układy ale też stare i ciężko dostępne ... generalnie ten jeszcze bywa dostępny czasem z jakichś starych zapasów magazynowych. Mnie się udało kupić parę sztuk w miarę znośnej cenie dlatego teraz są jeszcze do kupienia w sklepie atnel pl

      Usuń
    2. Dzisiaj byłem na warszawskim wolumenie i sam się zdziwiłem że dostałem ten układ bez problemu.Teraz tylko czekać na książkę i testować.

      Usuń
    3. Dokładnie - jak widzisz - jeszcze da radę go dostać wbrew pozorom ;) Trzeba było sobie od razu kilka szt kupić - jak zobaczysz a w zasadzie usłyszysz efekty - to będziesz w szoku jeśli chodzi o jakość dźwięku z avr'ka ;) o tego scalaczka. Potem mogą wykupić wszyscy ;) .... generalnie wiele osób opisuje na różnych forach swoje potyczki z magistralą I2S .... po przeczytaniu książki wiele rzeczy się wyjaśni a scalaczek mam nadzieję że będzie miał nowe życie w rękach wielu pasjonatów ;) Ja sam na nim już chyba ponad 10 przeróżnych układów zrobiłem.

      Usuń
    4. Na pewno ,ale nie byłem przygotowany finansowo że go dostanę ,ale trzeba będzie kupić następnym razem i schować do sejfu :).

      Usuń
    5. Szukasz odpowiednika? Kup dowolny 16-bitowy przetwornik A/C.

      Usuń
  3. Witam widzę tam złącz mikrofonowe czy jest możliwość zapisu dźwięku?

    OdpowiedzUsuń
    Odpowiedzi
    1. Jeszcze nie, ale wkrótce będę nad tym pracował, bo jak widać na module jest już przygotowany i uruchomiony wzmacniacz mikrofonowy także na scalaku NE5532 ;) ... czy się uda zobaczymy. Jeśli tak to na pewno o tym szybko poinformuję bo to będzie już super ciekawy modulik wtedy ;)

      Usuń
  4. Co to za programik do tworzenia dźwięków jeśli można zapytać?

    Już mówię o co mi chodzi ,kilka dni temu zrobiłem przejściówkę STEREO->cinch do wieży AUDIO i potrzebowałbym sygnału sinus 1kHz ,po to by ustawić ręcznie max. natężenie Volume (na razie jest w bezpiecznej pozycji na środku) ,ale wiadomo co się stanie jak damy na max. (większość ludzi robi tak w samochodach) ,EFEKT - zniekształcenie sygnału i wzmacniacz wchodzi w NASYCENIE. MP3 Mp3-ce nie równa więc na każdej będzie nieco inna amplituda. Dlatego potrzebowałbym programik to tworzenia sygnałów wzorcowych ,pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Programik to:

      AVS Audio Editor 7.1

      kupiłem swego czasu cały pakiecik programów tej firmy - są super - nie tylko do audio ;)

      Usuń
    2. Wiele programow ma taka mozliwosc - Foobar2000, SOX (polecam),Cool Edit(obecnie Adobe Audition), dobre jest tez Audacity (otwarto zrodlowe).

      Nie rozumiem dlaczego wzmacniacz ma wejsc w nasycenie - to raczej kwestia niedopasowania czulosci wejscia i impedancji.

      Usuń
  5. Czy nagrywanie będzie wymagało jakiegoś dodatkowego układu przetwornika A/C??

    OdpowiedzUsuń
  6. Przepraszam za literówkę miałem na myśli A/D

    OdpowiedzUsuń
    Odpowiedzi
    1. Jeszcze nie miałem okazji się wziąć za nagrywanie - więc to jeszcze taka nieoficjalna wiadomość z tym nagrywaniem. Ale jeśli wyjdzie - to nie, żadnego dodatkowego przetwornika A/D poza tym, który jest w procku ;)

      Usuń
  7. Bardzo podobne do tego:
    http://letsmakerobots.com/node/23622

    OdpowiedzUsuń
    Odpowiedzi
    1. Panie kolego - podobne do tego co podałeś w linku to jest to:

      http://mirekk36.blogspot.com/2011/11/avr-wav-player.html

      natomiast to co jest opisywane w tym artykule ma się ZUPEŁNIE NIJAK do stronki którą podałeś, ponieważ także jakość odtwarzania rozwiązań opartych o zwykły PWM realizowanych na timerze sprzętowym jest co najmniej bardzo bardzo kiepska. Pewnie w takich nagraniach z internetu ciężko to porównać - natomiast na żywo można z powodzeniem usłyszeć i zauważyć różnice w jakości dźwięku, nawet jeśli słuchaczowi - także takiemu jak ja, przysłowiowy słoń na ucho nadepnął. Odtwarzanie z PWM timera do dźwięków z tego playera z użyciem przetwornika DAC TDA1543 mógłbym porównać (sorki za określnie) jak pierdzenie do dźwięków z najlepszej MP3-jki ;). A jak widzisz wiem co mówię ponieważ sam osobiście zrealizowałem obydwie wersje - więc mam porównanie na własne uszy ;)

      Usuń
  8. Rzuca mi się w oczy że użyłeś takiego topornego TFMSa. Są przecież dużo mniejsze odbiorniki ir (takie miniaturowe) - czy są jakieś istotne różnice między nimi czy po prostu użyłeś akurat takiego jakiego miałeś?

    OdpowiedzUsuń
    Odpowiedzi
    1. Przejrzyj sobie wszystkie moje konstrukcje w których korzystam z odbiorników podczerwieni. W KAŻDYM, podkreślam w KAŻDYM moim projekcie znajdziesz właśnie ten TSOP. Jego użycie nie wynika z tego że akurat mam go pod ręką. Podczerwień i jej wykorzystanie prawie wszędzie to mój konik. Ja muszę mieć najlepsze z najlepszych odbiorniki podczerwieni. I nigdy nie zastąpię tego modelu firmy Vishay, dokąd będzie tylko produkowany. Toporny ;) ??? to życzę powodzenia z miniaturkami i użeranie się z zakłóceniami. Teraz już wiesz dlaczego używam akurat tylko tej wersji ? ;)

      Usuń
    2. Dzięki za odpowiedź. W każdym razie Vishay produkuje też miniaturowe odbiorniki - np dla 36khz mamy model TSOP34836.
      Pytam się bo nigdy nie miałem okazji posiadać takiego miniaturowego, natomiast tego dużego już raz używałem

      Usuń
    3. No to świadomie i z ręką na sercu ci odpowiadam. Testowałem ale już dawno temu także te malutkie. O ile są z Vishay to może problemu z zakłóceniami nie ma ale zdecydowanie mają mniejszą powierzchnię odbioru co znacznie zawęża zakres i kąty odbioru podczerwieni a zatem i możliwości urządzenia. Dlatego ja używam właśnie tych modeli ;)

      Usuń
  9. Projekt bardzo fajny.
    Pierwszą wzmiankę znalazłem o nim na elektrodzie, gdzie autor prezentował AVR Wav player oparty o PWM, a gdzie jeden z forumowiczów przekonał go do zastosowania TDA1543. (Aż trudno uwierzyć, że autor projektu o istnieniu magistrali I2S uświadomił sobie dopiero w 2010r)
    A do czego zmierzam?
    Tak samo jak autor projektu wielką sympatią darzę TDA1543, wykonałem z nim kilka własnych projektów. Obecnie pracuję nad nowym własnym projektem DAC-a opartego właśnie na wspomnianym układzie, chciałbym bardzo obdarzyć go także możliwością czytania plików Wav. Pomyślałem sobie, że może warto by było wykorzystać doświadczenie szanownego autora zwłaszcza, że co prawda stosuję w swoich projektach AVR-y, ale ja w programowaniu nie jestem aż tak biegły i niestety jak dotąd C to dla mnie jeszcze "czarna magia", bo ja piszę w Bascom-ie (w którym ponoć pewnych rzeczy się nie zrobi).
    Dlatego też moje pytanie do Ciebie mirekk36, jak sądzisz, czy treści zawarte w Twojej książce rozjaśnią mi temat na tyle, że będę w stanie wykonać swój projekt oparty o Twoje doświadczenia?
    I drugie pytanie, bo jakoś nie dostrzegłem jasnej odpowiedzi na nie, czy ten Twój (z TDA1543) player radzi sobie już z plikami z próbkowaniem 44.1kHz? To dla mnie bardzo ważne.

    Pozdrawiam
    Wojtek

    OdpowiedzUsuń
    Odpowiedzi
    1. Jak autor nigdy wcześniej w życiu nie zajmował się takimi rzeczami to skąd miał wiedzieć może nie o istnieniu magistrali I2S (bo o niej to słyszałem nie raz) - ale o takich zastosowaniach ;)

      odnośnie Bascoma oraz I2S a jednocześnie samplowania 44kHz .... (pewnie wiesz, że nie jestem przeciwnikiem Bascoma, ale w samym Bascomie będzie ci co najmniej ciężko) :( .... chyba że sięgniesz po asembler wtedy coś zdziałasz. (mówię o wstawkach asm do Bascoma - bo wtedy można z niego sporo wyciągnąć ;) - wiem bo sam kiedyś szprycowałem Bascoma asemblerem jak dobrą kaszę skwarkami)

      Ja w książce opisuję programową realizację pełnego protokołu I2S co do bitu!. I właśnie postawiłem sobie za cel uniknięcie pisania wstawek asemblerowych. Udało się .... ale ceną jest właśnie kod pisany bardzo rygorystycznie czasowo w C.

      Nie ważne w jakim języku chcesz to zrealizować pomyśl sobie, że ja całą ramkę I2S czyli 32 bity, wysyłam szeregowo i programowo z przerwania opartego o Timer. To powinno już ci powiedzieć o tym jaki tu musi panować reżim zależności czasowych. W C mogę sobie na to pozwolić, w Bascomie bez asemblera ? hmmm może udałoby się dla samplowania 8kHz ??? ale i to nie jestem pewien - chyba że jak mówię - wstawki asemblerowe

      Usuń
    2. Pytasz czy książka rozjaśni ci na tyle abyś mógł wykonać ten projekt. No generalnie po to ją pisałem, tylko jest jeden problem to wszystko jest właśnie opisane i przykłady pokazane w C - więc nie wiem za bardzo na ile to do ciebie trafi - tu mi strasznie ciężko coś podpowiedzieć - albo w ciemno pisać że - tak tak - weź książkę i od razu wszystko będzie jasne jak słońce....

      Skoro ty dużo wcześniej znasz te fajne scalaczki to pewnie sam standard I2S znasz jak własną kieszeń tak? ... no to te opisy pewnie byś pominął w książce - ale co z przykładami ???? no nie umiem ci tu odpowiedzieć

      tak czy inaczej jeśli masz jakieś konkretne i sprecyzowane pytania o szczegóły to dopytaj mnie też na maila - chętnie podpowiem co w mojej mocy i postaram się pomóc

      za to jeśli pozwolisz to jednak może zaprosiłbym Cię do świata języka C - ale poprzez moją pierwszą książkę - pt: "Mikrokontrolery AVR Język C Podstawy programowania" ???

      http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

      poczytaj na dole strony opinie dotychczasowych czytelników - piszą, że chyba warto z nią wystartować ;) a przyznam że mnóstwo osób już dzięki niej przeszło płynnie z Bascoma na C właśnie ...

      ja w międzyczasie też jestem do dyspozycji w razie pytań odnośnie treści książek itp

      ale zapraszam także na nasze forum:

      www.forum.atnel.pl

      zobacz ile tam już fajnych rzeczy się dzieje i ilu ciekawych ludzi jest

      ... no nic jak coś to śmiało pytaj. Bez zakupu książki także pomogę w miarę konkretnych i precyzyjnych pytań oraz swoich możliwości. Czy mam rozumieć że już poczyniłeś pierwsze kroki w Bascomie w tej kwestii ??


      AHA Samplowanie 44kHz udaje mi się uzyskać ale muszę w tym celu przetaktować procka do 27MHz - jeśli chcę mieć STEREO. A jeśli wystarczy ci MONO - to spokojnie bez najmniejszych problemów samplowanie 44kHz wyjdzie przy 20MHz czyli bez przetakotowywania ;)

      Usuń
    3. Nie wykluczam wstąpienia do "świata C", bo jak już sugerowałem mam świadomość, że nie da się wszystkiego osiągnąć w Bascom-ie, i tu nie wykluczam pomocy Twoich książek (tylko jak na razie trochę brak czasu na "łykniecie" potrzebnej wiedzy, a i z funduszami czasem różnie), kiedyś nawet przeszedłem jakieś podstawy na PC, choć to nie to samo.

      Najistotniejsze w moim pytaniu było to ostatnie (choć może zbyt mało zaakcentowane), czyli pewne odtwarzanie przy samplowaniu 44.1kHz i to w stereo. Mój projekt będzie jak najbardziej urządzeniem audio (jak większość moich projektów) i dlatego, to jest wymóg absolutnie konieczny. Twierdzisz, że jest to możliwe przy dość sporym przetaktowaniu kontrolera, czy więc przy ciągłej pracy w takich warunkach on da radę? (Nigdy nie robiłem takich długotrwałych testów).

      W każdym bądź razie przemyślę jeszcze raz wszystko na spokojnie i ewentualnie odezwę się, ale już raczej na e-maila.

      Dodam jeszcze że wydaje mi się, iż wszystkich zafascynowanych Twoim projektem należało by przestrzec, aby przypadkiem nie kupowali TDA1543A, bo ten z literką A, akceptuje japoński format wejściowy EIAJ - Right Justified, a nie I2S. O tym niestety nie wszyscy wiedzą, bo nawet doświadczyłem tego, że nie wszyscy sprzedawcy mają tego świadomość.

      Pozdrawiam
      Wojtek

      Usuń
    4. No właśnie ostatnio ktoś do mnie zwrócił się na maila że nabył TDA1543A ;) .... , Ten scalak różni się tym że zamieniona jest kolejność bajtów w słowie przesyłanym słowie (próbce) 16-bitowym(-ej). Ale zasada transmisji pozostaje identyczna. I na szczęście dzięki książce i sposobowi jaki przekazałem - nie stanowi to najmniejszego problemu, aby za pomocą niewielkiej, wręcz mikroskopijnej i kosmetycznej korekty z pełnym powodzeniem w projekcie zastosować również właśnie ten scalak z literką A na końcu ;)

      Usuń
    5. Zmiany są w sumie kosmetyczne i łatwo je oprogramować, ale aby sprawdzić wszystkie różnice między I2S a EIAJ-Right Justified, proponował bym porównać ich karty katalogowe, albo zerknąć np. do noty AN282

      Wojtek

      Usuń
    6. No ja zassałem dokładnie notę TDA1543 oraz TDA1543A. Z moich obserwacji wynika TYLKO jedna różnica, czyli zamiana starszego z młodszym bitem w słowie 16-bitowym w każdym kanale. Oczywiście to powoduje, że są one kompletnie niekopatybilne żeby podmienić jeden za drugi w jakimś działającym układzie. Ale jeśli już sami programujemy transmisję I2S bit po bicie - a ja tak robię i pokazuję to od podszewki, to na prawdę zmiany w programie są bardzo proste.

      Usuń
    7. Przyznałem już, że różnice są dość proste do przeprogramowania.
      Natomiast co do "TYLKO jednej różnicy" między tymi standardami, to proponował bym zerknąć choćby do wspomnianej przeze mnie noty firmy CIRRUS: AN282 The 2-Channel Serial Audio Interface, która powinna wyjaśnić o co mi chodzi.

      Wojtek

      Usuń
    8. Ja nie mówię, że się nie mylę - może mnie źle zrozumiałeś, napisałem że z moich obserwacji a nie że tak jest. To po pierwsze. Po drugie nie odniosłem się do różnic między standardami o których ty mówisz a tylko i wyłącznie do różnicy między tymi dwoma scalakami bo one są 16-bitowe, a z tej noty hmmm wynika jakby coś całkiem innego niż to co ja zauważyłem. Po pierwsze patrzę się jak sroka w kość na te dwa rysunki Left i Right i nie wynika z nich wcale że jest różnica w kolejności nadawanych bitów - tak jak mi się to wydawało. W obydwu transmisja zaczyna się od MSB a kończy na LSB tylko to przesunięcie. Raz z prawej a raz z lewej strony. Ale nie mogę dojść z tej noty o co tu chodzi :(. A że nie miałem scalaka TDA1543A w ręku nie mogłem go potestować to nie wypowiem się do końca z jakąś super pewnością.

      Usuń
    9. Sorry, ale zupełnie nie rozumiem stwierdzenia: "...nie odniosłem się do różnic między standardami o których mówisz, a tylko i wyłącznie do różnicy między tymi dwoma scalakami..." Jak można to rozdzielać, przecież układy muszą być zgodne ze standardami jeśli mają poprawnie działać.

      Faktycznie słusznie zauważyłeś układy te są 16-bitowe, a wspomniana przeze mnie nota uwzględnia możliwość przesłania słowa o innej długości bitowej (ostatnio często stosuje się w audio rozdzielczość 24-bity), nie zmienia to zupełnie faktu, że załażenia standardu (niezależnie od długości słowa) muszą być zachowane.

      Wracając do porównań tylko not katalogowych tych dwu wersji układu TDA1543/TDA1543A.
      To ja widzę takie różnice:
      1) TDA1543 - lewy kanał to WS=0, prawy kanał WS=1; transmisja danych na DATA z opóźnieniem jednego cyklu zegara BCK i dane od MSB (w efekcie tego opóźnienia przy ścisłym nadawaniu ostatni bit LSB jest nadawany w pierwszym cyklu BCK po zmianie stanu WS na następny kanał)
      2)TDA1453A - lewy kanał WS=1, prawy kanał WS=0; transmisja danych na DATA również od MSB z tym, że z wyrównaniem do prawej, czyli do zbocza zmiany WS na drugi kanał. Na początku nadawanego słowa miejsce na MSB Extended.

      We wspomnianej nocie CIRRUS-a AN282 opisane są trzy formaty EIAJ- z wyrównaniem do lewej, EIAJ- z wyrównaniem do prawej oraz Philips-owski I2S. Jak wspomniałem są tam zawarte założenia tych standardów i przedstawiony ogólny sposób ich transmisji, niezależnie od tego ilu-bitowe słowa chcemy przesyłać.

      Wojtek

      Usuń
    10. Ciekawe rzeczy prawisz Panie Wojtek ;) ....

      Wybacz mi więc pewne nieścisłości w tym co pisałem, bo zajmowałem się I2S już jakiś ładny czas temu gdy to pisałem w książce. Ale oczywiście dzięki twoim ciekawym uwagom tu na blogu w końcu jeszcze raz wziąłem w łapki dwie noty: TDA1543 i TDA1543A ;)

      No masz rację, wcześniej nie zwróciłem na to uwagi! Zdecydowanie, jak piszesz sygnał WS jest odwrotnie ;) no i dopiero teraz zauważyłem jak przyjrzałem się szczegółowo że nie MSB i LSB są w takiej samej kolejności. Tylko coś tą notę do TDA1543A mam jaką taką kiepską, że widzę wprawdzie to opóźnienie z lewej o 1 bit chyba.

      Wiesz, jak mówiłem - nie miałem w łapkach tego drugiego scalaka i dlatego czysto teoretycznie zwykle słabo mi się analizuje takie rzeczy. A jakby mi wpadł w łapki to pewnie od razu "w praniu" wyszłyby te moje złe spostrzeżenia.

      Nie mniej jednak nadal twierdzę, że przeróbka mojego kodu z książki byłaby banalnie prosta dla TDA1543A ;)

      I teraz już nie patrzę jak sroka w kość - jeśli chodzi o notę którą poleciłeś ;) tylko jasno widzę o co chodzi. Więc dziękuję za takie rzeczowe spostrzeżenia ;)

      Usuń
  10. TDA1543 i TDA1543A zasadniczo różnią się sterowaniem 1543A to wersja w standardzie EIAJ a 1543 w standardzie I2S. Raczej nie da się ich zamiennie stosować ze względu na owe przesunięcie o jeden bit w I2S. Wersja TDA1543A jest troche wygodniejsza w sterowaniu bo można ją obsłużyć sprzętowo przez SPI, ale trzeba wysłać 24 bity dla każdego kanału mimo, że przetwornik jest 16 bitowy. Używałem tego scalaka z ATMegą i spokojnie da się odtwarzać WAV stereo, 16 bit, 44,1 kHz.

    OdpowiedzUsuń
    Odpowiedzi
    1. A tu można posłuchać jak to działa tylko sterowane przez ARM.
      http://www.youtube.com/watch?v=A2v5_U36omY

      Usuń
  11. Thank you for your comment. I did not understand it :(. I hope this article was useful at least :)

    OdpowiedzUsuń
  12. Świetny projekt! i gust muzyczny :P

    OdpowiedzUsuń
  13. Tyle tylko, że państwo środka produkuje podróbki tych układów bo oryginalne już dawno zniknęły z rynku. A niestety podróbki z państwa Środka działają .... raz na ... chiński rok ;) niestety.

    Poza tym nie każdy może sobie pozwolić na takie zakupy ...

    OdpowiedzUsuń
  14. Z tym niedziałaniem to trochę FUD, wiadomo że trzeba uważać bo chinczycy szlifują chipsety i podrabiają chodliwy towar, ale mnie się jeszcze nie zdarzyło trafić na podróbę, a próbuję prawie każdy typ zamawianego komponentu. A dla niektórych oryginalnie chińskich części jak SIM900 ceny zaczynają się od prawie połowy taniej (przy jednej sztuce). Powiedzenie "do odważnych świat należy" tu też ma swoje odbicie ;) Niezależnie od poglądu tak trzymaj, młodym technikom łatwiej wystartować z Twoimi materiałami.
    -andrzej.

    OdpowiedzUsuń
  15. w jaki sposob w eagle przy wizualizacji płytki zrobic napis na LCD i wlożoną karte SD

    OdpowiedzUsuń