piątek, 22 czerwca 2018

DSP v.3

Na chwilę obecną trwają prace nad peryferiami do DSP v.3. Mowa tu o filtrach wyjściowych/wejściowych- te są w trakcie produkcji. Wciąż nie mogę jednak przemóc się w zrobieniu reszty tzn. PCB z uP (RC5, LCD itd.) oraz zasilania. Może jak filtry będą dobrze zaprojektowane to się szarpnę na jedną większą PCB z uP i filtrami. Chociaż coś podpowiada, żeby zrobić to osobno- mniejsze koszty w przypadku przeprojektowywania a tego na pewno nie uniknę.
Obecnie polutowane są 4 PCB i wszystkie działają w stopniu podstawowym- ADC i DAC. Pytanie jak będą się sprawowały w wysokich i niskich temperaturach, ale to będą testy pod koniec całości projektu.

PCB zostały wykonane tam gdzie poprzednio- PCBWay.
Rysunek 1. DSP v.3 zmontowane i uruchomione.

Rysunek 2. DSP v.3

Ogólnie projekt 3 wersji miał być bazą, podstawą. Zgrabny, z możliwością umieszczenia do w sprzęcie home-audio oraz car-audio (może by zastosować go dodatkowo do "likwidacji" szumów w samochodzie?). Dlatego tutaj na złączki wyprowadzone są prawie wszystkie sygnały- zasilania, 3 resety itd. aby w przyszłości nie trzeba było przerabiać "serca DSP".

Rysunek 3. DSP v.3 vs standardowa zwrotnica.

Po zakończeniu projektu elektroniki będzie trzeba stworzyć obudowę a równolegle do tego kolumny głośnikowe. Marzy mi się kolumna 3 drożna, z czego jako głośniki niskotonowe będą użyte SB Acoustics Satori MW19P-8 7.5", które można zobaczyć poniżej.

Rysunek 4. SB Acoustics, Satori. Widok napędu.

Rysunek 5. SB Acoustics, Satori. Widok z boku.

Wyglądają fajnie. Pytanie jak będą grały :)
Pozostaje czekać na kolejne PCB od PCBWay i projektować kolejne wersje/peryferia.




DSP v.2 i Poczta Polska

Po udanej pierwszej wersji, przyszła pora na drugą- lepszą. Lepszą jednak tylko w założeniach.
Rutyna mnie przyćmiła i nie sprawdziłem sobie raportu z Altium. Okazało się, że zapomniałem o przelotce a wiercenie nie wchodziło w grę- przelotki na padach. Nie wiadomo także jak by się udało wyczyścić opiłki z warstw wewnętrznych.
Na rysunku 1 widać całą PCB w wersji 2. W niebieskim obszarze ukazany jest błąd- bardziej szczegółowo zostanie on przedstawiony na rysunku 2.

Rysunek 1. DSP v2, górna warstwa. 

Rysunek 2. Brak przelotki na padzie "DSP_PLL"
Jako, że koniec licencji zbliżał się postanowiłem przysiąść i zrobić już wypasioną wersję 3 PCB.  W wersji 3 PCB zostało to poprawione a sprawdzenie raportu Altiuma rozbiłem na 2 dni, aby uniknąć innych błędów.

Rysunek 3. DSP v3.

Po raz kolejny projekt poszedł do PCBWay tym razem jednak przesyłka nie była wysłana Pocztą Polską a DHL-em przez co PCB DSP v.3 dotarła wcześniej niż PCB DSP v.2.

I tu Poczta Polska mnie rozczarowała głównie opłatami manipulacyjnymi.

Poczta Polska: cło+opłaty "manipulacyjne" (ok. 20 zł)
DHL: po prostu cło
Poczta Polska: HK> miejsce docelowe (w dobrym przypadku): 19 dni (15 dni w Polsce)
DHL: HK>miejsce docelowe: 3 dni
Poczta Polska: 14 dolarów
DHL: 28 dolarów
Różnica: 14 dolarów = 50,6 zł (bez opłat)
Różnica po policzeniu opłat = 30,6 zł
Różnica w czasie= 16 dni.

PP zdyskwalifikowana.

Na sam koniec, na rysunku 4, ukazane PCB w wersji 2. Biorąc pod uwagę, że źle zaprojektowałem PCB Milord mógłby zamienić się na Trollface-a albo na... smutne Pepe.

Rysunek 4. Wyborne PCB Milordzie. Szkoda, że nie będzie działać. 





czwartek, 21 czerwca 2018

Wstęp i o DSP v.1.

1. Wstęp.

W 2012 roku rozpocząłem projekt z kolumnami, gdzie każdy głośnik był podłączony do wzmacniacza a przed wzmacniaczem filtry w oparciu o wzmacniacze operacyjne. Miałem wtedy 19 lat i byłem przeciwnikiem "cyfrówki". Patrząc na to teraz, wynikało to po prostu z braku wiedzy-  wiele rzeczy musiało się "poukładać i dojrzeć w głowie" :)
W 2014 roku, kiedy poszedłem do pierwszej pracy upatrzyłem sobie "ADAU-1452 Eval Board". Po 2 miesiącach kupiłem go. Nastała długa przerwa, by w końcu w 2018 roku zrobić swój własny projekt na procesorze DSP, który będzie spełniał moje wymogi. Głównym założeniem była duża liczba kanałów wyjściowych audio (tak, aby także w samochodzie można było go zastosować) oraz dodatkowe wyjścia różnego przeznaczenia. Eval Board dalej służy mi do codziennego odsłuchu muzyki.
I stało się: 16 kanałów wyjściowych, 4 kanały wejściowe.
Wszystko to wymagało (i nadal wymaga) dość dużego nakładu czasowego i finansowego. Jako, że byłem studentem, skorzystałem z okazji zakupu Altium Designer 18. Tylko 105 dolarów na 1 rok.
2 styczeń- czas start.
Od tego momentu szlifowałem swoje umiejętności praktycznie we wszystkich dziedzinach związanych z elektroniką cyfrową, analogową, testami, projektowaniem PCB i akustyką.  2 warstwowa PCB już nie wystarczała i trzeba było zająć się projektowaniem 4 warstw. Biorąc pod uwagę, że projekt jest wykonywany hobbistycznie, koszt 10 PCB 4 warstwowych wykonanych w Polsce zabrał by mi połowę wypłaty. Rozszerzyły się horyzonty i do tej pory, w przypadku PCB 4 czy 2 warstwowych korzystam z usług PCBWay.

2. Założenia.
Jak już wspomniałem, chciałem mieć do dyspozycji więcej niż 8 wyjść analogowych. Chciałem także mieć dostęp do multipurpose pins z DSP aby można było robić detekcję sygnału (np. mute i standby wzmacniaczy).

3. Projekt.
Na początku chciałem wszystko zrobić na jednej dużej PCB gdzie będzie ADC, DAC, DSP, sterowanie mikrokontrolerem, filtry wyjściowe, wejściowe i cała sekcja zasilania. Myślałem nad tym dość długo aż 27 marca wziąłem się do pracy by zrobić testową PCB na której będzie tylko ADC, DAC, DSP i mały mikrokontroler do sterowania ADC i DAC. Tak powstała pierwsza wersja, która składała się z:
DSP: ADAU1466
ADC: ADAU1978
DAC: ADAU1966
uP: Atmega88

3 kwietnia PCB dotarły.
Rysunek 1. DSP v1.

Rysunek 2. DSP v1- góra.


Rysunek 3. DSP v1- spód.

PCB wykonane zostały bardzo ładnie i do jakości nie mogę się przyczepić (chociaż na rys.2 widać lekkie zadrapania na opisie- zdarzyło się tak tylko na 2 sztukach).
W wersji 1 nie wykorzystałem potencjału 4 warstw ponieważ w razie pomyłki projektowej chciałem mieć łatwy dostęp do sygnałów aby zrobić ewentualne krosy. Na szczęście wdarł się tylko jeden błąd i to było moje niedopatrzenie w schemacie. Jednak mimo tego, wszystko działa.

