MARM Odtwarzacz plików MP3 z kardy SD

Podobne dokumenty
Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

dokument DOK wersja 1.0

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Architektura komputerów

Przemysłowy odtwarzacz plików MP3 SD

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Technika mikroprocesorowa. Konsola do gier

Transmiter FM DNT MusicFly Select, czytnik SD, MP3, WMA

DOKUMENTACJA PROJEKTU

Przemysłowy odtwarzacz plików MP3

Instrukcja obsługi Rejestrator Parametrów

WAKEBOX BT MT3148. Instrukcja obsługi

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Parametryzacja przetworników analogowocyfrowych

INSTRUKCJA OBSŁUGI TACHOTERMINAL PRO. Firmware

CYFROWY DYKTAFON 8GB AUVISIO

OKULARY Z KAMERĄ BLACK V11

Logiczny model komputera i działanie procesora. Część 1.

Szkolenia specjalistyczne

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

1. Opis. 2. Wymagania sprzętowe:

SZCZECIN Telefon:

Programator procesorów rodziny AVR AVR-T910

Wykrywacz kłamstw. Grzegorz Puzio, Łukasz Ulanicki 15 czerwca 2008

Przywracanie parametrów domyślnych. Przycisnąć przycisk STOP przez 5 sekund. Wyświetlanie naprzemienne Numer parametru Wartość parametru

INSTRUKCJA OBSŁUGI DEKODERÓW. SELTEKA CCX 10x IP

Kontroler Xelee Master DMX64/512 - Instrukcja obsługi. Kontroler Xelee Master DMX64/512 Firmware 1.1 Instrukcja Obsługi.

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

INSTRUKCJA OBSŁUGI PRZYSTAWKI PEN-01 DO PENDRIVE A

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Przemysłowy odtwarzacz plików MP3 SD ze wzmacniaczem 2x10 Watt

Laboratorium Procesorów Sygnałowych

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI RNS 510. Spis treści

1.2. Architektura rdzenia ARM Cortex-M3...16

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Długopis z ukrytą kamerą cyfrową HD

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Radioodtwarzacz CD, FM SoundMaster RCD1750SI. Strona 1 z 9

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Dokumentacja końcowa projektu z ZPR

1.1 Współpraca Modułu Dźwiękowego z jednostka

MODUŁ DŹWIĘKOWY EUM-04- INSTRUKCJA OBSŁUGI (DTR nr EU5-1342) wersja programu v 1.5

Mini odtwarzacz mp3 i radio / czarny Auvisio MPS-550.cube (PX1564) INSTRUKCJA OBSŁUGI

Spis treści. 1 Moduł Modbus TCP 4

Radio z odtwarzaczem CD Lenco

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

NAZWA PRODUKTU: Ukryta MINI KAMERA H2 PODSŁUCH Powerbank IR LED S151 Cechy produktu

Wyniki (prawie)końcowe - Elektroniczne warcaby

INSTRUKCJA UŻYTKOWNIKA

Instrukcja obsługi programu. BlazeVideo HDTV Player v6

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Przetwornik analogowo-cyfrowy

Model: JMC-03_V2.2_RNS510 TV DVB-T for CAR INSTRUKCJA OBSŁUGI MMI 2G. Spis treści

PRZEMYSŁOWY ODTWARZACZ MP3

Ministerstwo Finansów

Kod produktu: MP01105

TECHNIKA MIKROPROCESOROWA II

Instrukcja logowania do systemu e-bank EBS

SCIGANY81 (c) Copyright

VamLoader wersja Opis programu

Instrukcja obsługi FiiO X1

Q3 Autonomiczny czytnik kart i zamek kodowy z kontrolerem dostępu, przyciskiem dzwonka i interfejsem Wiegand

Instrukcja instalacji programu SYSTEmSM

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

Instrukcja obsługi. Terminal SD for DB25 CNC

Widok programatora PonyProgUSB wersja 1.0 oraz jego elementy przedstawiono na poniższym rysunku.

interfejs szeregowy wyświetlaczy do systemów PLC

Instrukcja do oprogramowania ENAP DEC-1

Konfiguracja konta pocztowego w Thunderbird

Kod produktu: MP01611-ZK

INSTRUKCJA OBSŁUGI K3-3. Czytnik kart i zamek kodowy z kontrolerem dostępu i interfejsem Wiegand. Copyright Domster T. Szydłowski

CAN LOGGER OPIS. Ponownie uruchamiany program CAN Logger

1 Moduł Modbus ASCII/RTU 3

PRUS. projekt dokumentacja końcowa

dr inż. Jarosław Forenc

Standardy zapisu i transmisji dźwięku

R-LINK Evolution Instrukcja instalacji oprogramowania

INSTRUKCJA OBSŁUGI GŁOŚNIK BLUETOOTH

BEZPRZEWODOWY VIDEODOMOFON XT GHz Cyfrowa transmisja

PRZEMYSŁOWY ODTWARZACZ PLIKÓW WAV i OGG

Instrukcja obsługi programatora AVR Prog USB v2

Instytut Teleinformatyki

LEKCJA TEMAT: Zasada działania komputera.

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

Rozdział ten zawiera informacje na temat zarządzania Modułem VoIP oraz jego konfiguracji.

Mini stacja MP3 (4w1) MPS-550.cube

NAZWA PRODUKTU: Kamera SPORTOWA MD80 DV HD 720x480 + uchwyty T09 Główne funkcje

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

INSTRUKCJA OBSŁUGI DŁUGOPIS PODSŁUCH 16GB AKTYWACJA GŁOSEM

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Instrukcja obsługi programatora AVR Prog USB v2

Opis konfiguracji ST do współpracy z kolektorem DENSO BHT 8000

Laboratorium ASCOM COLT-2

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Spis treści. 3. Nośniki i nagrywarki...z...38 CD i DVD 38 Pojemność płyt 41 Format płyt 42

Transkrypt:

Warszawa, 01.02.2016 MARM Odtwarzacz plików MP3 z kardy SD Hubert Kasprzyk

1. Założenia projektowe Celem projektu jest zaimplementowanie odpowiednich algorytmów, umożliwiających odtworzenie plików MP3 z karty SD. Urządzeniem obsługującym algorytmy będzie płytka: STM32F4DIS-BB + STM32F4DISCOVERY, która pracuje z mikrokontrolerem ARM Cortex M4. Na płytce znajduje się jeden przycisk użytkownika i kilka diod. Zostaną one wykorzystane do obsługi odtwarzacza MP3. Po włożeniu karty SD do gniazda zostanie ona automatycznie zainicjalizowana. Następnie będą odczytane utwory w formacie MP3, które będą znajdować się bezpośrednio na karcie (bez dodatkowych folderów). Kiedy utwory będą wczytane i urządzenie będzie gotowe do odtwarzania, zostanie to zasygnalizowane zapaleniem się diody. Po wciśnięciu przycisku użytkownika rozpocznie się odtwarzanie utworów. Jeżeli przycisk będzie wciskany ponownie (w trakcie odtwarzania utworów), nastąpi przełączenie na kolejny utwór. Po do dojściu do końca playlisty, odtwarzanie zostanie zakończone, co zostanie zasygnalizowane diodą. Aby ponownie rozpocząć odtwarzanie utworów, będzie należało wcisnąć przycisk użytkownika. Poniżej zaprezentowany został schemat blokowy algorytmu. Obsługa karty SD Dekodowanie MP3 Przetwornik CA W celu realizacji odtwarzacza będzie należało przeprowadzić czynności takie jak pokazano na rys. powyżej. W pierwszej kolejności należy obsłużyć kartę SD, na której będą przechowywane pliki MP3. Karta SD jest podpięta do interfejsu SDIO, który umożliwia transmisję danych z prędkością do 48 MHz. Karta SD będzie obsługiwała system plików FAT. Pliki z karty będą odczytywane w postaci 32 bitowych ramek. Po odczytaniu pliku z karty SD, będzie on dekodowany. Po uruchomieniu urządzenia nastąpi inicjalizacja dekodera MP3, w której m.in. będzie informacja o maksymalnej długości ramki PCM, ze zdekodowaną częścią utworu. Następnie rozpocznie się dekodowanie przesyłanych ramek. Ramki będą między sobą synchronizowane. Na początku pliki zbędą zawierały informację na temat długości utworu, dzięki czemu dalsza część programu będzie wiedziała, jaki rozmiar pliku aktualnie jest przetwarzany (jaka ilość ramek). W kolejnych ramkach będą przesyłane dane pliku multimedialnego, które będą dekodowane do formatu PCM.

Po zdekodowaniu pliku (kawałków plików w postaci ramek), będą one przesyłane na przetwornik CA, którego zadaniem będzie zamiana sygnału cyfrowego na analogowy i wysłanie go do gniazda typu JACK 3.5. Przetwornik CA znajdujący się na płytce to układ CS43L22, który jest przeznaczony do obsługi plików Audio. Układ ten posiada zarówno wejścia analogowe, jak i cyfrowe. W projekcie zostanie wykorzystane jego wejście cyfrowe, do którego szeregowo będą przesyłane ramki ze strumieniami danych PCM. Analizując powyższe kroki łatwo zauważyć, że główną częścią implementacji algorytmów w projekcie będzie obsługa karty SD i dekowanie plików MP3 do PCM, które następnie będą przesyłane do przetwornika CA. Przetwornik ten będzie należało tylko obsłużyć. 2. Realizacja 1. Obsługa karty SD Obsługa karty SD odbywa się przy pomocy interfejsu SDIO. Interfejs ten może współpracować z kartą SD z dwiema szerokościami szyny danych: 1 bit i 4 bit. Poniżej znajduje się schemat podłączenia gniazda mikrosd do mikrokontrolera STM32F4 (dla płytki używanej w projekcie STM32F4DISCOVERY-MB997B + STM32F4DIS-BB). Rys. 2-1 Schemat podłączenia gniazda karty microsd do mikrokontrolera Konfiguracja ustawień karty SD znajduje się w pliku fatfs_sd_sdio.c. Funkcje w tym pliku korzystają z bibliotek TM i FatFs. Biblioteka TM zawiera funkcje tego samego typu jak StdLibrary. Różnica jest w nazewnictwie funkcji (w bibliotece TM każda funkcja

poprzedzona jest przedrostkiem TM). Biblioteka FatFs potrzebna jest do prawidłowego zarządzania plikami na karcie SD. Użycie pliku fatfs_sd_sdio.c wraz z bibliotekami TM i FatFs, uprościło pisanie kodu do obsługi karty SD. Inicjalizacja karty ograniczyła się wstawienia funkcji f_mount(&fatfs,, 1 ). Funkcja ta zawiera: wskaźnik na obiekt reprezentujący system plików, numer dysku (w przypadku używania jednego dysku, może pozostać ta pozycja pusta), komendę zamontowania urządzenia (1 zamontuj, 0 nie montuj). Jeżeli karta SD znajduje się w gnieździe, wówczas inicjalizacja karty przebiega pomyślnie, co zostaje zasygnalizowane zapaleniem się zielonej diody na płytce. Po inicjalizacji karty program przechodzi do funkcji play_directory(, 0), której zadaniem jest przeszukiwanie karty SD w celu znalezienia plików mp3. Pierwszy argument funkcji reprezentuje ścieżkę, natomiast drugi nr pliku od którego ma odbywać się odczyt. W tym przypadku, pliki mp3 powinny znajdować się bezpośrednio na karcie SD (bez dodatkowych katalogów). Odczyt plików rozpoczyna się od pierwszej znalezionej pozycji. Funkcja ta kolejno otwiera i czyta pliki z karty SD, sprawdzając czy są one plikami mp3. Jeżeli zostaną wykryte pliki mp3, wówczas rozpoczyna się odczytywanie plików. W tym celu program przechodzi do kolejnej funkcji: play_mp3(buffer). Argument buffer przechowuje nazwę aktualnie odczytywanego pliku. 2. Dekodowanie plików MP3 Dekodowanie plików mp3 odbywa się przy pomocy biblioteki helix. Plikiem tej biblioteki, zawierającym funkcje obsługiwane przez użytkownika jest plik mp3dec.c. Inicjalizacja dekodera mp3 następuje przy użyciu funkcji MP3InitDecoder(). Plik mp3 w stosunku do dostępnej pamięci dla bufora ma duży rozmiar. Wymusza to konieczność ładowania pliku fragmentami do bufora, dekodowania jego zawartości i wysyłaniu zdekodowanych plików na przetwornik CA. W pierwszej fazie plik mp3 jest otwierany i czytany przy pomocy funkcji: f_open( ) i f_read( ). Odczytywany fragment pliku jest ładowany do bufora file_read_buffer. Bufor ten jest odczytywany przez funkcję MP3Decode( ). Następnie zdekodowany fragment pliku mp3 jest zapisywany do bufora wyjściowego sample. W celu przeprowadzenia poprawnego procesu dekodowanie plików, konieczna jest synchronizacja pomiędzy odczytywanymi ramkami. Zadanie to jest wykonywane przez funkcję: MP3FindSyncWord( ). Niezbędną funkcją z biblioteki helix jest jeszcze MP3GetLastFrameInfo( ). Funkcja ta pobiera ostatnią ramkę pliku mp3, a wraz z nią informacje na temat pliku, takie jak: liczba zdekodowanych próbek, szybkość próbkowania, itp. Zawartość bufora wyjściowego zajmują fragmenty zdekodowanych plików mp3 w formacie PCM. PCM jest to cyfrowa reprezentacja próbek sygnałów analogowych. Modulacja ta jest wykorzystywana do cyfrowego zapisu plików audio. Jeżeli bufor wejściowy zostanie odczytany do połowy, wówczas jego pozostała zawartość zostaje przekopiowana na początek i załadowany kolejny fragment pliku mp3. Ostatnia porcja danych jest mniejsza niż dostępne miejsce w buforze wejściowym. W takiej sytuacji następuje zakończenie odtwarzania pliku mp3 i zamknięcie go. Zakończenie

odtwarzania pliku może nastąpić również w sytuacji, kiedy nie można go prawidłowo otworzyć lub na skutek wciśnięcia przycisku użytkownika. Po tych czynnościach następuje powrót do poprzedniej funkcji i rozpoczyna się sprawdzanie kolejnego pliku na karcie SD. Jeżeli plik ten będzie w formacie mp3 i uda się go otworzyć to nastąpi proces jego dekodowania i odtwarzania. 3. Przetwornik CA W projekcie został użyty jest zewnętrzny przetwornik CA, który jest układem dedykowanym do plików audio (CS43L22). Układ ten na wejściu dostaje próbki cyfrowego sygnału audio, w formacie PCM. Do transmisji sygnału został wykorzystany interfejs I2S. Obsługa wysyłania zdekodowanych do PCM próbek audio, a także inicjalizacja interfejsu I2S, znajduje się w pliku Audio.c Poniżej znajduje się schemat elektryczny podłączenia przetwornika CS43L22 do mikrokontrolera. Rys. 2-2 Schemat elektryczny podłączenia przetwornika CS43L22 do mikrokontrolera W pierwszej kolejności następuje inicjalizacja audio i ustawienie głośności za pomocą funkcji: InitializeAudio( ) i SetAudioVolume( ). W następnym kroku następuje uruchomienie funkcji wysyłającej zdekodowane próbki audio do przetwornika CA: PlayAudioWithCallback( ). W trakcie odczytywania buforów z próbkami wyjściowymi naprzemiennie migają diody: pomarańczowa i czerwona. Po zakończeniu odtwarzania plików multimedialnych, następuje wyciszenie głośności wyjścia audio i zatrzymanie wysyłania próbek (wyłączenie DMA, kontrolera przerwań).

3. Wnioski i obserwacje Inicjalizacja wszystkich peryferiów oraz uruchomienie systemu przebiegło pomyślnie. W zaimplementowanym programie jest jeden błąd. Odtwarzanie pliku mp3 zawiesza się po odczytaniu raz załadowanego bufora. W założeniach jest odtwarzanie plików w pętli (po ostatnim pliku następuje powrót do pierwszego i proces odtwarzania playlisty rozpoczyna się od nowa). Środowisko Keil okazało się bardziej kłopotliwe niż Eclipse w realizacji projektu. Pojawiały się w nim problemy z licencją, podczas gdy Eclipse dział bez zarzutów. Jedynym uporczywym problemem była konfiguracja debugera. Napisanie programu realizującego odtwarzanie plików mp3 z karty SD, wymaga sporej ilości czasu i jest trudnym zadaniem dla osób nie mających doświadczenia z mikrokontrolerami. Biorąc pod uwagę fakt, że większość osób na studiach magisterskich pracuje zawodowo, a także mają inne przedmioty, które trzeba pozaliczać, projekt ten jest zbyt czasochłonny. Z załączeniu znajduje się cały projekt odtwarzacza.