# adam śmiałek MUZYKANT 1

### Co to jest?

„Muzykant 1” to prosty sterownik midi przeznaczony do samodzielnego montażu. Układ zawiera stałą listę 23 akcji uruchamianych za pomocą 23 przycisków. Akcje te zostały wybrane z uwzględnieniem typowych potrzeb użytkowników systemu midi. Układ został maksymalnie uproszczony, a cena części potrzebnych do jego zbudowania jest wyjątkowo niska, dzięki czemu sterownik jest możliwy do zbudowania także przez początkujących elektroników. Urządzenie pobiera niewiele prądu, co pozwala na efektywne zasilanie z baterii.

### A po co to?

Wiele osób do sterowania swoim instrumentarium midi potrzebuje czegoś taniego i prostego. Fabryczne sterowniki zwykle posiadają spore możliwości konfiguracyjne, jednakże bywają skomplikowane w programowaniu, a ich zaawansowanych możliwości często się nie wykorzystuje. Czasem wystarczyłby prosty, pojedynczy przełącznik nożny wybierający brzmienie, bądź załączający efekt. Często też z powodu ceny decyzja o kupnie gotowego sterownika przez młodych muzyków zostaje przesunięta w nieokreśloną przyszłość. Dzięki poniższemu opisowi każdy, kto potrafi władać lutownicą może posiąść prosty sterownik poświęcając kilka godzin czasu. Poza tym decydując się na własne rozwiązania mechaniczne można mieć urządzenie jedyne w swoim rodzaju, najbardziej optymalnie przystosowane do własnych zastosowań.

Zastosowania sterownika „Muzykant 1” chyba najlepiej wyjaśnić na kilku przykładach:

- Gitarzysta używający multiefektu z wejściem midi in chciałby zdalnie przełączać programy za pomocą przełącznika nożnego. Może sobie wykonać panel z ośmioma przełącznikami, z których każdy wybierze jeden z ośmiu programów multiefektu. Może także zrobić sobie prościutki, pojedynczy przełącznik, którego wciśnięcie będzie wybierało kolejno jeden z ośmiu programów bądź też naprzemiennie przełączało pierwsze dwa programy.

- Pianista chciałby posiadać trzy pedały w swym elektronicznym pianinie. Zwykle takie urządzenia posiadają tylko jedno wejście „sustain”. Układ pozwoli mu zrealizowanie współpracy trzech pedałów z instrumentem przez łącze midi in.

- Muzyk grający na symulatorze Hammonda dzięki nożnemu przełącznikowi zwiększającego obroty wirtualnych głośników efektu Leslie może nadać grze więcej ekspresji.

- Muzyk samodzielnie nagrywający swe partie w domowym studiu będzie miał znacznie wygodniejszą pracę, gdy wykona sobie nożny przełącznik sterujący podstawowymi funkcjami sekwencera. Dzięki temu przy wgrywaniu trudnych fragmentów skupi się na instrumencie zamiast na klawiaturze komputera przyjmując najwygodniejszą postawę.

- Muzyk imprezowy często w utworach zmienia sąsiednie brzmienia. Nożny przełączniki „+1” i „-1” umożliwi mu zmianę brzmień podczas grania bez odrywania rąk od klawiatury.

Jak więc widać to proste urządzenie może mieć sporo praktycznych zastosowań ułatwiających życie osobom muzykującym, którzy ze względu na powszechność systemu midi bardzo często mają możliwości skorzystania z jego dobrodziejstw.

## ___ 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 już tylko kilka elementów. Do większości nóżek procesora można dołączyć przełączniki zwierające owe nóżki do masy (ujemnego bieguna zasilania). Wciśnięcie, bądź w niektórych przypadkach puszczenie przełącznika wysyła wybrany komunikat midi. Wybór przełączników, ich rozmieszczenie i mechaniczne rozwiązania całości zostawiamy budującym sterownik. Ważne jest jedynie to, by przełączniki zwierały po wciśnięciu i przestawały zwierać po puszczeniu (muszą być to tak zwane przełączniki monostabilne).

A tak wygląda schemat urządzenia:

Jak widać układ zawiera 11 elementów, z czego do pracy niezbędnych jest 9. Zielona część układu to wskaźnik pracy na diodzie świecącej. Nie jest niezbędny, ale znacznie ułatwia orientację, co do działania sterownika. Diodę można podłączyć alternatywnie do jednej z dwóch końcówek mikroprocesora. W przypadku podłączenia jej do końcówki 39 dioda świeci lekko pulsując, by na czas wysyłania komunikatu przygasnąć. Pulsowanie dobrane jest w ten sposób, by nie rozpraszać użytkownika. Gdyby jednak ktoś chciał ograniczyć jeszcze nieco pobór prądu (istotne przy zasilaniu bateryjnym) może diodę podłączyć na końcówkę 38. Dzięki temu dioda będzie jedynie sygnalizować wysyłanie komunikatów krótkimi błyskami. 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 sterownika.

Poniżej znajduje się lista wszystkich komunikatów, które sterownik wysyła. Wszystkie komunikaty kanałowe są wysyłane na kanale pierwszym.

- P10 - wciśnięcie generuje komunikat „Program Change n” (wybór programu n, 1100 0000 0000 0nnn), gdzie n cyklicznie zwiększa się od 0 do 7. Po wartości 7 n przyjmuje ponownie wartość 0 i cykl się powtarza. Na zaburzenie kolejności odliczania ma wpływ wcześniejsze użycie przycisków: P11, P20, P21, P22, P23, P24, P25, P26, P27

- P11 - wciśnięcie nieparzyste generuje komunikat „Program Change 1” (wybór programu pierwszego, 1100 0000 0000 0001)
- Wciśnięcie parzyste generuje komunikat „Program Change 0” (wybór programu zerowego, 1100 0000 0000 0000)

- P12 - wciśnięcie generuje komunikat „Control Change - Sustain On” (wciśnięcie pedału sustain, 1011 0000 0100 0000 0111 1111)
- Puszczenie generuje komunikat „Control Change - Sustain Off” (puszczenie pedału sustain, 1011 0000 0100 0000 0000 0000)

- P13 - wciśnięcie generuje komunikat „Control Change - Sostenuto On” (włączenie efektu sostenuto, 1011 0000 0100 0010 0111 1111)
- Puszczenie generuje komunikat „Control Change - Sostenuto Off” (wyłączenie efektu sostenuto, 1011 0000 0100 0010 0000 0000)

- P14 - wciśnięcie generuje komunikat „Control Change - Soft On” (wciśnięcie pedału soft, 1011 0000 0100 0011 0111 1111)
- Puszczenie generuje komunikat „Control Change - Soft Off” (puszczenie pedału soft, 1011 0000 0100 0011 0000 0000)

- P15 - wciśnięcie generuje komunikat „Control Change - Modulation Full” (maksymalny efekt modulacji, 1011 0000 0000 0001 0111 1111)
- Puszczenie generuje komunikat „Control Change - Modulation Off” (modulacja wyłączona, 1011 0000 0000 0001 0000 0000)

- P16 - wciśnięcie generuje komunikat „Control Change - Breath Full” (maksymalny efekt zadęcia, 1011 0000 0000 0010 0111 1111)
- Puszczenie generuje komunikat „Control Change - Breath Off” (brak efektu zadęcia, 1011 0000 0000 0010 0000 0000)

- P17 - wciśnięcie generuje komunikat „Channel Pressure (Aftertouch) Full” (maksymalne dociśnięcie klawiatury, 1101 0000 0111 1111)
- Puszczenie generuje komunikat „Channel Pressure (Aftertouch) Off” (minimalne dociśnięcie klawiatury, 1101 0000 0000 0000)

- P20 - wciśnięcie generuje komunikat „Program Change 0” (wybór programu zerowego, 1100 0000 0000 0000)

- P21 - wciśnięcie generuje komunikat „Program Change 1” (wybór programu pierwszego, 1100 0000 0000 0001)

- P22 - wciśnięcie generuje komunikat „Program Change 2” (wybór programu drugiego, 1100 0000 0000 0010)

- P23 - wciśnięcie generuje komunikat „Program Change 3” (wybór programu trzeciego, 1100 0000 0000 0011)

- P24 - wciśnięcie generuje komunikat „Program Change 4” (wybór programu czwartego, 1100 0000 0000 0100)

- P25 - wciśnięcie generuje komunikat „Program Change 5” (wybór programu piątego, 1100 0000 0000 0101)

- P26 - wciśnięcie generuje komunikat „Program Change 6” (wybór programu szóstego, 1100 0000 0000 0110)

- P27 - wciśnięcie generuje komunikat „Program Change 7” (wybór programu siódmego, 1100 0000 0000 0111)

- P30 - wciśnięcie generuje komunikat „Start” (1111 1010)

- P32 - wciśnięcie generuje komunikat „Continue” (1111 1011)

- P33 - wciśnięcie generuje komunikat „Stop” (1111 1100)

- P34 - wciśnięcie generuje komunikat „Program Change n” (wybór programu n, 1100 0000 0nnn nnnn), gdzie n cyklicznie zwiększa się od 0 do 127. Po wartości 127 n przyjmuje ponownie wartość 0 i cykl się powtarza. Jeśli przycisk pozostanie przez chwilę wciśnięty nastąpi generacja serii komunikatów zgodnie z opisaną regułą.

- P35 - wciśnięcie generuje komunikat „Program Change n” (wybór programu n, 1100 0000 0nnn nnnn), gdzie n cyklicznie zmniejsza się od 127 do 0. Po wartości 0 n przyjmuje ponownie wartość 127 i cykl się powtarza. Jeśli przycisk pozostanie przez chwilę wciśnięty nastąpi generacja serii komunikatów zgodnie z opisaną regułą.

- P36 - wciśnięcie generuje komunikat „Control Change - Data Increment” (zwiększ daną, 1011 0000 0110 0000 0000 0000). Jeśli przycisk pozostanie przez chwilę wciśnięty nastąpi generacja serii komunikatów.

- P37 - wciśnięcie generuje komunikat „Control Change - Data Decrement” (zmniejsz daną, 1011 0000 0110 0001 0000 0000). Jeśli przycisk pozostanie przez chwilę wciśnięty nastąpi generacja serii komunikatów.

## ___ robimy zakupy ________________

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

- R1, R2, R3 - 220Ω, wartość R3 można zwiększyć w przypadku zastosowania diod świecących o wysokiej efektywności, co pozwoli na zmniejszenie poboru prądu przy zasilaniu bateryjnym.
- C1, C2 - 33pF.
- C3, C5 - 4,7μF, napięcie pracy 6,3V lub wyższe. Zaleca się, by wartość C5 przy zasilaniu bateryjnym wynosiła 100μF.
- C4 - 100nF.
- X1 - kwarc 6MHz.
- D1 - dowolna dioda świecąca.
- IC1 - jeden z układów, do wyboru: AT89S51, AT89S52, AT89S53, AT89S8252.
- Gniazdo DIN5 female do podłączenia kabla midi.
- 30cm dwużyłowej linki.
- Przełączniki i elementy obudowy - wedle własnych potrzeb i możliwości.

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).

Elementy potrzebne do zbudowania zasilacza opisane są 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ę nie ma potrzeby stosować płytki drukowanej, jednakże nic nie stoi na przeszkodzie, by sobie ją zaprojektować i poprowadzić montaż w sposób bardziej estetyczny. Nie polecam używania podstawki pod mikroprocesor ze względu na jej zawodność i niewielki sens stosowania w tym projekcie. Jeśli jednak ktoś ma opory przed lutowaniem nóżek układu scalonego niechaj sobie nabędzie podstawkę tak zwaną precyzyjną, wysokiej jakości. Poniżej znajdują się zdjęcia układu prototypowego, na których można się wzorować przy lutowaniu.

Widok z góry:

Widok z dołu:

Jak widzimy większość elementów znajduje się na spodzie układu scalonego. Kwarc należy przykleić do górnej strony układu kroplą gorącego kleju. Pozostałe elementy trzymają się na nóżkach układu. Należy zadbać o to, by podłączenie kondensatora C3 do dziewiątej nóżki układu umożliwiło późniejsze założenie na tę nóżkę podstawki programatora (jak na zdjęciu poniżej). Lutowanie należy przeprowadzić sprawnie i krótko, uprzednio skróciwszy odpowiednio wszystkie wyprowadzenia elementów. Zaleca się zastosowanie tak zwanych koszulek termokurczliwych na wszystkich końcówkach kabli (na zdjęciu ich nie ma, ponieważ przysłoniłyby część elementów). Koszulkę taką przycina się na długość 1 - 2cm, zakłada na kabel, by po jego przylutowaniu przesunąć na lut i delikatnie ogrzać np. nad zapalniczką. Koszulka zaciśnie się i połączenie będzie odporne na zwarcia. 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 ________________

Jeśli już nasze urządzenie wygląda jak na zdjęciach powyżej należy mu dostarczyć napięcie zasilające. Producent mikroprocesora określa przedział tego napięcia na 4 - 5,5V. W praktyce ów przedział jest nieco szerszy, układ pracuje poprawnie od 3,65 do 6V. Nie wolno przekroczyć napięcia 6,6V, gdyż może to spowodować uszkodzenie mikroprocesora. Jest wiele sposobów zasilania układu i każdy może wybrać najwygodniejszy dla siebie. Diody na schematach prezentowanych niżej to dowolne prostownicze diody jednoamperowe.

Zasilanie za pomocą trzech baterii AA, AAA bądź baterii płaskiej.

To najprostszy sposób zasilania układu. Niestety, niezbyt ekonomiczny, ponieważ układ przestanie działać, gdy baterie nie będą jeszcze zupełnie wyczerpane. Dioda zabezpiecza układ przed odwrotnym podłączeniem baterii, wyłącznik odcina zasilanie. Zaleca się zwiększenie pojemności kondensatora C5 do co najmniej 100μF. Zaleca się także podłączenie diody świecącej do wyprowadzenia 38.

Zasilanie za pomocą czterech akumulatorków AA lub AAA.

Układ różni się względem powyższego dodatkowym, czwartym ogniwem, co zostało wymuszone nieco niższym napięciem nominalnym akumulatorów. Dioda zabezpiecza układ przed odwrotnym podłączeniem akumulatorów równocześnie obniżając nieco napięcie do bezpiecznego poziomu, gdy akumulatory są w pełni naładowane. Wyłącznik odcina zasilanie.

Zasilanie za pomocą baterii lub akumulatora dziewięciowoltowego 6F22 lub 6F25.

Ten sposób zasilania umożliwi miniaturyzację urządzenia. Niestety układ będzie działał najkrócej ze względu na niewielką ilość energii w takiej baterii oraz dodatkowy pobór prądu przez stabilizator, którym jest popularny układ 78L05. Kondensatory powinny znajdować się blisko stabilizatora, połączenie stabilizatora z mikroprocesorem powinno być możliwie krótkie (kilka centymetrów). Dioda zabezpiecza układ przed odwrotnym podłączeniem baterii, wyłącznik odcina zasilanie. Zaleca się podłączenie diody świecącej do wyprowadzenia 38.

Zasilanie za pomocą stabilizowanego zasilacza 4 - 5,5V.

Jeśli dysponujemy stabilizowanym zasilaczem sieciowym o napięciu 4 - 5,5V możemy go użyć w sposób jak na schemacie. Należy zwrócić uwagę, by napięcie było stabilizowane, a nie tylko prostowane. Wydajność zasilacza nie ma znaczenia (wystarczy 20 mA). Dioda zabezpiecza układ przed odwrotnym podłączeniem zasilacza.

Zasilanie za pomocą dowolnego zasilacza o napięciu 9 - 15V.

W ten sposób możemy wykorzystać dowolny zasilacz stabilizowany, prądu stałego niestabilizowanego czy prądu zmiennego o zakresach napięć 9 - 15V. Stabilizator to popularny układ 78L05. Kondensatory powinny znajdować się blisko stabilizatora, połączenie stabilizatora z mikroprocesorem powinno być możliwie krótkie (kilka centymetrów).

## ___ programujemy ________________

Na czas programowania układu musimy zadbać o to, by napięcie zasilania było zbliżone do 5V. Jeśli stosujemy zasilanie bateryjne czy też akumulatorowe, postarajmy się, by baterie były świeże, a akumulatory naładowane. Proces programowania może nieco odstraszać, jest to jednak proces bardzo prosty, 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 ________________

Sterownik jest zaprogramowany. Odłączamy podstawkę programatora. Jeśli dioda jest podłączona do końcówki 39 powinna się zaświecić lekko pulsując. Możemy teraz próbnie podłączyć nasze urządzenie midi. Przy okazji pamiętajmy, że wyjście midi out zawsze podłączamy do wejścia midi in. Zwieranie końcówek przełączników do masy powinno być sygnalizowane błyskami diody, podłączone urządzenie powinno interpretować komunikaty zgodnie z przeznaczeniem. Pozostaje nam teraz wybór funkcji i wykonanie obudowy.

## ___ modyfikujemy ________________

### Dodatkowe przełączniki.

Porty P02 - P07 (nóżki procesora 32 - 37) pozostają niepodłączone. Istnieje możliwość użycia ich do generacji sześciu dodatkowych komunikatów. Warunkiem koniecznym jest podpięcie tych wyprowadzeń do zasilania przez rezystory o wartości kilkadziesiąt kΩ oraz ściągnięcie stąd alternatywnego programu dla mikroprocesora. Program ten nie będzie poprawnie pracował na procesorze 89S51. Dodatkowe komunikaty zostały wybrane tak, by móc w prosty sposób (ze stałą dynamiką) wyzwalać brzmienia głównych instrumentów perkusyjnych w standardzie General Midi na kanale dziesiątym. Należy pamiętać, że pozostałe komunikaty kanałowe generowane są na kanale pierwszym.

Lista dodatkowych komunikatów:

- P02 - wciśnięcie generuje komunikat „Note On 36 Velocity 64” (wciśnięcie przycisku C, Bass Drum 1, 1001 1001 0010 0100 0100 0000)
- Puszczenie generuje komunikat „Note Off 36 Velocity 0” (puszczenie przycisku C, Bass Drum 1, 1000 1001 0010 0100 0000 0000)

- P03 - wciśnięcie generuje komunikat „Note On 37 Velocity 64” (wciśnięcie przycisku Cis, Side Stick, 1001 1001 0010 0101 0100 0000)
- Puszczenie generuje komunikat „Note Off 37 Velocity 0” (puszczenie przycisku Cis, Side Stick, 1000 1001 0010 0101 0000 0000)

- P04 - wciśnięcie generuje komunikat „Note On 38 Velocity 64” (wciśnięcie przycisku D, Acoustic Snare, 1001 1001 0010 0110 0100 0000)
- Puszczenie generuje komunikat „Note Off 38 Velocity 0” (puszczenie przycisku D, Acoustic Snare, 1000 1001 0010 0110 0000 0000)

- P05 - wciśnięcie generuje komunikat „Note On 42 Velocity 64” (wciśnięcie przycisku Fis, Closed Hi Hat, 1001 1001 0010 1010 0100 0000)
- Puszczenie generuje komunikat „Note Off 42 Velocity 0” (puszczenie przycisku Fis, Closed Hi Hat, 1000 1001 0010 1010 0000 0000)

- P06 - wciśnięcie generuje komunikat „Note On 46 Velocity 64” (wciśnięcie przycisku Ais, Open Hi Hat, 1001 1001 0010 1110 0100 0000)
- Puszczenie generuje komunikat „Note Off 46 Velocity 0” (puszczenie przycisku Ais, Open Hi Hat, 1000 1001 0010 1110 0000 0000)

- P07 - wciśnięcie generuje komunikat „Note On 49 Velocity 64” (wciśnięcie przycisku cis, Crash Cymbal 1, 1001 1001 0011 0001 0100 0000)
- Puszczenie generuje komunikat „Note Off 49 Velocity 0” (puszczenie przycisku cis, Crash Cymbal 1, 1000 1001 0011 0001 0000 0000)

### Współpraca z komputerem PC przez game port.

Istnieje bardzo prosty sposób przystosowania sterownika do współpracy z komputerem PC zaopatrzonym w game port. Przy okazji rozwiąże się także problem źródła zasilania. Wystarczy wykonać tylko trzy połączenia: 15 nóżka wtyku DB15 male (pasującego do game portu) bezpośrednio z wyprowadzeniem P31 (TX) mikroprocesora, 5 nóżka z ujemnym wyprowadzeniem kondensatora C5 (masa), a nóżka 8 z dodatnim wyprowadzeniem kondensatora C5 (zasilanie). Oczywiście jakiekolwiek dodatkowe zasilanie sterownika należy zlikwidować. Połączenie najlepiej wykonać dwużyłowym kablem ekranowanym, przy czym ekran (oplot kabla) będzie łączył masę z nóżką 5 wtyku DB15 male. Długość kabla nie powinna przekraczać 2 metrów. Pamiętać należy, że ten typ połączenia nie jest zbyt odporny na zakłócenia. Gdyby nie było potrzeby równoczesnego korzystania z wyjścia midi out można usunąć rezystory R1, R2 oraz samo gniazdo midi out. Poniżej znajduje się schematyczny widok wtyku DB15 male od strony lutowania przewodów. Czerwonym kolorem oznaczono styki, do których należy przylutować przewody wedle opisu powyżej.

### Współpraca z komputerem PC przez serial port.

Istnieje nieskomplikowany sposób przystosowania sterownika do pracy z komputerami PC pozbawionymi interfejsów muzycznych. Do komunikacji wykorzystamy serial port (znany też jako COM, RS232, port szeregowy). Port ten w komputerze PC zwykle jest niewykorzystany. Rozwiązanie takie umożliwia także współpracę, gdy pozostałe porty midi są już zajęte. Konieczne będzie wykonanie układu dopasowującego, który widzimy na schemacie poniżej:

Układ scalony to popularny konwerter MAX232. Wartość kondensatorów może zawierać się w szerokim przedziale od 1μF do 10 μF. Ważne, by ich napięcie pracy wynosiło przynajmniej 16V i by ich pojemności były równe. Możemy także zastosować układ MAX232A, wtedy kondensatory powinny mieć wartość 100nF. Układ jest na tyle prosty, że nie ma potrzeby stosowania płytki drukowanej. Ważne, by nie pomylić biegunowości kondensatorów, na schemacie wbrew temu, co się wydaje nie ma błędów. 10 nóżkę układu MAX232 łączymy bezpośrednio z wyprowadzeniem P31 (TX) mikroprocesora, 15 nóżkę z ujemnym wyprowadzeniem kondensatora C5 (masa), a nóżkę 16 z dodatnim wyprowadzeniem kondensatora C5 (zasilanie). Połączenia te powinny być możliwie krótkie (kilka centymetrów). Następnie należy połączyć 7 wyprowadzenie układu MAX232 z 2 nóżką wtyku DB9 female (pasującego do serial portu), a wyprowadzenie 15 (masę) z nóżką 5. W samym wtyku należy jeszcze zewrzeć ze sobą nóżki 7 i 8. Poniżej znajduje się schematyczny widok wtyku DB9 female od strony lutowania przewodów. Czerwonym kolorem oznaczono styki, do których należy przylutować przewody wedle opisu powyżej oraz te, które należy ze sobą zewrzeć.

To jeszcze nie koniec. Należy wymienić kwarc na taki, który pracuje z częstotliwością 7,3728Mhz. Uniemożliwi to ewentualną pracę z interfejsem midi. Jeśli chcielibyśmy mieć urządzenie uniwersalne należy zamontować dwa kwarce i przełączać je w zależności od sposobu podłączenia sterownika. Przełącznik musi być miniaturowy i położony bardzo blisko kwarców oraz wyprowadzeń X1 i X2. Gdy jednak zdecydujemy się wyłącznie na pracę przez serial port możemy usunąć rezystory R1, R2 oraz samo gniazdo midi out. Możemy także pokusić się o zasilanie sterownika wprost z komputera PC. Serial port nie oferuje napięcia zasilającego o zadowalających parametrach, istnieją jednak co najmniej dwa inne łącza, które możemy wykorzystać. Pierwsze to USB. Wystarczy podłączyć 1 złącze wtyku USB z dodatnim wyprowadzeniem kondensatora C5, jak na opisie poniżej (widok wtyku od strony lutowania przewodów):

Można także wykorzystać jeden z portów PS2 (port myszy i klawiatury), jeśli któryś jest wolny. W tym celu dodatnie wyprowadzenie kondensatora C5 łączymy z wyprowadzeniem 4 wtyku Mini DIN6 male, który wkładamy do dowolnego portu PS2, jak na opisie poniżej (widok wtyku od strony lutowania przewodów):

Oczywiście w obu wypadkach jakiekolwiek dodatkowe zasilanie sterownika należy zlikwidować. Połączenie z serial portem najlepiej wykonać kablem ekranowanym, przy czym ekran (oplot kabla) będzie łączył wyprowadzenie 15 układu MAX232 (masę) z nóżką 5 wtyku DB9 female. Nie należy podłączać dodatkowych przewodów masowych do portów PS2 czy USB. Długość kabla nie powinna przekraczać 2 metrów. Pamiętać należy, że ten typ połączenia nie jest zbyt odporny na zakłócenia.

Na końcu czeka nas instalacja sterowników emulujących interfejs midi na łączu serial. Sterowniki te udostępniają bezpłatnie takie firmy jak Roland, Yamaha, Korg, Kawai i Alesis. Możemy je pobrać ze stron firmowych, można także stąd pobrać sterownik zaprojektowany przez Rolanda. Po ściągnięciu i rozpakowaniu wykonujemy następujące kroki (opis dla systemu Windows XP):

- 1. W „Panelu sterowania” klikamy „Dodaj sprzęt”.
- 2. Klikamy „Dalej”.
- 3. Zaznaczamy „Tak, urządzenie zostało już podłączone”, klikamy „Dalej”.
- 4. Zaznaczamy ostatnią pozycję na liście „Dodaj nowe urządzenie sprzętowe”, klikamy „Dalej”.
- 5. Zaznaczamy „Zainstaluj sprzęt, który wybiorę ręcznie z listy (zaawansowane)”, klikamy „Dalej”.
- 6. Zaznaczamy „Pokaż wszystkie urządzenia”, klikamy „Dalej”.
- 7. Klikamy „Z dysku”, wskazujemy ścieżkę do rozpakowanych sterowników.
- 8. Zaznaczamy „Roland Serial Midi Driver for Windows NT”, dwukrotnie klikamy „Dalej”.
- 9. Na pojawiający się komunikat o braku testów zgodności z systemem odpowiadamy „Mimo to kontynuuj”.
- 10. Pojawiający się panel „Roland Serial Midi Driver Settings” zatwierdzamy „OK” z wartościami domyślnymi.
- 11. Klikamy „Zakończ”, a następnie zgadzamy się na zresetowanie komputera.

Po resecie w aplikacji, którą chcemy sterować należy wybrać port midi o nazwie „Roland Serial Midi In”.

Gdyby w komputerze PC nie było serial portu, to należy skorzystać z przejściówki USB - serial port, zbudowanej najczęściej w postaci niewielkiej wtyczki montowanej w gnieździe USB. Należy pamiętać, by przed instalacją sterownika serial - midi zainstalować sterownik obsługujący przejściówkę USB - serial.

### Współpraca z urządzeniami wyposażonymi w złącze TO HOST.

Niektóre urządzenia wyposażone w wejścia midi posiadają także wejścia TO HOST. W szczególnych przypadkach wygodnie będzie użyć tego wejścia do sterowania urządzeniem. Cały opis przystosowania sterownika do współpracy z portem TO HOST jest zawarty w rozdziale wyżej. Jedyną różnicą jest wtyk. Zamiast złącza DB9 female użyjemy wtyku Mini DIN8 male. Łączymy 7 wyprowadzenie układu MAX232 z 3 nóżką wtyku Mini DIN8 male, a wyprowadzenie 15 (masę) z nóżkami 4 (środkową) oraz 8. W samym wtyku należy jeszcze zewrzeć ze sobą nóżki 1 i 2. Poniżej znajduje się schematyczny widok wtyku Mini DIN8 male od strony lutowania przewodów. Czerwonym kolorem oznaczono styki, do których należy przylutować przewody wedle opisu powyżej oraz te, które należy ze sobą zewrzeć.

Czasem urządzenia umożliwiają wybór szybkości pracy portu TO HOST pomiędzy 31250bps i 38400bps. Dla niższej szybkości należy użyć kwarcu 6MHz, dla wyższej 7,3728Mhz. Także i w tym wypadku kabel powinien być ekranowany, przy czym ekran (oplot kabla) będzie łączył masę z nóżkami 4 i 8 wtyku Mini DIN8 male. Długość kabla nie powinna przekraczać 2 metrów.

## ___ mamy kłopoty z uruchomieniem sterownika ________________

Budowa sterownika 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 sterownika 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 sterownika 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 sterownika. 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ć wyraźne miganie, najwolniejsze (o częstotliwości około 7Hz) 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ą sterownika ________________

Sterownik midi 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. Niedopuszczalne są tymczasowe rozwiązania, które rozpadną się przy pierwszych wstrząsach. Układ jest na tyle prosty, że nie wymaga płytki drukowanej, wymaga jednak obudowy i odpowiedniego mocowania całości. Przełączniki powinny działać pewnie. Układ jest odporny na niezbyt precyzyjne działanie styków przełączników, nie jest to jednak odporność duża ze względu na pożądaną szybkość pracy sterownika.

Zasilanie.

Niezawodnym sposobem zasilania nie jest zewnętrzny zasilacz sieciowy, a bateria pewnych akumulatorów lub ogniw jednorazowych. W warunkach polowych każdy dodatkowy zasilacz to ryzyko jego przypadkowego wyłączenia i dodatkowy, przeszkadzający kabel. Poza tym wyeliminowanie zasilacza wyeliminuje także całkowicie zakłócenia przenoszone drogą sieciową. Gdyby jednak użytkownik sterownika zdecydował się na zasilanie sieciowe proponuję zwiększyć pojemność kondensatora C5 nawet do tysiąca μF. Zabezpieczy to układ przed chwilowymi zanikami napięcia. Nadto warto na wejściu zasilania założyć typowy dławik przeciwzakłóceniowy o wartości kilkaset μH.

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, w której kryłby się sam układ jak i przełączniki. Dzięki ekranowaniu zwiększa się odporność na zakłócenia elektryczne pochodzenia zewnętrznego, które mogłyby np. wywołać spontaniczne wysyłanie komunikatów.

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.

Zmniejszanie rezystancji obwodów.

Następnym zabiegiem podobnym w skutkach do ekranowania jest umieszczenie pomiędzy każdym wejściem procesora, do którego można podłączyć przełącznik, a zasilaniem rezystora o wartości kilka kΩ. W praktyce stosuje się zgrabne zespoły rezystorów po osiem sztuk w jednej obudowie o rozstawie równym odległości pomiędzy końcówkami mikroprocesora, co upraszcza montaż. Dobrym uzupełnieniem będzie wprowadzenie pomiędzy końcówkę 9 (RST), a masę rezystora 10kΩ oraz diody prostowniczej skierowanej anodą do masy.

Dziwne komunikaty.

Odbieranie nietypowych komunikatów midi może być spowodowane nieprawidłową częstotliwością zegara układu lub zbyt niskim napięciem zasilania. Drugie zjawisko wyeliminuje wymiana baterii, na pierwsze 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.

## ___ dodatki ________________

### Parametry elektryczne sterownika.

- Zakres napięć zasilania sterownika: 3,65 - 6V.
- Maksymalne dopuszczalne napięcie zasilania: 6,6V. Wyższe napięcie może spowodować uszkodzenie mikroprocesora.
- Pobór prądu w funkcji napięcia zasilania dla następujących warunków: sterownik obciążony urządzeniem midi, procesor 89S52.

- 1. Wciśnięty przełącznik P34, dioda świecąca podłączona do wyprowadzenia 39.
- 2. Wszystkie przełączniki zwolnione, dioda świecąca podłączona do wyprowadzenia 39.
- 3. Wszystkie przełączniki zwolnione, dioda świecąca podłączona do wyprowadzenia 38.

Istnieje możliwość użycia kompatybilnych mikroprocesorów, o ile kod programu będzie mieścił się w ich pamięci, a obciążalność wyjść będzie nie mniejsza niż w mikroprocesorach wymienionych w spisie elementów.

Tutaj znajduje się karta implementacyjna sterownika.

#### Pragnę przeprosić z góry za niemożliwość indywidualnej pomocy przy ewentualnych kłopotach związanych z budową sterownika, 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 sterownik należy być świadomym tego, że odpowiedzialność za jakiekolwiek szkody związane z jego używaniem spoczywa na użytkowniku sterownika.

#### 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.