Rysunek 4. Przebiegi wyjściowe.
Oczywiście przebiegi wyjściowe nie pojawiły się od razu. Były problemy z konfiguracją DAC a dokładniej z sekwencją wysyłania rozkazów. Problemy pojawiły się także podczas konfiguracji głośności- DAC nie ustawiał poprawnie parametrów i blokował magistralę. Problem rozwiązano dodatkowym NACK w programie, o którym datasheet nie wspomina. Na rys.4 widać także pomiary częstotliwości, które nie są poprawne.

Po dłuższym działaniu, DSP osiągał temperaturę ponad 60 stopni- złe umiejscowienie tranzystora, mała powierzchnia do odprowadzania ciepła. W wersji 2 i 3 PCB zostało to poprawione (chociaż w wersji 3 przesadziłem przez co są problemy z lutowaniem).

Na rysunku 5 widać próby (pomyślne) skonfigurowania S/PDIF.

Rysunek 5. Testy S/PDIF wraz z kartą dźwiękową na USB.
W trakcie gdy wersja 2 PCB była w produkcji, rozpocząłem pracę nad zapisywaniem parametrów do DSP za pomocą rejestrów safeload.

Rysunek 6. Nauka Safeload.

Ostatecznie wersja 1 PCB została rozlutowana i DSP, ADC i DAC trafiły do wersji 3 PCB o której napiszę wkrótce.









niedziela, 4 listopada 2012

Oscyloskopy- podstawowe informacje. Część 4.

Strona 1/3 Images: tutorial_osc_dis_1.jpg
Type
Vectors- wektory wypełniają obszar pomiędzy dwoma punktami
Dots- wykres jest zbudowany z pojedyńczych punktów
Persist- określa jak długo będzie wyświetlany poprzedni wykres. Można porównać do efektu pamięciowego
Intensity- intensywność wykresu
Brightness- jasność siatki




Strona 2/3
Images: tutorial_osc_dis_2.jpg
Format

YT- wyświetla napięcie w funkcji czasu (jak na screenach)
XY- o tym trybie nawiążę w części, gdzie będzie poruszany pomiar częstotliwości
Screen
Normal- normalne kolory
Invert- kolory są odwrócone (czarny > biały)
Grid
1. Pokazuje działki (jak na screenie)

2. Wyświetla tylko oś X i Y
3. Wykres na czystm tle

Strona 3/3
Images: tutorial_osc_dis_3.jpg Strona trzecia jest dość uboga- tutaj możemy zmienić tylko skórkę. Do wyboru mamy 4 nakładki.









Oscyloskopy- podstawowe informacje. Część 3.

Aby uruchomić funkcje matematyczne, należy nacisnąć przycisk MATH- część 1 poradnika.
1. Dodawanie
http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_1.jpg Operation- dodawanie, odejmowanie, mnożenie, FFT
Invert- odwracanie wykresu który powstał.
Zielony wykres- suma.










http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_2.jpg
Pierwsza opcja służy do przesuwania wykresu góra/dół.
Druga opcja służy do wyboru skali (Match scale: 2.00V).
Zmianę dokonuje się za pomocą pokrętła, które znajduje się po lewej stronie od przycisku Measure (pokrętło funkcyjne).






 2. Odejmowanie
http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_3.jpg
Jak widać, zaznaczoną mamy opcję CH1 - CH2. Możemy także wybrać CH2 - CH1.
Różnica wynosi 0.










Co jednak stanie się jeżeli zmienimy zmienimy polaryzację CH2?
http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_4.jpg
Jak widać, różnica wynosi ok. 6 V.
CH1- 3V
CH2- -3V
CH1 - CH2 = 6V
3 - (-3) = 6V
Oscyloskop wie, że dwa minusy dają plus :)







3. Mnożenie
http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_5.jpg














4. Szybka transformacja Fouriera (ang. FFT od Fast Fourier Transform) rozkłada funkcję okresową na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne częstotliwości składają się na pierwotną funkcję.
http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_6.jpg
Window- wybór sposobu analizy sygnału:
Rectangle- najlepsza rozdzielczość, najgorsze odwzorowanie wielkości
Hanning- dobra rozdzielczość, gorsze odwzorowanie wielkości od Rectangle
Hamming- lepsza rozdzielczość od Hanning
Blackman- najgorsza rozdzielczość, najlepsze odwzorowanie wielkości





FFT Zoom- zoom wykresu- 1X, 2X, 5X, 10X
Aby zmieniać położenie analizy FFT, należy mieć aktywne okienko MATH. Położenie środkowej częstotliwości regulujemy pokrętłem od zmiany położenia (Position w sekcji Horizontal), natomiast zoom regulujemy pokrętłem od podstawy czasu.

http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_7.jpg
Na wejściu CH1 podany jest sygnał prostokątny o częstotliwości 1 kHz.
Jak widać z analizy FFT środkowa częstotliwość (oś Y) wynosi 1 kHz.
Możemy także odczytać napięcie, które wynosi około 3V (1Vrms/Div)
Zoom = 10X







http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_8.jpg Tutaj już mniejszy zoom. Widać harmoniczne sygnału. Jak widać częstotliwość 5-tej harmonicznej wynosi 7.1 kHz.










http://www.eres.alpha.pl/elektronika/images/tutorial_osc_mat_10.jpg
Na stronie 2/2 możemy wybrać skalę- Vrms, lub dBVrms.
Display- Splitt- wygląd jak wcześniejsze screeny, Full- jak na screenie po lewej.






Oscyloskopy- podstawowe informacje. Część 2.

W pierwszej części dowiedzieliśmy się, co dzieje się gdy źle ustawimy parametry wyzwalania. Czas przyjżeć się dokładniej ustawieniom triggera.
1. Edge - stabilizacja względem zbocza.
Images: tutorial_osc_trig_2.jpg
Source- wybieramy źróło. CH1, CH2- kanały 1/2.
EXT- wyzwalanie sygnałem wejściowym, podłączonym do wejścia EXT TRIG. Dozwolony zakres napięc wejściowych: -1.2 V do + 1.2 V. Sygnał wyzwalający nie jest wyświetlany.
EXT/5- tak samo jak w przypadku EXT. Różnica- zakres napięć wejściowych- od -6 V do +6 V (mnożymy przez 5).
AC Line- używany jest sygnał z sieci energetycznej. Wraz ze składową stałą, ustawiony w pozycji 0V.
Slope- reagowanie na zbocze rosnące (jak na screenie), opadające oraz naprzemienne.
Mode- tryb
Auto- wyświetlanie wykresu, gdy poziom trigger znajduje się poza tym wykresem.
Normal- jeżeli poziom trigger jest poza wykresem- nie jest on wyświeltany. Dopiero po ustawieniu poziomu, na którym możliwa jest stabilizacja sygnału względem czasu jest on wyświetlany.
Single- aby był wyświetlany pojedyńczy przebieg. Oscyloskop przechodzi w tryb STOP.

Images: tutorial_osc_trig_3.jpg
Zakładka Set Up:
Coupling
DC- przepuszcza cały sygnał
AC- blokuje napięcie stałe oraz sygnały poniżej 170 Hz
HF Reject- tłumienie wysokich częstotliwości- powyżej 140 kHz.
LF Reject- tłumienie niskich częstotliwośći- poniżej 7 kHz.
Holdoff- czas opóźnienia. Holdoff Reset- ustawienie czasu na 100 ns.
Return- powrót.



2. Pulse - wyzwalanie impulsem.

Images: tutorial_osc_trig_5.jpg
When- kiedy
1. Szerokość dodatniego impulsu jest mniejszy niż ustawienia szerokośći impulsu.
2. Szerokość dodatniego impulsu jest większy niż ustawienia szerokośći impulsu.
3. Szerokość dodatniego impulsu jest równa.
4. Szerokość ujemnego impulsu jest mniejsza niż ustawiona szerokość impulsu.
5. Szerokość ujemnego impulsu jest więszka niż ustawiona szerokość impulsu.
6. Szerokość ujemnego impulsu jest równa.
Set Width- ustawiamy szerokość impulsu. Od 20 ns do 10 s.
Next Page- ustawienia takie same jak w przypadku Edge.


3. Video- wyzwalanie sygnałem video.
Images: tutorial_osc_trig_7.jpg
Polarity- polaryzacja sygnału. Normalna, ujemne zbocze (jak na screenie), odwrócona- dodatnie zbocze.
Sync- synchronizacja.
All Lines- wszystkie linie
Odd Field- nieparzyste linie
Even Field- parzyste linie






Images: tutorial_osc_trig_8.jpg
Standard- standard sygnału- NTSC lub PAL
Reszta jak w trybie Edge.











4. Slope- wyzwalanie nachyleniem sygnału.
Images: tutorial_osc_trig_10.jpg
Większość ustawień jak w trybie Pulse.

Width- szerokość nachylenia względem "Time" oraz ich polaryzacja.
Na następnej stronie ustawiamy w poziomie dwa znaczniki, które obejmują dane nachylenie.








5. Alternative - gdy używamy dwa kanały, każdy przebieg może być wyzwalany osobno.

Oscyloskopy- podstawowe informacje. Część 1.

Nie będę się rozpisywał na temat budowy, zasady działania ponieważ w internecie jest ogromna ilość tego typu materiałów.
Będzie on pisany, mam taką nadzieję, w prostym języku.
Część pierwsza- podstawowe informacje na temat obsługi oscyloskopu.
Images: tutorial_osc_wstep_1.jpg Po prawej stronie mamy zdjęcie oscyloskopu cyfrowego firmy Atten. Dzisiaj zajmiemy się "pokrętłami i przyciskami" znajdującymi się w strefie Vertical, Horizontal i Trigger. Vertical- odchylanie pionowe- działka napięcia
Horizontal- odchylanie poziome- działki czasu
Na zdjęciu jak widać mamy trzy wejścia- CH1, CH2 oraz EXT Trig. Dla kanału 1 mamy także przypisaną współrzędną X natomiast dla kanału 2- Y. Są one odpowiedzialne za wskazania oscyloskopu w trybie XY, o czym powiem w dalszych częściach. EXT Trig oznacza zewnętrzne wyzwalanie.
Po prawej stronie, mamy wyjścia z generatora przebiegu prostokątnego o częstotliwości 1 kHz. Będą one potrzebne przy naszym pierwszym zagadnieniu a mianowicie przy kompensowaniu sondy.
Wyżej mamy pokrętła do przesuwania wykresu góra/dół (dla V), lewo/prawo (dla H) - mniejsze rozmiarem, oraz większe służące do zmiany wartości poszczególnych działek.
Na samej górze mamy inne funkcje, które będą omawiane w dalszych częściach.

 1. Kompensacja sondy
W większości przypadków mamy do czynienia z sondami typu RC. Są one, jak nazwa wskazuje, zbudowane z rezystora i kondensatora, połączone równolegle. Aby wyświetlane przebiegi były wiernie przebiegom badanym musi zachodzić równość:

R1C1=R2C2 gdzie R1 i C1 dotyczy się parametrów sondy, tak R2 i C2 parametrów wejścia oscyloskopu jak i przewodu. Kompensację / strojenie sondy dokonuje się poprzez zmianę wartości C1.
Podłączając sondę do wyjścia generatora przebiegów prostokątnych możemy ujrzeć następujące wykresy (dzielnik sondy musi znajować się w położeniu 10x):
Images: tutorial_osc_wstep_3.jpg



Sonda jest przekompensowana









Images: tutorial_osc_wstep_4.jpg




Sonda jest niedokompensowana








Images: tutorial_osc_wstep_5.jpg




Kompensacja prawidłowa







Istnieje także zaokrąglenie naroży impulsu nawet przy prawidłowej kompensacji sondy- źle zestrojony oscyloskop.

W takim razie co zrobić, aby przebieg był prawidłowy?
Należy zmienić wartość C1 poprzez kręcenie śróbki, która znajduje się przy wyjściu sondy pomiarowej. Wygląda ona tak (CH1):
Images: tutorial_osc_wstep_0.jpg

