-
1. Data: 2015-05-28 20:02:11
Temat: Covox obsługiwany "na raty".
Od: Atlantis <m...@w...pl>
Ponieważ nie przepadam za jakością audio z PWM-a w ośmiobitowych
mikrokontrolerach, lubię czasem zastosować starą, dobrą drabinkę
rezystorową (Covox) - o ile mam tylko wolny port. IMO jest to rozsądny
kompromis pomiędzy prostotą i ceną PWM-a, a jakością oferowaną przez
zewnętrzny DAC. Poza tym nie trzeba aż tak dokładnie pilnować, żeby
częstotliwość taktowania była odpowiednio wysoka.
Zastanawiam się jednak nad dwiema sytuacjami:
1) Chcemy zrobić przetwornik 16 bit, wykorzystując dwa porty MCU.
2) Mamy procesor w rodzaju Atmego8, który ma tylko jeden cały port
wyprowadzony na piny i akurat pechowo niektóre z nich obsługują
alternatywne funkcje, których potrzebujemy.
Czy w takim wypadku możliwe jest sterowanie rezystorami z dwóch różnych
portów i ładowanie wartości w dwóch etapach? Czy też spowoduje to
wyczuwalną różnicę w brzmieniu dźwięku?
-
2. Data: 2015-05-28 20:45:01
Temat: Re: Covox obsługiwany "na raty".
Od: AlexY <a...@i...pl>
Atlantis pisze:
> Ponieważ nie przepadam za jakością audio z PWM-a w ośmiobitowych
> mikrokontrolerach, lubię czasem zastosować starą, dobrą drabinkę
> rezystorową (Covox) - o ile mam tylko wolny port. IMO jest to rozsądny
> kompromis pomiędzy prostotą i ceną PWM-a, a jakością oferowaną przez
> zewnętrzny DAC. Poza tym nie trzeba aż tak dokładnie pilnować, żeby
> częstotliwość taktowania była odpowiednio wysoka.
>
> Zastanawiam się jednak nad dwiema sytuacjami:
>
> 1) Chcemy zrobić przetwornik 16 bit, wykorzystując dwa porty MCU.
> 2) Mamy procesor w rodzaju Atmego8, który ma tylko jeden cały port
> wyprowadzony na piny i akurat pechowo niektóre z nich obsługują
> alternatywne funkcje, których potrzebujemy.
>
> Czy w takim wypadku możliwe jest sterowanie rezystorami z dwóch różnych
> portów i ładowanie wartości w dwóch etapach? Czy też spowoduje to
> wyczuwalną różnicę w brzmieniu dźwięku?
>
Audiofile wyczują, ja bym wystawił wyższy bajt a potem niższy, czas
między nimi to będzie pewnie z 1uS, membrana głośnika dopiero zacznie
się przemieszczać. Aczkolwiek nigdy tego nie robiłem, gdybym musiał mieć
te 16bitów to by znaczyło że konieczna jest "czystość" sygnału, użyłbym
jakichś buforów ze wspólną linią przepisania wejścia na wyjście albo
rejestru przesuwnego.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
3. Data: 2015-05-28 21:07:18
Temat: Re: Covox obsługiwany "na raty".
Od: Grzegorz Kurczyk <g...@c...slupsk.pl>
W dniu 28.05.2015 o 20:45, AlexY pisze:
> Audiofile wyczują, ja bym wystawił wyższy bajt a potem niższy, czas
> między nimi to będzie pewnie z 1uS, membrana głośnika dopiero zacznie
> się przemieszczać. Aczkolwiek nigdy tego nie robiłem, gdybym musiał mieć
> te 16bitów to by znaczyło że konieczna jest "czystość" sygnału, użyłbym
> jakichś buforów ze wspólną linią przepisania wejścia na wyjście albo
> rejestru przesuwnego.
>
Przy CLK=16MHz dwa rozkazy OUT jeden po drugim dadzą 62,5ns opóźnienia.
Ale zastanawiam się czy jest sens na 8miobitowcu bawić się w Hi-Fi ;-)
Pozdrawiam
Grzegorz
-
4. Data: 2015-05-28 21:38:52
Temat: Re: Covox obsługiwany "na raty".
Od: Atlantis <m...@w...pl>
W dniu 2015-05-28 o 20:45, AlexY pisze:
> się przemieszczać. Aczkolwiek nigdy tego nie robiłem, gdybym musiał mieć
> te 16bitów to by znaczyło że konieczna jest "czystość" sygnału, użyłbym
> jakichś buforów ze wspólną linią przepisania wejścia na wyjście albo
> rejestru przesuwnego.
To fakt. Jednak prawdę mówiąc opcja z 16 bitami była bardziej
hipotetycznym pytaniem - tutaj w praktyce już prędzej użyłbym jakiegoś
DAC na I2S.
Bardziej interesuje mnie druga opcja. Weźmy na przykład Atmegę 8 -
jedynym "pełnym" portem jest tam PORTD, który jednakże dzieli piny z
UART-em i zewnętrznymi przerwaniami, które będą mi potrzebne. Czy nic
nie stoi na przeszkodzie, żeby podpiąć Covox-a do dwóch różnych portów,
a potem ładować do nich cały bajt w dwóch etapach? To chyba nie powinno
być słyszalne?
-
5. Data: 2015-05-28 22:47:39
Temat: Re: Covox obsługiwany "na raty".
Od: janusz_k <J...@o...pl>
W dniu 2015-05-28 o 21:38, Atlantis pisze:
> W dniu 2015-05-28 o 20:45, AlexY pisze:
>
>> się przemieszczać. Aczkolwiek nigdy tego nie robiłem, gdybym musiał mieć
>> te 16bitów to by znaczyło że konieczna jest "czystość" sygnału, użyłbym
>> jakichś buforów ze wspólną linią przepisania wejścia na wyjście albo
>> rejestru przesuwnego.
>
> To fakt. Jednak prawdę mówiąc opcja z 16 bitami była bardziej
> hipotetycznym pytaniem - tutaj w praktyce już prędzej użyłbym jakiegoś
> DAC na I2S.
Prościej jest użyć 74HC595 po spi, można a nawet należy wykorzystać nogi
od programowania procka, obsługa banalna, jest wsparcie sprzętowe,
zajmuje tylko 3 nogi procka. Na wyjsciach 595 dajesz drabinkę rezystorów
i masz covox-a :)
możesz zrobić nawet 24 bitowy na 3 kościach ;)
--
Pozdr
Janusz_K
-
6. Data: 2015-05-29 01:22:43
Temat: Re: Covox obsługiwany "na raty".
Od: AlexY <a...@i...pl>
Atlantis pisze:
[..]
> Bardziej interesuje mnie druga opcja. Weźmy na przykład Atmegę 8 -
> jedynym "pełnym" portem jest tam PORTD, który jednakże dzieli piny z
> UART-em i zewnętrznymi przerwaniami, które będą mi potrzebne. Czy nic
> nie stoi na przeszkodzie, żeby podpiąć Covox-a do dwóch różnych portów,
> a potem ładować do nich cały bajt w dwóch etapach? To chyba nie powinno
> być słyszalne?
Ta sama zasada co pisałem wcześniej, da się, tylko ponownie, bity
wystawione jako pierwsze powinny być te wyższe (zgrubne wysterowanie) a
potem mniej znaczące bity z drugiego portu, tyle że w tym przypadku
odstęp czasowy może być ciut dłuższy ze względu na manipulacje bitami.
Zamiast operacji (16bitowy DAC na 2ch pełnych portach)
A->P1
B->P2
trzeba:
1 zapalać poszczególne bity (może okazać się szybsze [16 rozkazów dla
8bitów] a na pewno bezpieczniejsze)
albo
1 podzielić bity wedle dostępnych bitów w portach
2 porozstawiać je w bajtach
3 porobić zmienne dla poszczególnych portów
4 robić and z pozostałymi bitami portu i dopiero zapis.
Najlepiej jednak rejestr przesuwny, Janusz podał konkretny przykład, bo
tą metodą da się ale to więcej roboty niż to warte.
To takie moje rozważania, właśnie staram się naumieć PIC'e i mi się
mózgownica od nich lasuje... co za prymitywny szajs...
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
7. Data: 2015-05-29 10:40:03
Temat: Re: Covox obsługiwany "na raty".
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Atlantis" napisał w wiadomości grup
>1) Chcemy zrobić przetwornik 16 bit, wykorzystując dwa porty MCU.
>2) Mamy procesor w rodzaju Atmego8, który ma tylko jeden cały port
>wyprowadzony na piny i akurat pechowo niektóre z nich obsługują
>alternatywne funkcje, których potrzebujemy.
>Czy w takim wypadku możliwe jest sterowanie rezystorami z dwóch
>różnych
>portów i ładowanie wartości w dwóch etapach? Czy też spowoduje to
>wyczuwalną różnicę w brzmieniu dźwięku?
a) spowoduje,
b) jesli czas miedzy zmianami bedzie krotki, to moze niezauwazalne,
c) teoretycznie rzecz biorac, to by sie dalo skompensowac w nastepnym
kroku. Ale Atmega to nie DSP.
d) sa mozliwe rozwiazania ukladowe aby zmieniac 16 bit naraz,
e) myslisz ze rezystory i porty sa na tyle dokladne, ze z tego wyjdzie
dobry przetwornik 16 bit ?
f) DAC potanialy ...
g) a moze 8 bit + PWM ?
J.
-
8. Data: 2015-05-29 11:37:09
Temat: Re: Covox obsługiwany "na raty".
Od: Atlantis <m...@w...pl>
W dniu 2015-05-29 o 10:40, J.F. pisze:
> e) myslisz ze rezystory i porty sa na tyle dokladne, ze z tego wyjdzie
> dobry przetwornik 16 bit ?
Rozważania nad 16 bitowym Covoxem miały charakter na wpół teoretyczny.
W praktyce interesowała mnie kwestia ośmiobitowego przetwornika,
sterowanego z dwóch portów.
> g) a moze 8 bit + PWM ?
W przypadku 8 bitów Covox ciągle bije PWM na głowę pod względem jakości
i prostoty obsługi.
-
9. Data: 2015-05-29 12:02:40
Temat: Re: Covox obsługiwany "na raty".
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:55683340$0$8388$6...@n...neostrada
.pl...
W dniu 2015-05-29 o 10:40, J.F. pisze:
> e) myslisz ze rezystory i porty sa na tyle dokladne, ze z tego
> wyjdzie
> dobry przetwornik 16 bit ?
>Rozważania nad 16 bitowym Covoxem miały charakter na wpół
>teoretyczny.
>W praktyce interesowała mnie kwestia ośmiobitowego przetwornika,
>sterowanego z dwóch portów.
No to:
-zmiany beda wieksze, bo to nie sa zaklocenia na 8-smym co do wartosci
bicie, tylko np 5-tym,
-czas zaklocen jest nadal krotki.
>> g) a moze 8 bit + PWM ?
>W przypadku 8 bitów Covox ciągle bije PWM na głowę pod względem
>jakości
>i prostoty obsługi.
Mam na mysli covox kilkubitowy, ale z oversamplingiem.
Powinno sie wycisnac kilka dodatkowych bitow.
Tak nawiasem mowiac - przy wysokiej czestotliwosci zegara timera PWM
powinno dac dobre rezultaty, porownywalne z covox.
J.
-
10. Data: 2015-05-29 13:21:20
Temat: Re: Covox obsługiwany "na raty".
Od: Piotr Wyderski <p...@n...mil>
Atlantis wrote:
> Ponieważ nie przepadam za jakością audio z PWM-a w ośmiobitowych
> mikrokontrolerach
Jakość audio "z PWMa" może być znakomita, zwłaszcza, jeśli ten PWM
jest zrobiony sprytniej, np. w postaci sigma-delta. Nie z PWMem
wiec problem, tylko z jego realizacją -- może tu warto nieco popracować?
Nieco, bo jeśli nakłady będą duże, to...
> a jakością oferowaną przez zewnętrzny DAC.
A co z prostota oferowana przez wewnętrzny DAC?
IMHO nie warto walczyć z drabinkami, tylko zmienić MCU
na bardziej pasujący do zastosowania. Liczba możliwości
dostępnych na rynku jest trudna do ogarnięcia. W końcu
ten 21. po coś chyba mamy...
Pozdrawiam, Piotr