# adam śmiałek MUZYKANT 11

### Co to jest?

„Muzykant 11” to prosty w wykonaniu, ale niezwykle efektywny moduł elektronicznej perkusji o charakterystycznym brzmieniu „lo-fi”, typowym dla wczesnych automatów perkusyjnych z początku lat osiemdziesiątych. Urządzenie generuje dźwięki zapisane w niewielkiej pamięci (6kB) w postaci ośmiu krótkich próbek. Jednakże różne kombinacje częstotliwości samplingu, wybór fragmentów sampli oraz opcjonalna generacja rewersyjna umożliwiły emisję aż 47 różnych brzmień. Nadto każde z nich reaguje na pitch bend (brzmienia można odstrajać) i dwustopniowo interpretuje dynamikę (velocity). Brzmienia zostały złożone zgodnie ze schematem General Midi, choć część z nich charakterem od wzorca sporo odstaje.

Pełen wybór brzmień możliwy jest z poziomu midi, natomiast układ zawiera 23 opcjonalne przełączniki, którymi można wyzwalać wybrane instrumenty. Ręczne wyzwalanie ma wyższy priorytet od rozkazów przychodzących złączem midi.

Układ jest niezwykle prosty jak na swe możliwości i posiada pewne ograniczenia. Jest monotimbralowy, co oznacza, że jednocześnie może generować jedno brzmienie, a poza tym w czasie jego odtwarzania nie reaguje na komunikaty midi. Nie jest to jednak uciążliwe ograniczenie ponieważ brzmienia są krótkie i umożliwiają pisanie zaawansowanych aranży, co najlepiej słychać w umieszczonym tutaj demo. Poza tym czystość brzmień ze względu na rozdzielczość, częstotliwość samplowania oraz niedokładność przetwornika cyfrowo analogowego daleka jest od doskonałości, ale właśnie ten charakterystyczny „brud” brzmieniowy jest tu zaletą. Cena części potrzebnych do złożenia modułu jest wyjątkowo niska, a złożoność konstrukcji niewielka, dzięki czemu sampler jest możliwy do zbudowania także przez początkujących elektroników.

### A po co to?

Co jakiś czas powraca moda na brzmienia z przeszłości. Moduł nawiązuje do czasów pierwszych komputerów ośmiobitowych i cyfrowych elektronicznych perkusji takich jak Casio RZ1 czy Roland TR707. Oczywiście dziś brzmienia te najłatwiej symulować programowo. Jednakże jeśli z jakiś powodów ktoś chciałby stworzyć sobie niepowtarzalny moduł sprzętowy mogący pracować niezależnie od komputera, a do tego w technologii lat osiemdziesiątych, może w godzinę stać się właścicielem takowego. Z czysto praktycznych zastosowań układ umożliwia wykonanie końcówki metronomu sterowanego midi.

## ___ jak to działa ________________

Na wstępnie pragnę wspomnieć, że do wykonania urządzenia wystarczy podstawowa wiedza na temat jego budowy i sposobu działania. Dlatego poniższy opis będzie traktował temat pobieżnie i zupełnie pominie zagadnienia programu mikrokontrolera.

Sercem układu jest mikroprocesor firmy Atmel, ze znanej i popularnej rodziny „51”. Poza procesorem w układzie pracuje niewiele elementów. Do większości nóżek procesora podłączone są przełączniki wyzwalające brzmienia, które montuje się opcjonalnie, a w szczególności - jeśli moduł będzie sterowany wyłącznie przez midi - można pominąć. Port P0 steruje prostym przetwornikiem cyfrowo analogowym zbudowanym w postaci tak zwanej drabinki rezystorów R-2R.

A tak wygląda schemat urządzenia:

Jak widać układ zawiera 12 elementów oraz dwie drabinki rezystorów, które można złożyć z identycznych 32 rezystorów o niekrytycznej wartości bezwzględniej. Niebieska część schematu obrazuje połączenie układu z komputerem PC, niezbędne tylko podczas programowania układu, które zwykle będzie przeprowadzane raz, podczas uruchamiania samplera. Gdyby nie było potrzeby sterowania samplerem przez midi można pominąć transoptor IC2 oraz przyległe do niego diodę i rezystor.

Układ rozpoznaje następujące komunikaty.

- „Note On n Velocity m Channel 10” (wciśnięcie klawisza n z dynamiką m na kanale 10, 1001 1001 0nnn nnnn 0mxx xxxx), gdzie n przyjmuje wartości od 35 do 81. Dynamika jest interpretowana dwustopniowo, dla wartości większych od 64 i mniejszych (wartości x są ignorowane). Ignorowane są także komunikaty Note Off.

- „Pitch Bender n*128” (odchylenie wysokości dźwięku, 1110 1001 0000 0000 0nnn nnnn). Komunikat jest interpretowany z rozdzielczością siedmiobitową i nie dla każdego brzmienia reaguje na pełny zakres wartości.

## ___ robimy zakupy ________________

Poniżej znajduje się lista elementów oznaczonych zgodnie ze znajdującym się wyżej schematem:

- R1 - 220Ω.
- R2 - 2,2kΩ.
- R3 - R34 - 10kΩ o możliwie małej tolerancji lub drabinka ośmiu rezystorów i drabinka R-2R.
- C1, C2 - 4,7pF dla układu 89S8253, 33pF dla pozostałych układów.
- C3, C5 - 4,7μF, napięcie pracy 6,3V lub wyższe.
- C4 - 100nF.
- C6 - 1μF.
- X1 - kwarc 12MHz.
- D1 - dowolna dioda.
- IC1 - jeden z układów, do wyboru: AT89S52, AT89S53, AT89S8252, AT89S8253. Uwag na temat tego ostatniego szukaj na dole strony.
- IC2 - transoptor PC900. Można go zastąpić dowolnym transoptorem, np. popularnym CNY17, lecz nie będziemy mieć wtedy gwarancji poprawnej współpracy samplera z każdym sprzętem midi.
- Gniazdo DIN5 female do podłączenia kabla midi.
- Przełączniki wedle potrzeb.

Do wykonania kabla programującego potrzebne będą:

- Wtyk DB25 male.
- 30cm pięciożyłowej linki.
- Podstawka pod ośmionóżkowy układ scalony oraz krokodylek (jeśli zdecydujemy się na rozwiązanie podłączania do komputera jak na zdjęciach poniżej).

## ___ budujemy ________________

Po zgromadzeniu elementów możemy przystąpić do budowy urządzenia. Potrzebna będzie sprawna lutownica dowolnego typu o mocy nie większej niż 75W oraz cyna do lutowania w postaci drutu o grubości 0,7 - 1mm. Ze względu na prostotę montaż można przeprowadzić na uniwersalnej płytce drukowanej. Poniżej znajduje się zdjęcie układu prototypowego na tak zwanej płytce rozwojowej (uniwersalnej płytce procesora).

Drabinki można złożyć z pojedynczych rezystorów. W tym celu należy kupić paczkę tanich oporników (np. 100 sztuk) i za pomocą choćby najprostszego miernika cyfrowego odłożyć 24 takie, których wartości są najbardziej do siebie zbliżone. Z nich należy złożyć drabinkę R-2R. Natomiast drabinka ośmiu rezystorów nie wymaga aż tak dużej dokładności.

Poniżej znajduje się schematyczny widok gniazda DIN5 female (midi out) od strony lutowania przewodów. Czerwonym kolorem oznaczono styki, do których należy przylutować przewody wedle schematu powyżej.

## ___ zasilamy ________________

Sampler wymaga napięcia zasilającego w zakresie 4 - 5,5V. W praktyce zakres ten jest szerszy, ale dobrym zwyczajem jest przyjęcie napięcia 5V, które jest jednym ze standardów zasilających dla urządzeń cyfrowych. W tym celu do wytworzenia napięcia najlepiej użyć najpopularniejszego stabilizatora scalonego 7805. Więcej na temat zasilania można znaleźć w opisie Muzykanta 1.

## ___ programujemy ________________

Na czas programowania układu musimy zadbać o to, by napięcie zasilające było zbliżone do 5V. Proces programowania może nieco odstraszać, jest to jednak czynność bardzo prosta, ponieważ nie potrzeba żadnych specjalistycznych narzędzi poza nieskomplikowanym kablem, którego schemat zaznaczono wyżej na niebiesko, a który widzimy poniżej:

Poniżej znajduje się schematyczny widok wtyku DB25 male (pasującego do portu parallel) od strony lutowania przewodów. Czerwonym kolorem oznaczono styki, do których należy przylutować przewody wedle niebieskiej części schematu powyżej.

Kabel zaopatrzony jest w podstawkę, którą należy założyć na układ jak na poniższym zdjęciu:

Krokodylkiem należy chwycić przewód masowy (ujemny biegun zasilania). Pomyłki nie spowodują uszkodzeń więc nie ma się czego obawiać. Zamiast stosowania podstawki i krokodylka możemy na chwilę kable przylutować. Teraz należy sobie pobrać następujące pliki:

Tutaj należy podać adres mailowy, na który zostanie przesłany programator naszego mikroprocesora. Można go pobrać także stąd.

Tutaj znajduje się program, który będziemy ładować do mikroprocesora.

Po ściągnięciu pliki: „aec_isp.exe” oraz „program.hex” kopiujemy je do dowolnego katalogu. Następnie podłączamy wtyk DB25 male do gniazda parallel komputera PC (zwanego też LPT, ECP, printer port, port równoległy) i załączamy zasilanie. Uruchamiamy program „aec_isp.exe”. Ukazuje się nam poniższe okienko:

Wybieramy opcję „Setup”.

Ustawiamy parametry jak powyżej oczywiście wybierając typ mikroprocesora, który posiadamy. Zapisujemy ustawienia opcją „Save setup”.

Wybieramy opcję „Load Hex file to Flash buffer”.

Wpisujemy nazwę „program.hex”.

Taki ekran oznacza, że plik został znaleziony, jest poprawny i załadował się. Wciskamy cokolwiek.

Wybieramy opcję „Program”. Programowanie jest procesem całkowicie bezpiecznym i może zostać przerwane w dowolnym momencie bez jakichkolwiek konsekwencji.

Czekamy kilkanaście sekund na taki ekran, który oznacza, że mikroprocesor został poprawnie zaprogramowany. Naciskamy cokolwiek, a następnie opcję „Quit”. Gdyby jednak programowanie się nie udało zapraszam niżej, do części poświęconej kłopotom.

## ___ używamy ________________

Sampler jest zaprogramowany. Odłączamy podstawkę programatora, podłączamy wzmacniacz do wyjścia audio. Przy zwieraniu wybranych nóżek procesora do masy powinniśmy słyszeć dźwięki instrumentów perkusyjnych. Przyłączamy urządzenie midi. Komunikaty Note On na kanale dziesiątym powinny wyzwalać dźwięki o zróżnicowanej dynamice, a Pitch Bender odstroi je w szerokim zakresie. Tutaj znajduje się demo brzmień samplera w formacie mp3, a tu w midi. Plik ten można wczytać do sekwencera, który będzie sterował układem.

## ___ mamy kłopoty z uruchomieniem samplera ________________

Budowa samplera jest wyjątkowo prosta, jednakże kłopoty z uruchomieniem układu mogą się zdarzyć. Należy zadbać o to, by części były sprawne. Przed montażem pasywne komponenty należy sprawdzić za pomocą choćby najprostszego multimetru. Lutowanie należy przeprowadzić dokładnie i starannie nie przepalając przy tym lutów zbyt długim procesem podgrzewania. Aby zyskać pewność co do poprawności montażu i części naszego samplera proponuję zrobienie prostej sondy jak na schemacie poniżej:

Diody świecące mogą świecić w dowolnym kolorze. Ze względu na niewielki prąd sondy należy wybrać diody o większej efektywności.

Gdy już przygotujemy sobie sondę możemy przejść do następujących testów:

Jedną z końcówek sondy podłączamy do wyprowadzenia 30 (ALE) mikroprocesora, drugą naprzemiennie do zasilania i masy. Układ samplera będzie zmontowany poprawnie, jeśli za każdym razem jedna z diod będzie się świecić. Jeśli tak nie będzie należy przejść do następnych testów.

Jedną z końcówek sondy podłączamy do masy, drugą przykładamy do wyprowadzenia 9 (RST) mikroprocesora. Kilkukrotnie podłączamy i odłączamy zasilanie samplera. Za każdym razem, gdy napięcie zostanie podłączone, jedna z diod powinna krótko, lecz wyraźnie błysnąć. Brak błyśnięcia oznacza problemy z kondensatorem C3, uszkodzenie mikroprocesora bądź nieprawidłowy montaż.

Podłączamy na chwilę wyprowadzenie 31 (EA) mikroprocesora do masy. Jedną z końcówek sondy podłączamy do zasilania, drugą przykładamy do kolejnych wyprowadzeń portów P2 i P0. Jedna z diod powinna się świecić, przy czym na części portu P2 powinniśmy widzieć miganie, najwolniejsze (o częstotliwości około 56Hz) na wyprowadzeniu 28 (P27). Następnie przykładamy sondę do kolejnych wyprowadzeń portów P1 i P3. W żadnym wypadku diody nie powinny się świecić. Inne reakcje sondy oznaczają problemy z kwarcem X1, kondensatorami C1 i C2, uszkodzenie mikroprocesora bądź nieprawidłowy montaż.

## ___ mamy kłopoty z zaprogramowaniem mikroprocesora ________________

Najczęstszą przyczyną problemów z zaprogramowaniem mikroprocesora jest nieprawidłowo funkcjonujący kabel połączeniowy pomiędzy komputerem PC, a mikroprocesorem. Kabel ten nie może być zbyt długi, musi być dokładnie wykonany, a połączenia (zwłaszcza od strony mikroprocesora) muszą być pewne. W razie problemów z podstawką stanowiącą końcówkę kabla możemy ów kabel przylutować na chwilę bezpośrednio do odpowiednich nóżek mikroprocesora. Istnieje możliwość, że port parallel w komputerze nie będzie chciał poprawnie współpracować z mikroprocesorem. Pozostanie nam wtedy szukać innego komputera do zaprogramowania układu.

Poniżej znajdują się komunikaty błędów aplikacji programującej z wyjaśnieniem przyczyn tych błędów.

Plik zawierający program mikrokontrolera jest uszkodzony. Prawdopodobnie został przekłamany podczas ściągania ze strony, należy go pobrać ponownie.

Całkowity brak komunikacji komputera PC z mikroprocesorem. Prawdopodobnie podstawka na końcu kabla programującego jest niedokładnie założona, połączenia są pomylone, zwarte lub przerwane, mikroprocesor lub port parallel w komputerze PC jest uszkodzony, napięcie zasilania układu jest zbyt małe, układ jest nieprawidłowo zbudowany.

Połączenie komputera PC z układem jest niepewne lub zbyt długie.

Połączenie komputera PC z układem jest niepewne lub zbyt długie, układ ma przekroczoną ilość gwarantowanych zapisów do pamięci (układ może być zapisywany około tysiąca razy).

## ___ mamy kłopoty ze stabilną pracą samplera ________________

Zniekształcone brzmienie samplera (znacznie różniące się od nagrania demo) może być przyczyną nieprawidłowego montażu drabinki R-2R lub zbyt dużej tolerancji wartości użytych rezystorów.

Należy pamiętać o ograniczeniu, które blokuje sampler podczas generacji brzmienia i zwracać uwagę, by sekwencje nie były zbyt gęste, bo niektóre z nut nie zostaną wygenerowane.

Moduł pracuje często w środowisku o dużym poziomie zakłóceń elektrycznych. Może to wpłynąć na prawidłowe jego działanie, co w niektórych przypadkach (np. podczas koncertu) byłoby niedopuszczalne. Zawsze odpowiednio wcześniej należy dokładnie sprawdzić, jak urządzenie zachowuje się w danych warunkach. Istnieją sposoby na ograniczenie ryzyka kłopotów. W sytuacjach, gdy niezawodność układu jest sprawą priorytetową proponuję skorzystać z poniższych porad.

Jakość wykonania.

Każdy wie, że od jakości wykonania urządzenia zależy jego niezawodność, ale w praktyce różnie to bywa. Montaż musi być pewny i czysty..

Ekranowanie.

Ekranowanie to otoczenie układu przewodzącą osłoną, którą podłącza się do masy (ujemnego bieguna zasilania) tylko w jednym punkcie, w pobliżu kondensatora C5. W szczególności najlepszym rozwiązaniem jest metalowa obudowa. Dzięki ekranowaniu zwiększa się odporność na zakłócenia elektryczne pochodzenia zewnętrznego.

Kabel midi.

Teoretycznie drugie (środkowe) wyprowadzenie gniazda midi out powinno być połączone do masy. Gniazda midi in natomiast absolutnie nie powinny mieć kontaktu z masą urządzenia nadawczego. Czasem jednak tak nie jest, czasem też kabel midi ma zwarcia oplotu do obudowy wtyczki, która jest połączona z masą urządzenia. Przy dłuższych kablach zaleca się jednak połączyć drugie wyprowadzenie gniazda midi out z masą w okolicy kondensatora C5 pod następującymi warunkami: drugie wyprowadzenie gniazda midi in w urządzeniu podłączanym nie ma kontaktu z masą tego urządzenia oraz metalowa obudowa wtyczek kabla midi nie jest połączona z oplotem (przewodem, który jest połączony z wyprowadzeniami drugimi we wtyczkach). Dobrym pomysłem przy długich kablach będzie założenie pomiędzy rezystorami R1 i R2, a wyprowadzeniami 5 i 4 gniazda midi out dławików o indukcyjności około 150μH. Można jeszcze pomiędzy owe wyprowadzenia, a masę założyć kondensatory o pojemności 220pF, a pomiędzy same wyprowadzenia diodę prostowniczą skierowaną anodą do wyprowadzenia 5.

Dziwne komunikaty.

Odbieranie nietypowych komunikatów midi może być spowodowane nieprawidłową częstotliwością zegara układu, na którą wpływ ma kwarc X1 oraz kondensatory C1 i C2. Może się okazać, że konieczna jest wymiana kwarcu na taki, który nie sprawia kłopotów. Czasem wystarczy zwiększyć pojemności kondensatorów do około 40pF, czasem wręcz przeciwnie. Ważne by kwarc i kondensatory znajdowały się możliwie blisko układu.

## ___ 89S8253 ________________

W przypadku zastosowania układu AT89S8253 należy zaprogramować układ tą aplikacją. Oczywiście nie musimy tworzyć programatora jak na schemacie tam zamieszczonym, możemy skorzystać ze sposobu podłączenia mikroproscesora jak w przypadku użycia aplikacji opisanej powyżej. Należy jedynie ustawić w menu programu podłączenie według standardu „AEC IPS”.

Aplikacja „AEC IPS” niestety nie wspiera układu AT89S8253.

## ___ dodatki ________________

### Parametry elektryczne modułu.

- Zakres napięć zasilania sampler: 3,65 - 6V, przy użyciu układu AT89S8253: 2,7 - 6V. Minimalne napięcie zależy od jakości transoptora. W szczególnych przypadkach może zachodzić konieczność zmniejszenia wartości rezystora R1.
- Maksymalne dopuszczalne napięcie zasilania: 6,6V. Wyższe napięcie może spowodować uszkodzenie mikroprocesora.

Istnieje możliwość użycia kompatybilnych mikroprocesorów o ile obciążalność wyjść będzie nie mniejsza niż w mikroprocesorach wymienionych w spisie elementów i będą one posiadać co najmniej 8kB pamięci.

Tutaj znajduje się karta implementacyjna samplera.

#### Ciekawostką tego projektu jest to, iż wykorzystuje on dokładnie całą pamięć procesora (8192 bajty).

#### Pragnę przeprosić z góry za niemożliwość indywidualnej pomocy przy ewentualnych kłopotach związanych z budową samplera, po prostu nie mam na to czasu. Chętnie natomiast poznam wszelkie sugestie, które być może uwzględnię w następnych projektach. Budując Moduł należy być świadomym tego, że odpowiedzialność za jakiekolwiek szkody związane z jego używaniem spoczywa na użytkowniku samplera.

#### Wszelkie prawa do zamieszczonych na tej stronie materiałów, rozwiązań oraz do projektu strony, jeśli nie zaznaczono inaczej, należą do autora - Adama Śmiałka. Jakiekolwiek komercyjne ich wykorzystanie wymaga bezwzględnie wcześniejszego kontaktu ze mną na adres: jankomuzykant@wp.pl.

#### All Rights Reserved.