Delikatnie kręcąc, doprowadzamy nasz przebieg do prawidłowej postaci.
2. Ustawienia kanałów
Naciskając przycisk CH1 pojawi się nam następujące menu:

Images: tutorial_osc_wstep_6.jpg Coupling- decydujemy przez co "przechodzi" nasz sygnał:
DC- na wyświetlaczu widzimy, prócz przebiegów, także składową stałą- pomiar napięcia DC
AC- sygnał bez składowej stałej.
GND- wejście zwarte z masą.

Volts/Div- ustawienia działki napięcia.
Coarse- wartości działki przyjmują "prostą" wartość- 200mV, 500mV, 1V, 2V.
Fine- wartość działki jest zmieniana co 0.02 V
Probe- wartość dzielnika napięcia sondy. Typowe wartości: 1x, 10x, 100x, 1000x. Zmienia się wówczas napięcie działki- na rysunku obok, dla dzielnika 10x wartość w dolnym lewym rogu wynosiła by 20.00 V

Next Page- przejście do kolejnej strony

Images: tutorial_osc_wstep_11.jpg
Invert- zmiana fazy
Off- faza zgodna
On- faza przeciwna










Images: tutorial_osc_wstep_13.jpg
Filter- filtry
On- włączone
Off- wyłączone
Type- typy filtrów- dolnoprzepustowy, górnoprzepustowy, pasmowoprzepustowy, pasmowozaporowy
Upp_limit- górna częstotliwość graniczna
Down_limit- dolna częstotliwość graniczna





3. Przebiegi referencyjne
Skorzystamy z tej funkcji, jeżeli chcemy porównać maksymalnie dwa przebiegi które zapisaliśmy wcześniej z obecnym przebiegiem.
Do aktywacji tej funkcji służy przycisk REF
Images: tutorial_osc_wstep_16.jpg Source- źródło przebiegu referencyjnego- CH1 lub CH2
REF A- źródło pierwsze, naciskając jeszcze raz mamy:
REF B- źródło drugie
Save- zapisujemy nasz przebieg
REF A Off- włącz/wyłącz wyświetlanie wcześniej zapisanego przebiegu
Zmianę źródła dokonujemy trzecim przyciskiem od góry (REF A / REF B)





Images: tutorial_osc_wstep_17.jpg
Kolorem czerwonym mamy ukazany wcześniej zapisany przebieg referencyjny. Jak widać jest on w 99% zgodny z obecnym przebiegiem.

Na dolnym, lewym rogu mamy także parametry, przy których był zapisywany








Images: tutorial_osc_wstep_18.jpg Zwiększyłem teraz działkę- z 1 V na 2V. Zapisuję go jako przebieg referencyjny nr. 2 ( REF B ).












Images: tutorial_osc_wstep_19.jpg Drugi, referencyjny przebieg ma kolor fioletowy. Jest zgodny z aktualnym przebiegiem.











Images: tutorial_osc_wstep_20.jpg Obniżyłem aktualny przebieg, aby zobaczyć wszystkie trzy na raz.











4. Wyzwalanie podstawy czasu
Inaczej Trigger- to od niego zależy, czy nasz wykres będzie pływał, biegał a może i nawet skakał.
Images: tutorial_osc_wstep_23.jpg Jak widać, jest on ustawiony powyżej naszego przebiegu.
Prócz niestabilności, niemożliwy jest także automatyczny pomiar częstotliwości- widzimy wynik <10 Hz








Images: tutorial_osc_wstep_24.jpg Nasz znacznik T znajduje się teraz powyżej połowy przebiegu- jest on stabilny oraz jest możliwy automatyczny pomiar częstotliwości.










Images: tutorial_osc_wstep_25.jpg
Teraz znajdujemy sie w ustawieniach wyzwalania.
Type- rodzaj "stabilizacji" przebiegu. Inaczej- co musi być na poziomie T aby przebiegi były stabilne w czasie. W tym wypadku, gdy na poziomie T będziemy mieli zbocze.
Slope- decyduje czy ma być to zbocze narastające, opadające, naprzemienne

Source- wybór źródła wyzwalania- CH1, CH2, AC Line, EXT Trig.