- Płytka o wymiarach 102×155 mm
- Typy obsługiwanych kart: MMC/SD
- System plików: FAT16/32
- Prędkość transmisji przez port MIDI: 31,250 kbd.
- Elementy sterowania: 4 przyciski, wyświetlacz LCD informujący o odtwarzanym pliku MIDI
Do czego może być przydatny prezentowany w artykule odtwarzacz? Na pewno będą wiedzieli użytkownicy wszelkich keyboardów. Najnowsze ich modele są już standardowo wyposażone w czytnik popularnych kart SD/MMC, na których można przechowywać pliki MIDI przeznaczone do odtwarzania. Starsze keyboardy posiadały najczęściej wbudowany napęd dyskietek 3,5 cala, który wyszedł już praktycznie z użycia. Istnieje jednak możliwość unowocześnienia tego typu instrumentów poprzez zastosowanie przystawki służącej do odtwarzania plików MIDI, która będzie podłączana do instrumentu poprzez gniado MIDI. Zaprezentowany w dalszej części artykułu odtwarzacz MIDI umożliwia odtwarzanie plików MIDI w formacie 0, odczytywanych z karty SD/MMC. W przypadku plików MIDI zapisanych w innych formatach, dostępne są liczne programy konwertujące pliki MIDI do formatu 0. Początkowo zastanawiałem się nad wykorzystaniem w takiej przystawne układu Vinculum (host USB), dzięki któremu można w prosty sposób obsłużyć pamięci masowe typu Pendrive. Zasadniczym założeniem było jednak maksymalne uproszczenie konstrukcji i ograniczenie kosztów. Zastosowanie układu Vinculum podniosłoby nieco koszt całej przystawki. Ostatecznie decyzja padła na łatwo dostępne pamięci, jakimi są karty SD/MMC.
Z kartami tymi może się bezpośrednio komunikować mikrokontroler. Idealny do tego typu przystawki okazał się kosztujący kilkanaście złotych mikrokontroler PSoC firmy Cypress, dla którego są dostępne biblioteki umożliwiające obsługę kart SD/MMC z wykorzystaniem systemu plików FAT. Tak więc po przekopiowaniu plików MIDI z wykorzystaniem komputera na kartę pamięci, może je bez problemu odczytać odtwarzacz. Do obsługi przystawki służą są 4 przyciski: „PREV”, „NEXT”, „PLAY”, „STOP”, a na wyświetlaczu LCD są przedstawiane informacje o nazwie odtwarzanego pliku.
Podstawowe informacje o MIDI
MIDI, czyli cyfrowy interfejs instrumentów muzycznych, mimo swojego wieku nadal jest popularny i bardzo często wykorzystywany. W standardzie MIDI występują trzy złącza: MIDI IN, MIDI THRU i wykorzystywany w tym odtwarzaczu MIDI OUT (wyjście). Dane przesyłane za pomocą interfejsu MIDI mają postać asynchroniczną i przebiegają z prędkością 31,250 kbd. Przesyłane dane mają postać 10–bitowych ramek składających się z bitu startu, 8 bitów danych i bitu stopu. Wiadomości przesyłane przez interfejs MIDI można podzielić na bajty statusu i bajty danych. Interfejs MIDI jest logicznie dzielony na 16 kanałów numerowanych do 1 do 16. W rozpoczynającym większość wiadomości bajcie statusu kodowany jest numer kanału, na którym dany komunikat jest przesyłany. Plik MIDI jest zbiorem głównie wiadomości dźwiękowych, które są przesyłane na jednym z dostępnych kanałów. Za pośrednictwem wiadomości dźwiękowych można generować dźwięk o określonych parametrach (ton, głośność itp.) dla każdego z kanałów, który jest kodowany w przesyłanej wiadomości. W plikach MIDI przechowywane są wiadomości MIDI wraz z informacją o czasie ich odbioru, przy czym czas jest odmierzany względnie, pomiędzy parami sąsiednich komunikatów. Pliki mogą również przechowywać wiele dodatkowych informacji, jak tempo, takt, czy tekst piosenek. Można wyróżnić różne formaty plików MIDI różniące się sposobem wewnętrznej organizacji danych. Prezentowany w artykule odtwarzacz obsługuje pliki MIDI w formacie 0, który jest plikiem z pojedynczą ścieżką utworu.
Opis działania układu
Mikrokontroler U1 wraz z wyświetlaczem LCD są zasilane napięciem +5 V, natomiast karta SD/MMC musi być zasilana napięciem +3,3 V. Rezystory R1...R6 podciągają linie interfejsu SPI karty SD/MMC (J1) do dodatniego napięcia zasilania. Nie są wtedy wymagane dodatkowe układy pośredniczące do konwersji poziomów napięć linii komunikacyjnych z kartą SD/MMC. Linia SD_CD złącza J1 jest wykorzystywana do wykrywania włożenia karty SD/MMC do gniada. Przyciski S1...S4 służą do obsługi odtwarzacza. Pozwalają na zmianę utworu oraz start/stop odtwarzania. Odczytane z pliku MIDI nuty są wysyłane z wykorzystaniem linii TXD doprowadzonej do gniada MIDIOUT. Diody D1 i D2 zabezpieczają linię TXD przed uszkodzeniem. Odtwarzacz może być zasilany napięciem niestabilizowanym lub stabilizowanym o wartości do 12 V. Elementy M1, U3, U4, C1...C6 tworzą prosty zasilacz odtwarzacza. Stabilizator U3 stabilizuje napięcie na poziomie +5 V, a stabilizator U4 na poziomie +3,3 V. Odtwarzacz składa się z niewielu elementów, a to dzięki wykorzystaniu mikrokontrolera PSoC, który posiada wiele rekonfigurowanych peryferiów. Oprogramowanie mikrokontrolera zostało przygotowane w języku C. Jego głównym zadaniem jest odczyt zawartości pliku MIDI i wysłanie nut na linię TXD mikrokontrolera (w tempie odczytanym również z pliku MIDI). Na wyświetlaczu LCD, w pierwszym wierszu jest wyświetlana nazwa wybranego pliku, natomiast w drugim wierszu jest wyświetlany stan odtwarzacza (Start/Stop odtwarzania). Po wysłaniu wszystkich nut odtwarzacz przechodzi w tryb stopu.