Отговори на тема  [ 18 мнения ]  Отиди на страница 1, 2  Следваща
MIDI-RS232-USB Къде ми е грешката? 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение MIDI-RS232-USB Къде ми е грешката?
Постановката:
Направих си MIDI клавир базиран на PIC-16F877, работи добре и когато го свържа към геймпорта на РС-то нямам ядове. Захванах се обаче да си направя кабел за лаптопа Midi-to-USB и започнаха ядовете. Първоначално идеята беше да изпълня тази схема http://www.rlocman.ru/i/Image/2008/05/21/3.gif , но после реших да ползвам това което имам и само да допълня някои неща. Наличен кабел USB-RS232 базиран на PL2303, драйвери и прочие. Липсващото звено което направих е MIDI-RS232 по тази схемичка със MAX232 http://www.compuphase.com/electronics/midi-rs232.png
Софтуерното обезпечение на цялата щуротия е- драйвер за PL2303 и Roland Serial MIDI Driver, последният би трябвало да накара компорта да приема миди съобщенията. Да обаче НЕ, каквото и да правя това не се случва и нито една програма не иска да работи. при мониторинг на ком портовете при подаване на сигнал от PIC-a те достигат до ком-а и програмата за мониторинг ги отчита. Когато пусна програма за миди мониторинг няма никой :evil:
Та въпроса е аз ли бъркам някъде или мисията е невъзможна?


Прикачени файлове:
Коментар на файл: Груба блок-схема на това което правя
New Bitmap Image (3).JPG
New Bitmap Image (3).JPG [ 18.53 KiB | Прегледано 7372 пъти ]
Пет Яну 07, 2011 11:09 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Само да допълня (а то може ми и се вижда на една от схемите) оригиналният кабел е със FT232BM.


Пет Яну 07, 2011 11:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение 
Проблема да не е в PL2303? Виж тази тема: http://mcu-bg.com/mcu_site/viewtopic.php?p=67806

_________________
Warriors of the Night, ASSEMBLER!!!


Съб Яну 08, 2011 12:21 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Имах такива предположения, но лесно премахвам звеното със PL2303 и остава само MIDI-RS232, настройвам си ком-а на 38400 и под номер 3 така че да се свързва със Роланд драйвера.
Има един агент във форума дето е доста навътре точно със MIDI Messages дано да помогне.


Съб Яну 08, 2011 12:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
MIDI не е на 38400. Виж тук дали няма нещо полезно, излезе ми с Google:
http://www.compuphase.com/electronics/midi_rs232.htm


Съб Яну 08, 2011 1:35 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Юни 01, 2008 9:54 pm
Мнения: 1503
Местоположение: Пловдив
Мнение 
Тъй, не съм аз гуруто, но и той ще се включи. И все пак:

woody написа:
MIDI не е на 38400.


31.25k (+/-1%). Преди доста време правих устройство на тази тема и имах идеята да направя нещо сходно с твоето. Т.е.: процесора да приема миди командите през усб-то, което работи като виртуален ком, след което да ги подава на синтезатора (един прекрасен чип, поддържащ 1.0 спецификацията) и всичко бе наред до толкова до колкото не успях да намеря тоя твоя драйвер и да изкарвам мидито от ПЦ програма (някакъв секуенсър) през виртуален ком (а и дойде момент да не мога да се занимавам с него, та и не продължих). Но другото работеше - като симулирах MIDI команди през ком-а (ръчно въведени) проклетията пееше. В оригинал работеше с флаш памет и плейваше от нея миди файлове, но просто опитах и това, нещо като външна миди звукова карта. Ееее, вече не ми е мерак да го правя, но не е невъзможно. А все пак - защо ти е? МИДИ контролери дал Господ. Ако искаш да направиш специфичен интерфейс с човека - да, тогава има идея, но клавиатура... малко е "демоде"? Хвърляй на далече тия конвертирания докато го докараш до USB. Избери си читав контролер с USB девайс и наличен стек с витуален ком и си готов. Другото е въображение. И никакви фтди-та и подобни през макс-ове. Едно време може и да е било удачно, сега не мисля, че при налични толкова примери за усб си струва акробатиката.


Съб Яну 08, 2011 2:17 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Авг 31, 2005 1:57 pm
Мнения: 1103
Мнение 
Ето къде бъркаш
1. Всички чипове, които правят USB-Serial работят на 3,3 волта нива на линии RX/TX (може и на 5 волта да има)
2. Ти си сложил MAX232 той работи с входни сигнали 0 и 5 волта, а на изхода има около +/- 10 волта.
3. Когато ти предаваш от пика към USB преходника направо му разказваш играта - вместо единицата да е 3,3 волта, тя е повече от 10 волта от макса, а нулата не е 0 волта а повече от -10 волта. Но явно чипа се справя и не изгаря и затова виждаш от пика към компа
4. Обратното, когато подадеш от компа сигнал към пика то от USB чипа излизат 0 и 3,3 волта - тези напрежения за макса са като 0 волта, защото на него му трябват повече от +5 за единица и около 0 волта и по-малко за да го приеме като 0.

Извод - разкарваш макса - от пика през резистори намаляваш 5те волта до 3,3 към RX шината на USB чипа, а от USB чипа през два транзистора качваш сигнала от 3,3 на 5 волта.


Съб Яну 08, 2011 9:04 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
1. До колкото разбрах, човека иска да си ползва USB->RS232 кабел който вече има - без да го преправя...
2. Ако е така - то проблема е да вкара изхода от МИДИ клавиатурата си в компютъра през този кабел.
3. За преобразуване на COM порт - така че да се въжда като MIDI порт от музикалните програми ползва драйвер на Roland.

Дано да съм чел внимателно :D

Относно софтуера на ПЦ-то...
Правилно си се ориентирал - точно така се прави. Трябва ти кабел какъвто имаш и драйвера на Роланд. Има си обаче особености. Надявам се да си под XP. Та тоя драйвер си има икона в контрол панела - погледни там какво пише. До колкото си спомням имаше 2 режима - единия мулти единия сингъл порт. Трябва да е в сингълпорт режима - иначе нещеше... Не помня що...
Другото -тоя драйвер работи с COM портове от 1 до 4. Ако виртуалния ти ком порт е с някакъв друг по-голям номер /а тия кабели имат склонност да се инсталират с големи номера/ намери начин да го вкараш в диапазон от 1 до 4.
В програмите работещи с МИДИ избери за портове на входа и на изхода да е Роланд драйвеа. Свържи крачета 2 и 3 на другия край на кабела - и пробвай дали можеш да получаваш това което пращаш. Ако е така - с ПЦ-то си готов.

Сега хардуера. До колкото разбирам - имаш някакъв ПИК който сканира клавиатура. От него имаш сериен изход с честотата на МИДИ и TTL ниво. Сега - по спецификация на МИДИ-то изхода на устройството си е галванично свързан със самото устройство, а на всеки ВХОД на каквото и да е МИДИ устройство - трябва да има ОПТРОН заради галванияното разделяне. Един вид, както си дал схемата, не е ясно това ОПТРОНА и [TTL->MAX232->RS232] част от кое устройство са. Принципно правилно е да са част от приемащото - разбирай ПЦ. Хубаво - ама преди ПЦ-то нали има и кабел сериен към УСБ. Та - тука нещо не ти е наред връзката. Какво трябва да направиш според мене.

Правиш си клавиатурата да има 2 ОТДЕЛНИ изхода - един МИДИ и един за компютър - демек COM порт все едно. Повечето клавиатури които имат такава възможност са си така заводски.
Оптрон не ти трябва... Ако имаше - то той трябва да се захранва от към страна на ПЦ-то, което в твоя случай ще е по-сложно, заради COM-USB кабела.
MAX232 трябва да ти е част от схемата с пика и да се захранва от неговото захранване.
Изхода на пика /UART/- отива и към МИДИ порта и към MAX232 едновременно.
Изхода на пика /UART/ трябва да можеш да го превключваш на скорост на МИДИ и на COM 31250/38400 според на къде искаш да отива - към истинско МИДИ или към компютъра. Не пречи че освен едното което ползваш - на другото ще излиза с грешна честота - то винаги ползваш само едното от двете.

Ако спазиш това - ще стане. Пробвано е!
Успех!


Съб Яну 08, 2011 11:28 am
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
:evil: Като не иска да ме пусне през парадния, реших да вляза през задния вход ама...НЪЦ :evil:
Сетих се, че преди време мой познат си прави кабел за диагностика на автомобили и споменаваше нещо за битрейта. Поразрових се във нета и се оказа, че освен тази нестандартна скорост от 31250 за миди, 10400 която също е нестандартна се ползва при автомобилната диагностика. Според "братушките" решението на този проблем е във ровичкането във регистрите и малко сметки, за рускоговорящите слагам и описанието.
Та значи смятах, правих, струвах, всичко което е писано по темата го изпълних и проверих от различни източници- Направих сметките, създадох въпросният файл във регистрите...рестарти....проби....и накрая нищо.
Първо никъде не видях да се появят тези нови скорости за които си правих сметките 31200,31210,31220.....31250.....до 31290 през 10.
Също тая въпросната комутация дето се мъча да я правя не стана. Мидито няма как да го накарам да бачка на 34800. Започвам да се съмнявам че Бозата нещо се е омазала но утре следобет ще елиминирам и тази вероятност.
Междувременно ако някой има идея за промяната на скоростите на СОМ-а и защо при мен не се получава нека каже, в последствие ще извадим ценната информация и ще я преместим в другия подфорум за автоелектроника.


Прикачени файлове:
New Text Document (7).txt [2.46 KiB]
344 пъти
Нед Яну 09, 2011 2:54 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение 
Преди време помогнах в един форум за едно ЕКУ - скоростта, която беше необходима, беше 15625 бита/с.
ПП Ако става въпрос за Win - пиши каква скорост искаш - ще ти пратя програмка, с възможност за такава скорост.
На това, което съм пратил сега - избираш SetComPort и след това - десния бутон на мишката на листвюто и add порт (без протокол) - като добавиш порта - има чекове за редактиране на свойствата му.


Прикачени файлове:
TestComPorts.rar [468.47 KiB]
348 пъти
Нед Яну 09, 2011 1:19 pm
Профил ICQ WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
NikB, точната скорост е 31250 bps или +- 1%.


Нед Яну 09, 2011 2:43 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение 
bashmaistora_1 написа:
NikB, точната скорост е 31250 bps или +- 1%.

На ЛС те запитах дали ако сменя скоростта на примерната програмка те устройва, но не ми отговори.
Все пак доработих програмката, за да могат да се задават всякакви скорости (в рамките на поддържаните от съответната структура DCB, на WinAPI SetCommState)
(Продължавам да не съм сигурен, че тая програмка ще ти върши работа - тя праща с всякаква зададена скорост байтове, но не променя скоростта на портовете, ако се ползват от друга, примерно твоя, програма)


Прикачени файлове:
TestComPorts_Apply.rar [468.39 KiB]
307 пъти
Нед Яну 09, 2011 7:43 pm
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
И за какво ви е тая нестандартна скорост - че не можах да разбера.

В случая с ползването на МИДИ -> PC с РС232 -> USB кабел скоростите са следните:

1. Серийния изход на клавиатурата /от пика/ трябва да се превключи от скоростта на МИДИ на стандартна скорост за сериен порт - демек от 31250 както си я направил и казваш че работи като МИДИ - единственото което трябва да направиш е да я смениш на 38400. Нищо друго не трябва да променяш по клавиатурата.

2. Тоси сигнал от серийния порт на пика - трябва да мине през МАКС232 че да ми се сменят нивата и да станат RS232.

3. после от MAX 232 подаваш на входа на RS-232-> USB кабела. Сега за кабела: той е направен и може да работи на стандартните за компютъра скорости. На каква скорост работи - реално определя програмата която отваря виртуалния COM порт. В твоя случай, тази програма е драйвера на Roland. Той кара кабела да работи на 38400 - затова казах, че на толкова трябва да праща пика. Вече драйвера на Roland има задачата да приеме от серийния порт каквото е дошло - да го пакетира на MIDI съобщения и да представи виртуален миди IN порт на музикалните програми.

Това е цялата галимация...


Пон Яну 10, 2011 12:07 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Сега първо да кажа какво съм намерил и предполагам ще бъде полезно за хората които също се чудят как тъй аджеба да накарам СОМ-порта да работи на 10400 или на произволна скорост в рамките на допустимите.
Е най- лесният начин е със комада във Command Prompt-а
-----------------------------------------------------------------
c:> mode com(№ на порта) baud=(желаните bps) parity=N data=8 stop=1 dtr=off rts=off
или както е при мен:
c:> mode com3 baud=31250 parity=N data=8 stop=1 dtr=off rts=off
за проверка:
c:> mode com(№ на порта)
--------------------------------------------------------------------
При мен нещата не се получават защото, както каза juzisound, идеята е самият драйвер на роланд да прекомутира от 34800 на 31250, независимо дали ще използваме кабел USB-MIDI или RS232-MIDI.
Дори да накарам компорта да работи на 31250 по гореописаният начин, когато стартирам драйвера на Роланд автоматично се връща на 34800. Този двоен стандарт ми се струва доста тъп, но това е положението.
Има колеги музиканти които едва ли са запознати що е то Бит пер секондс и след като са купили кабел от 50-60 лева не успяват да получат желания резултат. Да не говорим че при използването и на саундмодули и друга апаратура допълнитело усложнява нещата.
Що се отнася до това което правя, малко е кофти всеки път да вадя чипа и да го програмирам със една от двете скорости. Другото ми творение също е свързано със МИДИ и по закона на Мърфалан и там скороста е само 31250.
Благодаря на всички които се отзоваха

П.п. Започвам да се замислям да разчовъркам самият Роланд драйвер, но познанията ми все още са доста ограничени :roll:


Пон Яну 10, 2011 7:47 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Чет Сеп 30, 2010 2:37 pm
Мнения: 21
Местоположение: Варна
Мнение 
Ако единствения проблем е, че този роланд драйвер настрйва лошо серийния порт може да пробваш тази програма http://www.fabulatech.com/serial-port-splitter.html . Идеята е възваш програмата към хардуерния порт и там си задаваш миди скоростта, а с роланд драйвера отваряш виртуалния порт койта тази програма съдава. Тази е триал версия, колкото за теста, сигурно има алтернативи из нета.


Пон Яну 10, 2011 9:06 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 18 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни