Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Модуль bluetooth c SPP slave.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Wireless/Optic
JeDay
Всем добрый день.
Разыскиваю модуль в котором можно удаленно скорость задавать. Управляться будет с коммуникатора на андроиде.
Смотрел НС-05, цена очень хорошая, но скорость задается внешним хостом через АТ команды. Сейчас просматриваю доки на другие (BTM-ххх).
Может кто знает готовый ответ, какой модуль применить? sm.gif
ukpyr
как вариант - включить рядом какую-нибудь Attiny, которая будет слушать трафик и по спец.команде отключать RX/TX, и перепрограммировать модуль
JeDay
Я об этом думал, но хотелось бы все таки модуль с такой поддержкой.
в случае установки внешнего МК не обязательно RX/TX отключать и перепрограммировать модуль. Можно МК постоянно на 115200 общаться с модулем, а с конечным устройством(КУ) уже в зависимости от настроек, которые надо каждый раз передавать с хоста при поднятии линка. Реализовать транспортный протокол в котором будут 2 типа фреймов: 1й это инкапсуляция данных для КУ, 2й это менеджмент пакеты для МК. Но хотелось бы такого решения избежать.
SFx
Есть предположение, что HC-05 можно перепрограммировать, и второе предположение - что можно сделать лупбэк на uart и тогда команды принятые из воздуха будут транслироваться назад.
я пока не держал в руках модули, доку не вчитывался, публикую в рамках сырой идеи "попробовать"
JeDay
Просмотрел LMX9838, таже самая фигня. Там ножками OP3,OP4,OP5 конфигурят скорость уарта.

SFx
Не охота колхозить. Лучше наверно реализовать транспортный протокол и инкапсулировать свои данные. Так будет правильней.
jcxz
Цитата(JeDay @ Feb 19 2014, 04:03) *
Просмотрел LMX9838, таже самая фигня. Там ножками OP3,OP4,OP5 конфигурят скорость уарта.

Если в нём (LMX9838) есть какие-либо GPIO, доступные удалённо (как в WT12), или хотя-бы сигналы CTS/DSR, которыми можно удалённо рулить по BT,
цепляете сдвиговый регистр на них, а параллельные выводы регистра - на ноги OP3,OP4,OP5. biggrin.gif
JeDay
Остановился на "CSR HC-06". Он поддерживает заливать в себя прошивку, писать можно в BlueLab(xIDE). Теоретически можно скорость UART менять. Но в тоже время надо знать с каким бауд-рейтом мастер открыл наш виртуальный UART порт. Я вижу несколько вариантов:
1. SPP профиль вообще не позволяет бауд-рейт мастера удаленно получить.
2. В андроиде могут быть ограничения имплементации(планируется с коммуникатора девайсом управлять).
3. Данные получить можно, но BlueLab этого не позволяет.

Подскажите кто имет опыт с чипами CSR и SPP работал? Решаемая задача вообще?
mqbile
Есть такой готовый RS232-BT адаптер LM048, насколько понимаю, у него можно менять скорость удаленно.
Нажмите для просмотра прикрепленного файла
garlands
Цитата(JeDay @ Feb 25 2014, 16:11) *
Остановился на "CSR HC-06". Он поддерживает заливать в себя прошивку,


Они все (-04/-05-06) поддерживают заливку прошивки, т.к. по железу одинаковые.

Цитата
Подскажите кто имет опыт с чипами CSR и SPP работал? Решаемая задача вообще?


Решаемая. Только сразу берите и прошивальщик, т.к. по LPT уж больно уныло заливать - 15-20минут.

uriy
Bluelab та еще штука. Сделать в ней что-то у меня не хватило терпения.
Документации толковой я не нашел, только примеры вместе с bluelab.
Проект с блютуз делал на LMX9838.
Я бы лучше поставил внешний контроллер.
Почему вам не хочется его ставить?
alx125
Цитата(JeDay @ Feb 18 2014, 19:59) *
Всем добрый день.
Разыскиваю модуль в котором можно удаленно скорость задавать. Управляться будет с коммуникатора на андроиде.
Смотрел НС-05, цена очень хорошая, но скорость задается внешним хостом через АТ команды. Сейчас просматриваю доки на другие (BTM-ххх).
Может кто знает готовый ответ, какой модуль применить? sm.gif


Если я Вас правильно понял, то цель "удаленно скорость задавать" - избежать переполнения буферов.
В таком случае сама постановка задачи не правильная!
Дело в том, что нижние протоколы (в данном случае RFCOMM на котором базируется SPP) имеют несколько встроенных механизмов Flow Control.
Поэтому правильнее вести речь о том, что полностью ли реализован стандарт в Ваших устройствах!
В Андроид - скорее всего да!
В модуле HC-05 возможны упрощения стека и ориентироваться (с макс.стороны) надо на скорость встроенного USART. И желательна буферизация при приеме/передаче на HC-05.
Именно по причине встроенного механизма Flow Control в протоколы, например при обмене между компьютерами ч/з Bluetooth ч/з виртуальный Com-port бессмыленно устанавливать скорость конкретного Com-port. Хоть Вы установите 4800, хоть 115000 результат будет одинаковый.

jcxz
Цитата(alx125 @ Feb 27 2014, 12:31) *
Именно по причине встроенного механизма Flow Control в протоколы, например при обмене между компьютерами ч/з Bluetooth ч/з виртуальный Com-port бессмыленно устанавливать скорость конкретного Com-port. Хоть Вы установите 4800, хоть 115000 результат будет одинаковый.

Ну не скажите. УстанОвите слишком маленький baudrate на локальном UART модуля - и скорость передачи данных у вас будет ограничиваться не скоростью раддиоканала
(как должно быть), а скоростью UART.
Вообще - нужно ставить максимальный baudrate который позволяет связка МК + BT-модуль и естественно - пользоваться флов-контролем (с обязательной буферизацией).
alx125
Цитата(jcxz @ Feb 28 2014, 05:47) *
Ну не скажите....


Вы цитируете мой параграф, где речь идет о связи PC-Pc ч/з Bluetooth. Все что ранеем мной написано в этой части соответствует действительности! Там практически всегда в качестве транспортного протокола HCI применяется USB и оперционная система создает соответствущий виртуальный Com-port.

Что же касается связи с применением HC-05 (или подобных модулей с UART-ом в качестве транспорта HCI протокола) , то я указал что желательно использовать максимальную скорость UART ( было написано "с макс.стороны").

Но мысль моя была в том, что даже если Вы установите UART в модуле на очень низкую скорость - не произойдет переполнение буферов из-за втроенного в протоколы (в частности RFCOMM) Flow Control! Просто Вы "зарежите" сквозную пропускную способность канала Bluetooth!

Это все верно, если в модуле эта часть стека протокола обрабатывается не по упрощенной схеме, а полноценно!
JeDay
Цитата
Есть такой готовый RS232-BT адаптер LM048, насколько понимаю, у него можно менять скорость удаленно.

Не подходит. Я делаю ус-во в своей коробочке, пихать туда сторонние продукты не подходит.
Причем подозреваю что в этом адаптере тоже проц стоит. Управляется он через ESC постелодвательности, скорость уарта таким же образом задается. Прозрачного и полноценного UART все равно он не предоставляет.

Цитата
Если я Вас правильно понял, то цель "удаленно скорость задавать" - избежать переполнения буферов.

Вы неправильно поняли. У меня на удаленной стороне, на слейве, висит мой девайсик. Его скорость уарта задается настройками. Т.е. хост приложение открыло КОМ порт на 115200, передало настройку "работать на 9600" и железка сразу же переключилась на эту скорость. Хост тоже переоткрыл порт на 9600.

Цитата
Именно по причине встроенного механизма Flow Control в протоколы, например при обмене между компьютерами ч/з Bluetooth ч/з виртуальный Com-port бессмыленно устанавливать скорость конкретного Com-port. Хоть Вы установите 4800, хоть 115000 результат будет одинаковый.

Почему это бессмысленно? Когда вы открываете COM порт (CDC) и указываете скорость, UART в той же FTDI именно с этой скоростью и работает.

Цитата
Я бы лучше поставил внешний контроллер.
Почему вам не хочется его ставить?

Уже поставил. Не хотелось ставить чтобы прошивку не писать и не заливать при производстве..

Цитата
Решаемая. Только сразу берите и прошивальщик, т.к. по LPT уж больно уныло заливать - 15-20минут.

Подскажите как он хоть выглядит. Я ничего не нагуглил, только LPT по ссылкам находил. У меня в ПК такого раритета нету.
garlands
Цитата(JeDay @ Mar 1 2014, 21:47) *
Подскажите как он хоть выглядит. Я ничего не нагуглил, только LPT по ссылкам находил. У меня в ПК такого раритета нету.


Оригинал и вот такое внезапно нашлось. Еще в интернетах видел эмулятор LPTшного через FT2232, но с теми же проблемами со скоростью. Более того - прибито гвоздями к вайну. Хоть и с исходниками было, но разбираться не стал с тем вариантом.


УПД. Внезапно нашлось такое. Насколько я понял, из HC04 получается оригинальный USB<>SPI. LPT хоть и нужен, но один раз. Надо будет попробовать.
УПД2. упс
Цитата
First, you should buy some BlueCore3-Multimedia External bluetooth modules
JeDay
отлично. спасибо за ссылки.
alx125
Цитата(JeDay @ Mar 1 2014, 23:47) *
Вы неправильно поняли. У меня на удаленной стороне, на слейве, висит мой девайсик. Его скорость уарта задается настройками. Т.е. хост приложение открыло КОМ порт на 115200, передало настройку "работать на 9600" и железка сразу же переключилась на эту скорость. Хост тоже переоткрыл порт на 9600.


Почему это бессмысленно? Когда вы открываете COM порт (CDC) и указываете скорость, UART в той же FTDI именно с этой скоростью и работает..


Поясняю
1. У Bluetooth соединения нет понятия host. (У USB- есть)
А есть slave и master. Но это важно только в случае , если у Вас используется Piconet (т.е. > 2 BT-устройств). Master - это "дирижер" синхронной работы передатчиков/приемников в Piconet. В этом случае важна способность BT-устройства менять роль master/slave. Это могут не все устройства! В случае , когда соединяются 2 устройства - Вам все равно!
Мне также попадались упрощенные BT-модули, где реализован только или master, или slave.

А также есть понятие client и server - это для того, где расположена какая часть BT-стека. В Windows эти термины заменены соответсвенно на исходящий или входящий вирт. Com-port.

"....Почему это бессмысленно? Когда вы открываете COM порт (CDC) и указываете скорость, UART в той же FTDI именно с этой скоростью и работает...."

2. Когда Вы говорите про мосты USB-Com типа FTDI, SiLabs и т.п., то там это делается с помощью фирменного драйвера , который и реализует удаленную настройку UART. Но это не имеет ровно никакого отношения к Bluetooth!


Еще раз говорю: в случае Bluetooth сединения скорость установленная в виртуальном Com-port PC не обозначает ничего! Хоть 4800 , хоть 115000

P.S. Похоже Вы рассматриваете автомобильное применение? И Вас интерисует не стандартная скорость UART 10400 бит/с (или 5 бит/с)? Обычными средствами это не реализуется.
Кстати FTDI-драйвер тоже эту скорость не предоставляет. Это достигает патчем на драйвер.
jcxz
Цитата(alx125 @ Mar 2 2014, 06:39) *
важна способность BT-устройства менять роль master/slave. Это могут не все устройства! В случае , когда соединяются 2 устройства - Вам все равно!

Думаю - не совсем так. По-крайней мере для WT-12 вижу, что в зависимости от роли мастер/слэйв изменяется потребление модуля. А это часто важно.
uriy
Цитата
Вы неправильно поняли. У меня на удаленной стороне, на слейве, висит мой девайсик. Его скорость уарта задается настройками. Т.е. хост приложение открыло КОМ порт на 115200, передало настройку "работать на 9600" и железка сразу же переключилась на эту скорость. Хост тоже переоткрыл порт на 9600.
Все равно не могу понять зачем вам менять скорость UART на блютуз. Сделайте в вашем девайсе фиксированную скорость равную скорости блютуз модуля.

Цитата
Хост тоже переоткрыл порт на 9600
Зачем??? Похоже вы считаете что скорость блютуз модулей с обоих концов радиоканал должна быть одинакова? Это не обязательно. Ничто не мешает иметь разные скорости на обоих концах. Мало того мне кажется редко когда используются одинаковые скорости.
JeDay
Цитата
Все равно не могу понять зачем вам менять скорость UART на блютуз. Сделайте в вашем девайсе фиксированную скорость равную скорости блютуз модуля.

Мой девайс - "внешний периферийный модуль"(далее ВПМ) управляется терминалом, поэтому с ВПМ надо иметь возможность работать на разных скоростях. Я уже писал пару постов раньше.
Реализовал я эту возможность поставив в конвертер вместе ВТ модулем внешний МК. С ним ВТ всегда на фиксированной скорости работать будет. А сам МК с ВПМ на разных в зависимости от настроек.
uriy
sm.gif
Цитата
внешний периферийный модуль"(далее ВПМ) управляется терминалом, поэтому с ВПМ надо иметь возможность работать на разных скоростях

Звучит также как: "В моем автомобиле бензобак 50 литров, поэтому его надо заправлять 92 бензином"
Вот вы в своем ВПМ для чего делали настройку скорости?
Кажется логичным предположить для того чтобы согласовать с другим устройством.
Так выставьте в нем скорость вашего блютуз модуля.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2017 Invision Power Services, Inc.