Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 sie 2026, o 23:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 28 paź 2014, o 00:16 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

Witam :)

Bawię się przetwornikiem TDA1543 na razie testuję jego działanie.
Mam mianowicie taki problem iż nie wiem czemu, ale przy wysyłaniu danych od 0 do 255 (8 bitowych) w pewnym momencie ucina mi sygnał i tak jakby się nie mógł zmieścić w zakresie Vpp i zostaje przeniesiony bezsensownie. Można jakoś zwiększyć zakres w jakim napięcie wyjściowe wychodzi z przetwornika ?
Obrazek

I nie wiem czy to jest wina złego doboru elementów czy programu??
Obrazek
SCK i MOSI naturalnie idą do SPI a DAC_WS jako pin output do procesora.
Całość taktuje 20MHz kwarcem.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A funkcja Send8SPI jest następująca:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przy mniejszych wartości RR(32) wychodzi piła wg. mnie 'w miarę'
Obrazek

Co może być przyczyną ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 00:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27464
Lokalizacja: Szczecin
Pomógł: 1045

borcio992 napisał(a):
a DAC_WS jako pin output do procesora.

A ten pin to jest WYJŚCIE z tego scalaka ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 01:51 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

mirekk36 napisał(a):
borcio992 napisał(a):
a DAC_WS jako pin output do procesora.

A ten pin to jest WYJŚCIE z tego scalaka ?


Tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Właśnie gdzieś doczytałem że ten scalak w U2 jedzie może w tym jest problem ...
Ma ktoś może jakiś testowy pewny program tworzący sinusa??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2014, o 06:26 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27464
Lokalizacja: Szczecin
Pomógł: 1045

Skoro piszesz, że pin WS to wyjście z tego scalaka - to powiedz mi w jaki sposób przełączasz wysyłanie danych do lewego i prawego kanału ? Zaglądałeś w ogóle do noty PDF TDA1543? ... czy może mówisz o całkiem innym scalaku ?

------------------------ [ Dodano po: 3 minutach ]

Poza tym że jednak traktujesz w kodzie WS jako wejście - więc dobrze ;) pewnie to twoja literówka

Nie mniej jednak zajrzyj do noty PDF i zobacz DOKŁADNIE jak albo precyzyjniej, KIEDY należy przełączać sygnałem WS dane pomiędzy kanałem lewym i prawym ... bo na pewno robisz to teraz źle :(


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 00:07 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

mirekk36 napisał(a):
Skoro piszesz, że pin WS to wyjście z tego scalaka - to powiedz mi w jaki sposób przełączasz wysyłanie danych do lewego i prawego kanału ? Zaglądałeś w ogóle do noty PDF TDA1543? ... czy może mówisz o całkiem innym scalaku ?

------------------------ [ Dodano po: 3 minutach ]

Poza tym że jednak traktujesz w kodzie WS jako wejście - więc dobrze ;) pewnie to twoja literówka

Nie mniej jednak zajrzyj do noty PDF i zobacz DOKŁADNIE jak albo precyzyjniej, KIEDY należy przełączać sygnałem WS dane pomiędzy kanałem lewym i prawym ... bo na pewno robisz to teraz źle :(


Przesunąłem bajt w prawo o 1 miejsce i zaczęło grać z wielkimi szumami, ale słychać melodię lekko i myślę że to jest spowodowane asynchronicznym wysyłaniem danych przez UART'a więc zacząłem pisać obsługę odczytu karty SD ale utknąłem :/. 5ms trwa odczyt 512 bajtów z karty SD, tworzy to sporą dziurę w podawaniu sampli.
Jest jakaś możliwość szybkiego czytania z kart pamięci ??. Fifo bym zrobił ale jest problem że mam wszystko na SPI, kartę SD jak i TDA więc odrywając się na chwilę od odczytywania karty by wysłać sample do TDA wiąże się z rozsypaniem transmisji z kartą SD.

Będę musiał chyba wyjść z TDA programowo na porty ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 00:13 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27464
Lokalizacja: Szczecin
Pomógł: 1045

ale po SPI sprzętowym nie zrobisz panie kochany transmisji danych I2S i tu masz ZONK'a .... bo przełączanie sygnału WS musi następować na jeden bit przed końcem bajtu z tego co pamiętam .... więc jak chcesz to zrobić przy sprzętowym SPI ? hmmm ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 00:23 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

mirekk36 napisał(a):
ale po SPI sprzętowym nie zrobisz panie kochany transmisji danych I2S i tu masz ZONK'a .... bo przełączanie sygnału WS musi następować na jeden bit przed końcem bajtu z tego co pamiętam .... więc jak chcesz to zrobić przy sprzętowym SPI ? hmmm ?

Robię przesunięcie bitowe i zapamiętuje ten bit i cała transmisja jest przesunięta o 1 bit. Clock do TDA odcinam tranzystorem z pozytywnym skutkiem (takie emulowane "chip select")



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 01:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27464
Lokalizacja: Szczecin
Pomógł: 1045

borcio992 napisał(a):
Robię przesunięcie bitowe i zapamiętuje ten bit i cała transmisja jest przesunięta o 1 bit

Nie widzę za bardzo jak to robisz - ale czy nie tracisz w tym momencie cennego czasu ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 01:13 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

mirekk36 napisał(a):
borcio992 napisał(a):
Robię przesunięcie bitowe i zapamiętuje ten bit i cała transmisja jest przesunięta o 1 bit

Nie widzę za bardzo jak to robisz - ale czy nie tracisz w tym momencie cennego czasu ?


Panie Mirku jak wszystko będzie działać będę zapisywał od razu przygotowane dane (przesunięte) na karcie SD, zapis i odczyt mam zrobiony taki łopatologiczny beż żadnych FS na karcie, czas odczytu 512 bajtów (wrzucenia ich do tablicy zmiennych) to 5 ms ... trochę za długo. 5 ms to 220 sampli ominiętych dla odczytania 512 sampli więc robi się w sumie spora dziura.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 01:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27464
Lokalizacja: Szczecin
Pomógł: 1045

ok .. tzn nie rozumiem i tak twojego sposobu no ale to nieistotne - może masz jakiś fajny patent. Ja podszedłem do tego inaczej ... I2S generuję czysto programowo w przerwaniu timera z częstotliwością samplowania dźwięku. Daje mi to możliwość zapisu na karcie przy najnormalniejszym zastosowaniu systemu plików FAT z częstotliwościami samplowania do hmmm powiedzmy 10 kHz a tak bez ograniczeń to do ok 8 kHz ...

tutaj kiedyś sobie taki projekt popełniłem

http://atnel.pl/avr-wav-player-recorder.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2014, o 01:40 
Offline
Nowy

Dołączył(a): 27 paź 2014
Posty: 11
Pomógł: 0

mirekk36 napisał(a):
ok .. tzn nie rozumiem i tak twojego sposobu no ale to nieistotne - może masz jakiś fajny patent. Ja podszedłem do tego inaczej ... I2S generuję czysto programowo w przerwaniu timera z częstotliwością samplowania dźwięku. Daje mi to możliwość zapisu na karcie przy najnormalniejszym zastosowaniu systemu plików FAT z częstotliwościami samplowania do hmmm powiedzmy 10 kHz a tak bez ograniczeń to do ok 8 kHz ...

tutaj kiedyś sobie taki projekt popełniłem

http://atnel.pl/avr-wav-player-recorder.html


Daje możliwość zapisu czy odczytu ??

Specjalny program do wkładania wavów na procka napiszę sobie który będzie wszystko obsługiwał.
Tyle że jest jeden problem... przez który będę musiał zrobić obsługę I2S programowo na innych pinach, bo nie mogę na chwilę zrobić przerwania które skorzysta z interfejsu SPI podczas odczytu danych co mi psuje całą komunikację.
Chyba że ktoś wie w którym miejscu mogę sobie pozwolić na przerwanie ?? bo w żadnej nocie katalogowej kart sd nie znalazłem takiej informacji ...

Tak to teraz wygląda z drobnymi przeróbkami ze strony wyjścia (AOL i Vref itp.) bo muszę jeszcze płytkę z NE5532 dorobić ale mam ją na prototypowej:
Obrazek
I mam albo rybki albo akwarium :P albo wrzucanie sampli do TDA albo czytanie karty SD

---------------------Dodano po iluś tam minutach, godzinach ettecera ------------------------
Zoptymalizowałem kod i zszedlem do 2.5ms max z 5ms co najmniej, ale to i tak za długo ... SPI działa na full speedzie podczas odczytywania :< a i tak to nic nie daje

Obrazek
Tak wygląda dziura ściągania 512 bajtów z karty SD


Melodia jest taka sama jak od 29 sekundy tego:
https://www.youtube.com/watch?v=IuEOxRQ5SyU

To jest 8 bitów i są kłopoty a co dopiero przy 16 :3



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO