Ogłoszenie

Collapse
No announcement yet.

"NOS" DAC - czyli jak to dobrze zrobić

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    #21
    Zamieszczone przez kolmen Zobacz posta
    W rs-online możesz kupić ile dusza zapragnie
    No widzisz, nie sądziłem, że mają na stanie do szybkiej realizacji :) Dobrze wiedzieć, dzięki.

    Zamieszczone przez kolmen Zobacz posta
    Płytka czterowarstwowa ?
    Tak, projekt płytki jest na czterech warstwach.

    Skomentuj


      #22
      Zamieszczone przez .3lite Zobacz posta
      Cały opis sprzętu będzie zrobiony w VHDL'u, ponieważ niestety nie jestem fanem Veriloga
      W verilogu pewnie kodu bylo by duzo mniej
      Xilinx wybrany przez bardziej przyjazne srodowisko czy akurat ma cos czego alterze brakuje ?

      Skomentuj


        #23
        Zamieszczone przez Jimy-Adi Zobacz posta
        W verilogu pewnie kodu bylo by duzo mniej
        Nie podoba mi się składnia Veriloga. To już jest kwestia subiektywna :)

        Zamieszczone przez Jimy-Adi Zobacz posta
        Xilinx wybrany przez bardziej przyjazne srodowisko czy akurat ma cos czego alterze brakuje ?
        Nie znam Altery. Xilinx został wybrany z prostego powodu - trochę rzeczy już na nich stworzyłem (Spartan 2, Spartan 3 i Artix 7) i po prostu nie widzę potrzeby wchodzenia w układy od Altera.

        Skomentuj


          #24
          Zamieszczone przez .3lite Zobacz posta
          i z małą impedancją wejściową przy takich częstotliwościach.
          I łykać spory prąd :)
          Z tą licą to bym nie przesadzał na pewno połączenie powinno być możliwie krótkie .

          PS
          Szybko działasz

          - - - - - aktualizacja - - - - -

          Zamieszczone przez .3lite Zobacz posta
          Altery
          Kiedyś na nich coś tam robiłem .
          Ogólnie jak piszesz w HDL to nie ma różnicy wielkiej .
          Było to parę lat temu i wtedy bardziej podobało mi się ich IDE było szybsze ten darmowy WebPack od Xilinx się ślimaczy .

          Skomentuj


            #25
            Zamieszczone przez raven1985 Zobacz posta
            I łykać spory prąd
            To fakt, bias całego dyskretnego I/V trzeba będzie znacząco zwiększyć - co najmniej 20 mA. Zastanawia mnie jakie będą zniekształcenia przy takim prądzie, chociaż prawdę mówiąc, 16 mA p-p to i tak nie jest tak źle - wyobraźmy sobie 16x TDA1541A z wyjściami po 4 mA p-p W tym drugim wypadku już byłby problem.

            Zamieszczone przez raven1985 Zobacz posta
            Z tą licą to bym nie przesadzał na pewno połączenie powinno być możliwie krótkie .
            PCB jest relatywnie duże i nie wiem jak to na końcu wyjdzie. Prawdopodobne jest, że w pewnym momencie zachce mi się w pełni symetrycznej konfiguracji na 32x DAC'ach i tutaj dochodzi następna wejściówka na FPGA, która potrafi odwracać próbki PCM (pierwszy projekt o którym wspominałem). Trzeba to potem zmieścić w obudowie i jakoś rozłożyć.

            Zamieszczone przez raven1985 Zobacz posta
            Szybko działasz
            Powiedzmy, że chciałbym się z nim pokazać na pewnym spocie :P No i powiem szczerze, że trochę mnie ten projekt kręci - w końcu coś innego niż oklepane rozwiązania.

            Zamieszczone przez raven1985 Zobacz posta
            Kiedyś na nich coś tam robiłem .
            Ogólnie jak piszesz w HDL to nie ma różnicy wielkiej .
            Było to parę lat temu i wtedy bardziej podobało mi się ich IDE było szybsze ten darmowy WebPack od Xilinx się ślimaczy .
            Muszę kiedyś spróbować :) Co do WebPack - no niestety, mi też to w cholerę zajmuje i to na relatywnie "prostych" projektach. Pół biedy jak przejdzie synteza, ale mapowanie też trwa swoje.

            Skomentuj


              #26
              Chińczycy jak zwykle zadziwiają w pozytywnym znaczeniu tego słowa :) Sami z siebie wysłali zdjęcie mojego zamówienia (moje dane na kartce) i kawałek PCB:



              PCB zostało wysłane i będzie jeszcze w tym tygodniu, czyli tak jak zakładałem.

              Projekt zakłada też możliwość połączenia tego wszystkiego w konfiguracji różnicowej (32x DAC na kanał), ponieważ jeden z pinów I/O został przeznaczony do odwracania próbek PCM (np. -100 => 100). Mamy dwie płytki PCB, tworzymy sobie kanapkę i w jednym podpinamy I/O od odwracania próbek pod VCC, a w drugim pod GND. Sygnał wejściowy I2S lub SPDIF jest dokładnie taki sam dla obydwóch, tylko, że w jednym próbki PCM są odwracane a w drugim normalne :)

              Skomentuj


                #27


                Na razie o dziwo wszystko działa

                Skomentuj


                  #28
                  wygląda grubo :)

                  Skomentuj


                    #29
                    Dzisiaj skończyłem testować każdą linię cyfrową dla kości AD1865N z osobna i wszystko działa, bufory z przerzutnikami Schmitta też fajnie działają :) Płytkę można jeszcze zmniejszyć w szerokości, ale nie widziałem potrzeby, ponieważ robił się z niej taki mocny prostokąt co mi się średnio podobało.

                    No to teraz można pisać opis sprzętu dla FPGA, tj. wezmę się za to w niedzielę. Potem "jakiś" I/V i można testować.

                    Skomentuj


                      #30
                      Brawo, czekam na konkretny opis brzmienia, już po końcowym odpaleniu!

                      Skomentuj


                        #31
                        Uaktualnienie do projektu :) Zacznijmy od I/V, który jest na AD811. Niestety z doświadczenia dowiedziałem się, że prosty I/V na rezystorze to czysty idiotyzm - DAC'i miały ogromny problem z impedancją wejściową! Przy pełnej amplitudzie po prostu zniekształcały przebieg i nie były w stanie przepchać całego maksymalnego prądu przez rezystor, który miał wartość 300 Ohm. Generalnie rezystor był relatywnie mały, ponieważ niektórzy "audiofile" potrafią wrzucać większe i podniecać się zniekształconym dźwiękiem :)

                        Po tym zbudowałem najprostszy I/V na AD811. Dlaczego na tym wzmacniaczu operacyjnym? Po prostu jest on niezwykle szybki (CFB) i potrafi bez problemu konwertować prąd na napięcie bez zniekształceń i zwiększonej impedancji wejściowej przy większej częstotliwości. Niestety z piekielną szybkością opków CFB dochodzą piekielne problemy ze stabilnością :P Po prostu slew rate na poziomie 2500 V/us robi swoje. Kondensator w sprzężeniu dobrałem doświadczalnie, na początku miałem 33 pF a potem zmieniłem na 22 pF i jest znacząco lepiej. Myślę, że sprawa poprawiłaby się z jeszcze mniejszym kondensatorem, ale niestety takiego nie miałem. Poniżej zdjęcie "super" I/V:



                        Popełniłem też pewien błąd myślowy przy projektowaniu układu. Niestety błąd ten ogranicza próbkowanie do maksymalnie 44,1 kHz z powodu faktu, że muszę nowe dane przesłać w czasie okresu 4x BCLK, który wymaga zegara na pograniczu możliwości AD1865 i to przy 44,1 kHz. Generalnie wynika to z faktu, że mam połączony zegar i dane dla każdego kanału, tj. po prostu są wspólne. Oczywiście nie mogę przesłać nowych danych do czasu zatrzaśnięcia wszystkich DAC'ów, a potem zostaje mi dosłownie okres 4x BCLK na wysłanie nowych danych aby nie przerywać interpolacji.

                        W każdym wypadku ten "problem" rozwiązałem na teraźniejszej płytce poprzez przesłanie danych w okresie 4x BCLK. Nie zmienia to faktu, że projekt jeszcze dopracuję aby przyjmował próbkowanie na poziomie 192 kHz co wymaga pewnych zmian w prowadzeniu linii do FPGA na PCB.

                        Interpolacja w VHDL'u to zwykły rejestr przesuwny, który jako zegar bierze BCLK/4:


                        Teraz może jakieś wykresy względem analogowej interpolacji :)

                        Sinus 1 kHz, 44,1 kHz przy standardowym NOS DAC'u na jednym AD1865N:


                        Sinus 1 kHz, 44,1 kHz przy analogowej interpolacji na 16x AD1865N:


                        Sinus 4 kHz, 44,1 kHz przy standardowym NOS DAC'u na jednym AD1865N:


                        Sinus 4 kHz, 44,1 kHz przy analogowej interpolacji na 16x AD1865N:


                        Sinus 10 kHz, 44,1 kHz przy standardowym NOS DAC'u na jednym AD1865N:


                        Sinus 10 kHz, 44,1 kHz przy analogowej interpolacji na 16x AD1865N:


                        Śmieci na przebiegach wynikają głównie z I/V (kondensator do stabilizacji). Myślę, że 18 pF lub nawet mniej mogłoby jeszcze lepiej ustabilizować opampa. Na razie mi to nie przeszkadza, przy docelowym I/V dobierze się kondensator. W każdym wypadku jakiś prosty filtr rekonstrukcyjny (jeden rezystor i kondensator) zapewne załatwi sprawę syfu w.cz.

                        Czyli generalnie można zbudować jakiś lepszy I/V, posłuchać i ewentualnie brać się za docelowe zmiany :)
                        Last edited by .3lite; 15.03.2016, 15:37.

                        Skomentuj


                          #32
                          Wygląda to naprawdę zajebiście!
                          Gorąco kibicuję!
                          marcinsywala.pl
                          Cambridge Audio Stream Magic 6 | Power Amplifier Class D Hypex 2x Ncore NC2k | T29MF001 + MW16P-4 + 2xTIW 200 XS

                          Skomentuj


                            #33
                            Fajnie to wygląda. Mam amatorsike pytanie, może się pochylisz, czemu ten sinus 10k taki połamany? Tak wygląda 44,1k?

                            Skomentuj


                              #34
                              Zamieszczone przez Micwoj Zobacz posta
                              Mam amatorsike pytanie, może się pochylisz, czemu ten sinus 10k taki połamany? Tak wygląda 44,1k?
                              Drugie od końca zdjęcie pokazuje Ci jak wygląda sinus 10 kHz przy zwykłym NOS DAC'u. Czyli generalnie tak masz go zapisanego na płycie czy w pliku 44,1 kHz. W wypadku próbkowania 44,1 kHz masz około 4,5 próbki w pliku na okres do odtworzenia fali. Zwykły filtr cyfrowy odtworzy tego sinusa perfekcyjnie, ponieważ interpoluje on sygnał na bazie interpolacji sinc. W moim przypadku przebiega interpolacja liniowa, która łączy próbki linią ciągłą :)

                              Skomentuj


                                #35
                                Zamieszczone przez .3lite Zobacz posta
                                Niestety z doświadczenia dowiedziałem się, że prosty I/V na rezystorze to czysty idiotyzm - DAC'i
                                Może mniejsza wartość by była OK np 30om tylko trzeba by potem wzmocnić sygnał do standardowych 2V .
                                Przy 16mA mogło by to działać

                                Zamieszczone przez .3lite Zobacz posta
                                AD811
                                http://www.waltjung.org/PDFs/High_Pe...ransZ_Amps.pdf
                                i strona 124 :)
                                http://www.analog.com/library/analog...h1_final_R.pdf

                                :)

                                Zamieszczone przez .3lite Zobacz posta
                                Popełniłem też pewien błąd myślowy przy projektowaniu układu.
                                "Murphy gets me ever single time"
                                :)


                                Zamieszczone przez Micwoj Zobacz posta
                                Mam amatorsike pytanie, może się pochylisz, czemu ten sinus 10k taki połamany? Tak wygląda 44,1k?
                                Bo nie ma żadnego filtrowania i występuje aliasing .
                                Po zastosowaniu odpowiedniego filtru na wyjściu była by perfekcyjna sinusoida :)

                                Skomentuj


                                  #36
                                  Zamieszczone przez raven1985 Zobacz posta
                                  Może mniejsza wartość by była OK np 30om tylko trzeba by potem wzmocnić sygnał do standardowych 2V .
                                  Przy 16mA mogło by to działać
                                  Nie widziałem, czy AD1865N ma podaną maksymalną impedancję, ale przykładowo TDA1541A ma napisane, że powyżej 25 mV na wyjściu będzie rosnąc THD. Przy prądzie +- 4mA da to impedancję na poziomie 6,25 Ohm i taki powinien być maksymalny rezystor do konwersji I/V aby kostka nie degradowała dźwięku :)

                                  Zamieszczone przez raven1985 Zobacz posta
                                  http://www.waltjung.org/PDFs/High_Pe...ransZ_Amps.pdf
                                  i strona 124
                                  http://www.analog.com/library/analog...h1_final_R.pdf
                                  Genialne pdf. Bardzo dziękuje :)

                                  Śmieci mam powyżej 120 MHz. Ten opamp jest tak szybki, że amplituda przy oscylacji bodajże na 125 MHz miała kilka Vpp bez kondensatora.

                                  W danej chwili został na wyjściu taki syf:



                                  Do tego ten DC offset.

                                  Wydaje mi się też, że MCLK od I2S (Amanero) śmieci po masie. Nie jest on izolowany.

                                  Zamieszczone przez raven1985 Zobacz posta
                                  "Murphy gets me ever single time"
                                  No niestety. Na razie muszę zastanowić się nad nowym podejściem do tematu opóźnienia cyfrowego :)
                                  Last edited by .3lite; 15.03.2016, 18:59.

                                  Skomentuj


                                    #37
                                    OK. Ustabilizowałem opka - dałem mu 10 pF zamiast 22 pF i w miarę cisza na wyjściu :) Tylko teraz został problem z MCLK od Amanero:

                                    Wyjście I/V z wpiętym Amanero w USB:



                                    Wyjście I/V z wypiętym Amanero (bez zasilania):



                                    Jakim cudem MCLK może mi tak błądzić? Z innej strony jak ten syf pojawia się na masie, to opamp próbuje wyrównać wejścia. Muszę tutaj zaznaczyć, że Amanero nie jest odizolowane - ma wspólną masę z moim układem.

                                    W sumie to filtr rekonstrukcyjny syf ten powinien usunąć, ale najpierw chciałbym się dowiedzieć co go powoduje i najlepiej usunąć go u źródła.

                                    Skomentuj


                                      #38
                                      common-mode zapewne .
                                      daj izolator :)

                                      Skomentuj


                                        #39
                                        Albo rozplanowac jakos inaczej powroty pradu zegara. Najlepsza opcja to chyba izolacja.

                                        Skomentuj


                                          #40
                                          Zamieszczone przez raven1985 Zobacz posta
                                          common-mode zapewne .
                                          daj izolator
                                          Syf w dużej większości zniknął :) Jeszcze coś tam jest, ale nie powinno być już problemu.

                                          Oczywiście chęć podłączenia przeważyła, ponieważ stwierdziłem, że wszystko jest OK:



                                          Jako, że tylko jeden kanał oraz brak bufora wyjściowego za filtrem analogowym to się jeszcze nie wypowiem :)

                                          Zamieszczone przez Jimy-Adi Zobacz posta
                                          Albo rozplanowac jakos inaczej powroty pradu zegara. Najlepsza opcja to chyba izolacja.
                                          Prądy powrotne sekcji cyfrowej są tylko i wyłącznie na części masy po stronie cyfrowej i tak samo jest z prądami analogowymi i masą analogową :)

                                          Generalnie nie powinny błądzić.
                                          Last edited by .3lite; 16.03.2016, 01:02.

                                          Skomentuj

                                          Czaruję...
                                          X