S.Bus System
меня вот еще что беспокоит:
для большого самолета вешать несколько мощных серв на один провод - не криминально? суммарные токи могут быть приличные, а футаба предлагает пользоваться Y кабелями… или в их S.Bus удлинителях используются более толстые провода?
А что верт? 450-ка дальше 20-40м от себя не отпускаешь.
вот, когда эта мясорубка, из за отказа электроники влетит в вас!! (тьфу-тьфу! чтоб никогда такого не случилось!!)
дальность то каким боком к шине сбас припеклась?
Что, секретная технология SBus требует применения супернанонотехнологий?
культуры производства требует! и не только сбас технология. но и приёмник с хоббикинга…и выходного контроля требует (читай ОТК)
“А мужики, то, не знают…”(с)
мужики из хунь сунь выня, которые паяют эти поделки про контроль качества и выходной контроль не знают…
“Все динозавры были одинаковы…только антропологи собирают их по разному!”(с)
для большого самолета вешать несколько мощных серв на один провод - не криминально? суммарные токи могут быть приличные, а футаба предлагает пользоваться Y кабелями… или в их S.Bus удлинителях используются более толстые провода?
до определённого предела всё ок, (шины на приёмнике держут 5 ампер спокойно…а уж провода точно)
далее, повербоксы и всякое такое…да и в сбас можно ввести питание отдельно-(управляет как не крути всё один провод…)
На удлиннителях сбас провода действительно толще раза в 2-3.
Привествую всех, кто следит за темой.
Похоже, я нашёл здесь человека, который сможет мне растолковать про S.Bus.
сделан вот такой вот декодер! декодируется 2 канала 7й и 8й + на плате сразу присутствует кил свич!!!
Для меня загадка сам протокол этой модной ныне шины. Если я правильно понимаю, то начинается от с F0h, т.е. 11110000; за стартовой последовательностью следуют 16 каналов по 11 бит - длительность импульса РРМ в микросекундах, потом 8 бит, содержащие информацию о состоянии приемного канала (включая бит файлсейва) и в конце 00h, т.е. 00000000. Так вроде?
Во-первых: не понятно как разделяются стартовый импульс и последующие информационные посылки по 11 байт?
Во-вторых: адресов у сервомашинок нет и в кадре S.Bus тоже нет адресации, как канальные коды (16 каналов по 11 бит) находят свою серву?
В-третьих: немного в сторону вопрос - с сателлита на приёмник какой протокол передачи? S.Bus, РРМ или UART?
Я не он, и не могу расстолковать, но кое какая информация для размышления
Так вроде?
в первоначальном варианте так и было, приемник 6208
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEE;0x62;0x00;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEE;0x62;0x00;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEE;0x62;0x00;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
, но мне попадались и другие, например приемник 6308
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x00;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x34;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x00;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x04;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x00;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x14;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x00;
0x0F;0x04;0x4C;0xA0;0xA3;0xFD;0x37;0xF7;0xB9;0x03;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x00;0x24;
он же
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x2C;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x20;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x28;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x00;
0xF0;0x20;0x32;0x05;0xC5;0xBF;0xEC;0xEF;0x9D;0xC0;0x08;0x01;0x00;0x20;0x04;0x00;0x80;0x10;0x02;0x00;0x40;0x08;0x01;0x00;0x24;
приемник 2008
0x0F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
0x8F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
0x0F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
0x8F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
0x0F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
0x8F;0xF9;0x0B;0x20;0x5C;0xF8;0x07;0x77;0x06;0x02;0x10;0x80;0x00;0x04;0x20;0x00;0x01;0x08;0x40;0x00;0x02;0x10;0x80;0x03;0x00;
на порядок следования ниблов не обращайте внимания, счейчас лень править, но видно, что и заголовок и окончание могут меняться.
как разделяются стартовый импульс и последующие информационные посылки по 11 байт?
просто эти 11 бит распихиваются по разным байтам и потом передаются по обычному UART
адресов у сервомашинок нет и в кадре S.Bus тоже нет адресации, как канальные коды (16 каналов по 11 бит) находят свою серву?
Адреса у исполнительных устройств есть(номер канала) и они в них устанавливаются, значения для адресов передаются последовательно в протоколе, машинки соответственно из всей последовательности выбирают значение соответствующие их адресу(номеру канала)
с сателлита на приёмник какой протокол передачи? S.Bus, РРМ или UART?
Оно тоже UART-образное, только естественно свой протокол, если под протоколом иметь ввиду смысловое значение передаваемых байт.
Нашёл подробное описалово:
S-BUS protocol
The protocol is 25 Byte long and is send every 14ms (analog mode) or 7ms (highspeed mode).
One Byte = 1 startbit + 8 databit + 1 paritybit + 2 stopbit (8E2), baudrate = 100’000 bit/s
The highest bit is send first. The logic is inverted (Level High = 1)
[startbyte] [data1] [data2] … [data22] [flags][endbyte]
startbyte = 11110000b (0xF0)
data 1-22 = [ch1, 11bit][ch2, 11bit] … [ch16, 11bit] (ch# = 0 bis 2047)
channel 1 uses 8 bits from data1 and 3 bits from data2
channel 2 uses last 5 bits from data2 and 6 bits from data3
etc.
flags = bit7 = ch17 = digital channel (0x80)
bit6 = ch18 = digital channel (0x40)
bit5 = Frame lost, equivalent red LED on receiver (0x20)
bit4 = failsafe activated (0x10)
bit3 = n/a
bit2 = n/a
bit1 = n/a
bit0 = n/a
endbyte = 00000000b
Теперь вроде всё ясно. Остался ещё один вопрос : какой сигнал идет с сателлита приёмника Турнига ТХ9? Есть необходимость конвертировать этот сигнал с сателлита в S.Bus и подать его на устройство под названием ФуБар(аналог ВиБар).
www.rcgroups.com/forums/showthread.php?t=967207&pa… экие у Вас загогулины однако, по ссылке можно сыскать изучение протокола сателлита первой версии ФлайСкай, кстати посмотрите в ветке rcopen.com/forum/f8 , кто то на нашем форуме успешно использовал эти сателлиты.
Ковыряюсь тут с S.Bus и хотел спросит совета по конвертированию протокола приёмника в S.Bus. Протокол приёмника описан здесь: www.rcgroups.com/forums/showpost.php?p=13200954&po… ;
S.Bus описан здесь: rcopen.com/forum/f4/topic268205/149
В общих чертах, нужно перевести UART-образный протокол со скоростью 46660 Бод в другой UART-образный протокол со скоростью 100000 Бод.
Вопрос как лучше сделать: тупо принимать на RX со скоростью 46660 Бод, складывать в буфер(строку), потом переключать скорость UART на 100000 Бод(надеюсь, это реально - переписать значение регистра, определяющего скорость UART) и выдавать данные на ТХ? Или есть более “модный и молодёжный” способ?
Просто, если можно сделать как я описал выше, то достаточно копеечного PIC12 и конвертер готов.
Я бы посмотрел в сторону контроллеров с двумя уартами. Но перед этим посчитал бы частоты уартов. Вполне возможно, что обе скорости адекватно поддержать не сможете и один из уартов придется делать програмным.
Не прошло и полгода, и я снова здесь. Всем доброго времени суток.
Неспешно и с большими перерывами ковыряясь со своим конвертером, я, таки, почти допилил его. Вот проверить, правда не на чем - девайс, под который я планировал конвертер, забыт на даче вместе с вертолётом, а других устройств понимающих S.Bus у меня нет. Посоветуйте какое-нибудь недорогое исполнительное устройство, которое можно купить в Москве, чтобы на практике проверить работу конвертера.
Вполне возможно, что обе скорости адекватно поддержать не сможете и один из уартов придется делать програмным.
Обе скорости нормально поддерживаются аппаратным уартом PIC16F1823,24,27 и т.п. при тактовой частоте в 8МГц. Это относительно новая серия “нановатт” Микрочиповских контроллеров, которые я купил поиграться по цене порядка 40 руб/шт. В них ещё до фига чего понапихано, весьма любопытная серия.
Однако, мне всё равно пришлось использовать ещё и программный уарт для приёма посылок с передатчика, поскольку я не смог заставить аппаратный уарт понимать 16-битные посылки без промежуточных стартовых и стоповых бит.
не смог заставить аппаратный уарт понимать 16-битные посылки без промежуточных стартовых и стоповых бит.
SPI
SPI
Не понял.
16-битные посылки без промежуточных стартовых и стоповых бит
можно вполне принимать с помощью контроллера SPI. не настраивается разве?
А где тактирование брать для SPI?
Дали мне mini V-Bar на пробу, подключил я свой декодер, настроил через прогу V-Staby на вход от S-Bus, подключил серву в канал руддера и… ничего. Не реагирует серва на передатчик. Хрен его знает где глядеть.
По картинке с цифрового анализатора всё отлично 25 импульсов: 0хF0 первый, потом 11 байт ненулевые(конвертированые из принятых с передатчика 8кан.х11бит), дальше 11 байт нулевые(поскольку нет больше каналов для конвертации) и в конце два байта 0х00. Сигнал инвертированный, старт-бит один, бит чётности, стопов два. Что не так - не пойму…
на вход SPI заводите свой сигнал. его же заводите на вход внешнего прерывания. произошло прерывание - запрещаем его, выплевываем 16 бит из SPI, скорость у вас такая-же как приходящий УАРТ. получили ваши 16 бит вез стартов-стопов. обработали, разрешили внешнее прерывание для следующей посылки.
баудрэйт С-БАС у вас сколько?
Я, вероятно, не настолько сведущ в микроконтроллерах, оттого не могу понять ход Вашей мысли. Если не трудно, разъясните попроще - для тупых.
на вход SPI заводите свой сигнал. его же заводите на вход внешнего прерывания.
Что такое свой сигнал? Откуда он берётся?
произошло прерывание - запрещаем его,
Чего запрещаем? Зачем использовать прерывание? Я вообще не люблю прерывания, если можно обойтись без них, то я их не использую.
выплевываем 16 бит из SPI
Куда “выплёвываем”?
скорость у вас такая-же как приходящий УАРТ
Скорость чего?
баудрэйт С-БАС у вас сколько?
100’000 бит/сек
Люди! Окажите посильное вспомоществование!
Подскажите насколько критична для исполнительных устройств частота следования кадров в протоколе S-Bus?
FU-BAR, а значит и большинству клонов V-BAR безразлично 7-11-14 мс фрэймы.
О! Сергей, спасибо за отклик!
Я немного другое имел в виду. У меня частота следования посылок(фреймов) 20 мСек. Может это влиять на результат обработки посылки исполнительным устройством?
Может это влиять на результат обработки посылки исполнительным устройством?
Не думаю, скорей всего отправляете “битый” кадр.
Всех приветствую. Преодолел ещё одну ступеньку на пути к S.Bus - сигнал с выхода моего конвертера воспринимается моим ФуБаром. Однако, не всё так хорошо, как хотелось бы. Сервы, подключенные в каналы ФуБара работают только в половине своего диапазона, т.е. от среднего положения рычаги отклоняются только в одну сторону. Может это как то связано с форматом данных? Я слышал у Футабы в передатчике настройка от -100% до +100% и середина это 0%, а у меня от 0% до 100% и середина - 50%. Я понимаю, что ширина сервоимпульса в крайних точка д.б. от 1000 до 2000 мкСек в обоих случаях, но может есть какие-то тонкости в передаче сигнала Футабы или S.Bus?