• Witamy w największym polskim serwisie internetowym poświęconym w całości zagadnieniom samodzielnej budowy nagłośnienia.
    Dzięki DIYaudio.pl poznasz zagadnienia samodzielnej budowy nagłośnienia od podszewki oraz będziesz mógł dyskutować o DIY audio do woli.

    Artykuły z dawnego portalu zostały przeniesione do sekcji forum na samym dole.

Budowanie na ekranie - czyli relacje z budowy na zywo :)

d12b640861edf705cbf3a21a99f83a9a_1521803626.jpg


Nie ma to jak zabawa z CM6631A (odpowiednik XMOS i Amanero, tj. USB Audio). Na razie na płytce testowej z aliexpress, ale przynajmniej mogę tak testować moje oprogramowanie do niego zanim zaprojektuję płytkę wejściową :) Jakiś czas temu C-Media wrzuciło pliki źródłowe ich płytki ewaluacyjnej co wreszcie pozwoliło mi na jakieś sensowne ruchy względem tego kontrolera a niżeli bawienie się w hexedytowanie gotowego oprogramowania. Po kilku dniach przepisałem z ewaluacyjnego oprogramowania to co chciałem i stworzyłem własne. Całym układem steruje wbudowany MCU 8051 taktowany zegarem 48 MHz, jego zadaniem jest w sumie wszystko - kontrola przepływu danych, deskryptory USB, DMA, routing pinów, itd. Następną fajną rzeczą jest to, że jak CM6631A nie wykryje oprogramowania we flashu to przechodzi w coś stylu DFU gdzie można wgrać nowy firmware przez USB, więc nie wymaga to żadnego dodatkowego programatora. Minus jest taki, że jak się spieprzy deskryptory USB, a zdarzyło mi się nie raz, to urządzenie leży i trzeba odpiąć zasilanie FLASH'a aby przeszedł w tryb DFU. Oficjalnie wspiera tylko 192 / 32 bit, ale nieoficjalnie można kombinować i kręcić - u mnie lata do max 384 kHz / 32 bit, ale jestem niemal pewny, że można go wykręcić na 768 kHz / 32 Bit. Niestety wymaga to trochę więcej pracy i trików z zegarem. Na pewno będę próbował, zobaczymy co z tego wyjdzie :) Samo urządzenie w komputerze nie zgłasza się jako specyficzny produkt, po prostu wpisałem własny ID produktu w deskryptorze USB i normalnie lata sobie na standardowym sterowniku w systemie:

f79ecace403ab712d8c83a39f409047b_1521803627.jpg


d13f4afd1fdffd0aa8113bbbc9d2d0ec_1521803627.jpg


Wydaje mi się też, że można dopisać obsługę DSD (DoP), ale wymaga to zgłoszenia urządzenia jako 4-kanałowego i wewnętrzny routing na dwa wyjściowe I2S. Osobiście nie używam DSD i raczej mnie to nie interesuje, ale warto wiedzieć. Na razie i tak będę próbował dopisać obsługę strumienia 768 kHz :)
 
Ostatnia edycja:

No i pięknie, dobrze że ktoś będzie miał opanowany soft do tego chipa.
Trochę stara to technologia wydaje się, zewnętrzny Flash + 8051. Zapewne masz też już doświadczeniez XMOS, ma ten układ wg Ciebie jakieś zalety w stosunku do XMOS (xCORE-200)? Z tego co się orientuję, to mniejszy problem jest ze sterownikami na Win.

Ja próbuję swoich sił z XMOS XU208, też się zastanawiałem czy nie kupić chińskiej płytki, ale że mi się jakoś szczególnie nie spieszy i z powodu obaw o możliwe trudności z zaprogramowaniem zdecydowałem się na próbę wyrzeźbienia minimalistycznej płytki samemu.
 
Ostatnia edycja:
Trochę stara to technologia wydaje się, zewnętrzny Flash + 8051

Moim zdaniem jest to dobre rozwiązanie. 8051 jest wbudowany i zajmuje się obsługą peryferiów. Brak firmware dla 8051 powoduje, że przechodzi w tryb DFU i można mu wgrać.

Zapewne masz też już doświadczeniez XMOS, ma ten układ wg Ciebie jakieś zalety w stosunku do XMOS (xCORE-200)? Z tego co się orientuję, to mniejszy problem jest ze sterownikami na Win.

Nie mam, ale moim zdaniem pytanie powinno być odwrotne, tj. jakie zalety ma XMOS. C-Media od jakiegoś czasu przychylnie patrzy na DIY i dlatego wypuścili kody źródłowe płytki ewaluacyjnej, nawet jest jeden pracownik od C-Media na diyaudio.com i odpisuje w temacie z nim związanym. Można sobie z gościem na spokojnie gadać, ja sam dzisiaj do niego pisałem o 768k i pytałem, czy DMA może pracować z taką częstotliwością:

I am not sure. I do not know what is the max accept clock of double up circuit design. Maybe you can try it. If the I2S can have signal output it's means you just need to modify firmware to support 768K, then it will work correctly. I know the DMA FIFO design can support up to 768K.

Tutaj możesz sobie wrzucić własny VENDOR ID i PRODUCT ID tworząc w praktyce własny odbiornik USB Audio. Zrobisz sobie co chcesz, nawet można dopisać aby podczas zmieniania głośności w Windows sterownik wysyłał to do CM6631A gdzie potem możesz sterować drabinką R-2R z feedbackiem do systemu :) Inaczej pisząc zmiana głośności w PC = regulacja analogowa w samym docelowym urządzeniu.

No chyba, że piszesz własne oprogramowanie do tego XMOS'a :)
 
Ostatnia edycja:
Moim zdaniem jest to dobre rozwiązanie. 8051 jest wbudowany i zajmuje się obsługą peryferiów. Brak firmware dla 8051 powoduje, że przechodzi w tryb DFU i można mu wgrać.
To jest akurat wygodne, dobrze wiedzieć. W XMOS też jest obsługa DFU loadera, tylko najpierw trzeba sobie wgrać odpowiedni firmware na zewnętrzny Flash lub OTP, o ile się dobrze orientuję. DFU jest też zawarte w przykładowym projekcie USB 2.0 Audio: http://www.xmos.com/support/software/uac2.
Jak narazie zbudowałem tylko ten kod w xTIMEComposer studio, czekając na dostępność interfejsu xTAG. Mam wrażenie, że stosunkowo niewielkim nakładem pracy da się uzyskać coś co będzie stabilnie działać i da możliwość dodania własnych funkcjonalności, jak inicjalizacja dowolnego DACa przez I2C czy regulacja głośności, o której piszesz. Można też zapewne sobie stworzyć composite USB device, aby mieć możliwość sterowana innymi rzeczami po tym samym fizycznym porcie USB.

C-Media od jakiegoś czasu przychylnie patrzy na DIY i dlatego wypuścili kody źródłowe płytki ewaluacyjnej, nawet jest jeden pracownik od C-Media na diyaudio.com i odpisuje w temacie z nim związanym.
Sensowne wsparcie techniczne jest nie do przecenienia, trafiłem na ten wątek próbując znaleźć kody źródłowe. Gość bardzo sensownie się wypowiada. W przypadku XMOS dobrym źródłem informacji okazuje się forum https://xcore.com.

Nigdy nie mierzyłem tego, ale zastanawia mnie, jako że procesor zapewne ciągle odczytuje dane z Flasha wykonując kod, czy zakłócenia EM przy tym
generowane w jakiś zauważalny sposób nie wpływają ostatecznie na wynikowy sygnał I2S. Pewnie przy poprawnym zaprojektowaniu PCB nie ma się czym przejmować.

No chyba, że piszesz własne oprogramowanie do tego XMOS'a

Mniej więcej taki jest plan, może nie własne ale z oparte na referencyjnym projekcie i z własnymi modyfikacjami. Poza tym programowanie takiego deterministycznego procesora to jest coś czego nie próbowałem jeszcze i nauka czegoś nowego może być dodatkowym usprawiedliwieniem poniesionych kosztów. :)
 
Sensowne wsparcie techniczne jest nie do przecenienia, trafiłem na ten wątek próbując znaleźć kody źródłowe. Gość bardzo sensownie się wypowiada.
Owszem, samo wsparcie od tdtsai jest OK (szczególnie na prv), ale wydaje mi się, że jest to jego inicjatywa, może nieformalnie poparta przez Cmedia. Wsparcie od Cmedia jest żadne, może za wyjątkiem tego po wcześniejszym podpisaniu cyrografu.
 
Nie na temat...
A jeszcze parę lat temu cudem techniki forumowej był kolejny Gain Clone. Jest progres. Brawo DIYerzy :thumbsup:
 
Nie widziałem, żeby było na forum takie połączenie wobec tego chyba to pierwsza taka konstrukcja będzie. SB29RDC, SB12MNRX i SB23NRX, zobaczymy co tam Troels wyczarował :biggrin:

 
Budowanie na ekranie - czyli relacje z budowy na zywo 😊

Budowanie na ekranie - czyli relacje z budowy na zywo 😊

Sobotnie spotkanie przy kawie i swietnym sprzecie.
3W Satori w TL w towarzystwie mocno zmodowanego iamp’a200.
Alez ten WO24 kopie, sasiadom za sciana na bank szklanki graly w kredensie [emoji4]
Dzieki Andrzeju za odwiedziny, do kolejnego.

60d9d5c4bdec18a38c19c54b46202c45.jpg

f4eb77afd0270cb3803183286a569b79.jpg
 
Mysle ze przy obecnym setupie wiecej niz 70 nie wyciagne.
Tak czy siak, juz tam gdzies grzebie dodatki do tego chlodzenia tak wiec - to tylko for fun.
 
Powrót
Góra