-
Data: 2020-06-11 11:44:58
Temat: Działająca biblioteka C do VS1003?
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Próbuję właśnie uruchomić urządzenie posiadające sprzętowy dekoder MP3
VS1003. Urządzenie wykonałem w dwóch wariantach: z układem
PIC32MX795F512L oraz szesnastobitowym układem PIC24 (zacząłem od tego
drugiego, ale w międzyczasie postanowiłem przenieść projekt na układ 32
bitowy). Ma to znaczenie o tyle, że w obydwu wersjach kod zachowuje się
tak samo, czyli raczej można wykluczyć problem wynikający ze specyfiki
sprzętowej, np. pin zajęty przez jakieś układ peryferyjny.
Płytki zostały zaprojektowane w oparciu schematy z PDF-ów producenta. W
obydwu wersjach schemat jest identyczny, a ukłąd ścieżek prawie
identyczny. Przyglądałem się wielokrotnie i błędów w połączeniach nie
dostrzegam.
Od strony programowej próbowałem posłużyć się tym kodem z STM32
znalezionym na GitHubie, portując go na PIC24/PIC32.
https://github.com/digao6975/stm32-player/tree/maste
r/src
Dekoder częściowo działa. W pętli głównej czytam do bufora po kawałku
plik MP3, a potem wysyłam te dane do układu. Przed wysłaniem każdego
kolejnego bajtu czekam w pętli na ustawienie linii DREQ (tymczasowa
prowizorka, lepiej byłoby to zrobić na przerwaniach). Po dotarciu do
końca pliku zaczynam go czytać od nowa.
Dźwięk jest odtwarzany, ale najlepsze co uzyskałem to "ćwierkający"
efekt. Co ciekawe najlepsze efekty uzyskałem przy małym buforze na
fragmenty danych z pliku (zaledwie 16 bitów). Gdy ustawię więcej,
"ćwierkanie" staje się szybsze przechodzi w szum albo wręcz nastaje
cisza. Efekty nie są też w 100% powtarzalne, nie zawsze odtwarzanie chce
się rozpocząć.
Co najdziwniejsze, przy większych rozmiarach bufora program szybciej
dociera do końca pliku, jakby linia DREQ nic nie dawała - jej
konfigurację po stronie MPU sprawdzałem wiele razy i wszystko wydaje się
być ok.
W tej chwili skończyły mi się pomysły i jeśli nic innego nie przyjdzie
mi do głowy, przeportuję popularną bibliotekę z Arduino, napisaną w C++.
Nie chciałbym jednak wyważać otwartych drzwi, jeśli istnieje jakaś dobra
biblioteka w C, którą można łatwo przenosić między rodzinami
mikrokontrolerów, albo która ma wersję dla PIC32.
Następne wpisy z tego wątku
- 11.06.20 15:49 Marek
- 11.06.20 15:53 Marek
- 11.06.20 17:59 Atlantis
- 11.06.20 19:54 Atlantis
- 11.06.20 20:03 Marek
- 11.06.20 20:10 Marek
- 11.06.20 23:30 Atlantis
- 12.06.20 10:32 Atlantis
- 12.06.20 10:53 Marek
Najnowsze wątki z tej grupy
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
- Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- ciekawy układ magnetofonu
Najnowsze wątki
- 2025-01-04 Zbieranie danych przez www
- 2025-01-04 reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- 2025-01-04 w Nowym Roku 2025r
- 2025-01-04 Warszawa => Specjalista ds. IT - II Linia Wsparcia <=
- 2025-01-04 Warszawa => Java Developer <=
- 2025-01-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-04 Warszawa => System Architect (Java background) <=
- 2025-01-04 Wrocław => Application Security Engineer <=
- 2025-01-04 Chrzanów => Specjalista ds. public relations <=
- 2025-01-04 Katowice => Key Account Manager (ERP) <=
- 2025-01-03 Problem z odczytem karty CF
- 2025-01-03 Jazda z Warszawy do Krakowa teslą
- 2025-01-03 Wrocław => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-03 Warszawa => International Freight Forwarder <=
- 2025-01-03 Mińsk Mazowiecki => Area Sales Manager OZE <=