![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Привет всем. Помогите плз разобратся вот в этих проблемах:
Протокол rfcomm 1. Через гипертерминал посылаю плате данные. Как настроить Source, Sink в плате, чтоб всё работало(данные принимались в к-нибудь массив и я их мог далее обработать)? 2. Где можно отловить сообщения "начало передачи данных" или "запрос на передачу"? Ставил брейкпоинт в обработчике сообщений для приложения (app_handler) и обработчике сообщений для SPP (spp_profile_handler) - вообще не останавливается, когда посылаю данные с платы на комп, а до компа данные доходят благополучно и отражаются на терминале как нужно. 3. Есть хоть какие-нибудь примеры передачи данных по SPP и с объяснением для WML-C40, ссылки, хоть что-нибудь? |
|||
|
||||
Ivan. |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Я работал с LMX9820/LMX9820A Bluetooth Serial Port Module - Software Users Guide
все очень просто, если надо, могу рассказать -------------------- Я могу ВСЁ, вопрос - сколько времени у меня это займет! |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Спасибо, с частью вопросов я разобрался. Но у меня есть другой вопрос, с которым я бьюсь уже 1.5 недели. При передачи данных с WML на комповский Bluetooth теряются несколько первых символов. Почему, не понятно. Вы с этим не сталкивались?
Пишу вот так, как в spp_dev_b,
Далее с терминала отправляю файл в UART WML, откуда,как я понимаю, они автоматически перенаправляются в Bluetooth WML, а уже оттуда, также автоматически, отправляются в Bluetooth компа. На другом терминале смотрю, что принял. И вот начальных символов там не вижу! Считывал данные руками из UARTа, начальные символы приходят. И вот ещё одно моё наблюдение: если с терминала послать какой-либо символ, то он доходит только в случае ДВОЙНОГО нажатия кнопки клавиатуры. За основу программы взял пример из блюлаба spp_dev_b, удалил светодиод и время на ожидание подключения, тот же результат. ![]() И ещё хотелось бы понять, как руками правильно получать данные с уарта и отправлять по Bluetooth не используя потоки, чтоб не забивать память WML??? Какие сообщения надо отсылать и будут приходить для организации обмена данными (включая сообщения spp, rfcomm, l2cap, baseband) Заранее благодарю за помощь, литературу и ссылки |
|||
|
||||
Ivan. |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
Ты отправляешь с компа на комп или с контроллера на комп?
В том BlueTooth-е, что я указал выше была возможность создания прозрачного COM-порта между двумя устройствами, а чтобы выйти из него управляется сигналом ножки. -------------------- Я могу ВСЁ, вопрос - сколько времени у меня это займет! |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Я передаю данные с контроллера (Bluetooth модуль WML-C40) на комп и принимаю данные с него. Схема отладки такая:
терминал1->UART_RX модуля WML-> Bluetooth WML -> Bluetooth ПК (обычный dongle, торчит в USB ПК) -> терминал2 // данные теряются терминал2 ->Bluetooth ПК -> Bluetooth WML -> UART_TX WML -> терминал1 // всё отлично, не теряются данные В BlueLab уже реализован SPP и есть пример по его использованию spp_dev_b. Привязки к железу нет. Внутри WML сидит виртуальная машина, которая сама всё разруливает. Нужно только правильно использовать функции BlueLab. Также можно связать источник и приёмник, создать поток, который автоматически будет пересылать и принимать данные. Вот потоки-то у меня и не работают, вернее поток с компа в WML принимает всё отлично и благополучно отражаются данные на терминале1 без потерь, а вот с WML на комп на терминале2 не отображаютя несколько начальных символов. |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Ура-а-а! Победа!
![]() Всему виной 2 бага: 1. В BlueLab 3.2 B-11639 When using the raw transport, it was possible for a burst of data arriving on the UART to be ignored if it had a particular timing and no further data was ever received. This no longer occurs. Поставил BlueLab 3.5.2 2. Я пользовался терминалом TeraTerm. Он теряет символы. Виндовским терминалом всё без проблем. |
|||
|
||||
ULive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Здравствуй LessNik!
Подскажи пожалуйста, где достал BlueLab 3.5.2 и не мог бы Ты поделиться? ![]() |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Здравствуй ULive!
Достать его было сложновато, а ещё сложнее скачать и отправить.Еле договорился с админом закачать. А выложить его - бесполезно. Админ не даст. Другого Инета у меня нет, только на работе. Мылом тоже не проканает. Ты не первый просишь BlueLab ![]() Нашёл его тут http://electronix.ru/forum/index.php?showtopic=17682 Только ссылка,указанная там на BlueLab,уже не работает. Зато там много людей, у кого есть. Спишись с ними. Мне помогли и выложили. Есть другой вариант: если ты "свой" на electronixе, то на его ftp говорят есть BlueLab и можно закачать без проблем. Но доступ в "свои" очень долгий |
|||
|
||||
ULive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Привет LessNik!
Спасибо за помощь! Потом расскажу, что получилось! |
|||
|
||||
ULive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Привет LessNik!
Подскажи пожалуйста, с кем на том форуме можно поговорить по поводу BlueLab 3.5.2? У меня самостоятельно не получилось найти! ![]() |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Привет ULive!
Я списался с keeper и он мне выложил BlueLab. Возможно уже есть у sp2006, он тоже искал. Отправь письмо им в личный ящик. Думаю, должны помочь. |
|||
|
||||
ULive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
LessNik спасибо! Откликнулся Rash и обещал поделиться!
У меня есть вопрос по SPP. Можно ли настройками(длина пакетов или еще что-нибудь) BlueCore добиться реальной скорости приема/передачи UART, т.е. если соединился на 115200, то что бы такая и получалась? А то тактовая 115200, а реально прокачивается меньше. P.S. Правда я не использую сигналы управления потоком! Добавлено @ 23:32 У кого-нибудь получалось передавать и принимать звук используя соответствующий профль? |
|||
|
||||
ULive |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Хорошая ссылка http://rapidshare.com/files/6570320/BlueLab_3_52.zip
|
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Я не понял вопроса. Тебе нужно настроить UART или скорость передачи по BlueTooth? UART так настраивается:
А скорость передачи 1Mbit/sec по Bluetooth. Передавать/принимать звук я не пробывал. В BlueLab вроде как уже готовый пример есть. |
|||
|
||||
SYurev |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2006 Репутация: нет Всего: нет |
Уважаемые коллеги, помогите разобраться.
Взял за основу spp_dev_b прошил им свисток на базе BC2External. Мне нужно чтобы модуль после истечения таймаута Inquiry переходил в PageScan, т.е. был доступен в любой момент для устройств, "знающих" его. Изменил код таким образом:
Может ли устройство в Page Scan потреблять минимум энергии не посылая ничего в эфир? Предпологается что устройство будет в авто и не хотелось бы чтобы оно кушало ~90mA в PageScan как сейчас. В консоли отладки примерно следующий поток сообщений:
Сорри если чайниковский вопрос, но это первый опыт с BT а время уходит. ![]() |
||||
|
|||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Приветствую!
Так, думаю,не получится. Будет лучше,если перейти в режим пониженного энергопотребления при сохранении соединения или выходить в эфир при нажатии кнопки. |
|||
|
||||
SYurev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2006 Репутация: нет Всего: нет |
Пониженное энергопортебление при коннекте не критично, т.к. при этом машина заведена и потребление не играет роли.
Кстати, имеется ввиду hci_mode?
В документации я не нашел ни одной функции с параметром такого типа, как перевети девайс в sniff например? ;) Мне всё-таки не совсем понятно к чему слейву слать что-то в эфир, ведь инициатором будет не он. Неужели подобные устройства так-же потребляют в режиме ожидания. BT гарнитура например, она ведь доступна постоянно после включения, однако не ест практически ничего... ![]() |
|||
|
||||
LessNik |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Первоначально нужно отключить автоматическое использование библиотеки spp в настройках проекта и, используя исходники BlueLab\src\lib\spp\ скомпилить с нужными изменениями самому. Иначе реакции никакой не будет. Проект будет собран используя имеющуюся по умолчанию библиотеку BlueLab\tools\lib\vm\libspp.a, что не есть хорошо.
Смотрите файл spp_link_policy_handler.c, spp_link_policy_handler.р. Составляете таблицу "low power table".
Ну и т.д. Дальше в документацию...
Хост не имеет представления о сервисе и адресе устройства в начальный момент времени. Нужно спарить их. Тогда всё будет известно. Затем отключите вообще Page Scan. Page Scan нужен для того, чтоб определить существование нового устройства. Отсоединитесь, усыпите модуль и затем с хоста попробуйте уже по известным настройкам присоединиться к модулю в нужный вам момент времени. |
||||
|
|||||
SYurev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2006 Репутация: нет Всего: нет |
Насколько я знаю для того, чтобы быть обнаруженным устройство переходит в inquiry scan mode.
Будучи обнаруженным, оно может быть доступно для устройств, имеющих информацию о нём, но должно быть в page scan mode.
Ссылка: http://citforum.ru/nets/semenov/4/41/bluetooth.shtml Я пробовал связывать устройства в течение Inquiry Scan (50с). Всё нормально, если потом отсоединиться и попробовать позже, когда сканирование отключено, то соединение не проходит. Сейчас всё работает нормально если по истечении таймаута inquiry оставлять девайс в состоянии pairable c включенным page scan. Обмена ключами не происходит, устройства возобновляют коннект. Это сообщение отредактировал(а) SYurev - 27.12.2006, 15:45 |
|||
|
||||
LessNik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 20.2.2006 Репутация: 1 Всего: 1 |
Малость описался, извиняйте. Inquiry Scan нужен для того, чтоб определить существование нового устройства. Расход электричества такой же ~90mA ? Я хотел сказать периодически в SPP_DEV_INQUIRY_TIMEOUT_IND включать/выключать Page Scan, чтоб поменьше тратилось электричества. А что это за устройство, если не военная тайна ![]() |
|||
|
||||
SYurev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.12.2006 Репутация: нет Всего: нет |
Потребление да, такое-же.
Устройство - собрал конвертор интерфейса OBDII на ELM323, хочу упихнуть всё в разъем, а считывать чем угодно по BT. Вернее уже все работает, но на большой отладочной плате и ELM327, но не устраивает меня потребление. А на OBD разъеме выведен BAT+ вместо IGN+, хотя должно отрубаться без зажигания. Видимо придется вывести IGN+ на разъем в качестве питания и забыть про потребление, если не хватит ума довести работу модуля до кондиции. ![]() Периодически врятли получится, т.к. сообщение SPP_DEV_INQUIRY_TIMEOUT_IND приходит только по завершению Inquiry периода, а это бывает только при старте или дисконнекте. Вчера поэкспериментировал, выяснил что если оставить устройство просто в ConnectionWriteScanEnable(hci_scan_enable_off) но в состоянии pairable то в отладке всё равно идут сообщения типа: 23:42:18.742 Deliver (due 0ms) task 042a id 0001 23:42:18.745 Send (due 100ms) task 042a id 0001 23:42:18.746 Free Что за задача 0x042a выяснить у меня пока ума не хватило... ;) Это сообщение отредактировал(а) SYurev - 28.12.2006, 12:42 |
|||
|
||||
alexmdvd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 29.12.2006 Репутация: нет Всего: нет |
Здравствуйте уважаемые!
Нашел тут на днях USB dongle на CSR BC2Ext чипе и 4Mbit флешью на борту. Подключил по SPI - BlueLab ее находит, но при попытке залить прошивку примера spp_dev_b выдает ошибку "Error: Filesystem is 167704 words too large for use with this firmware.". В папке fimware\VM прошивки все, видимо, под 8Mbit флеш и из-за них, я так понял, и не помещается в этот донгл. Может их можно как-нибудь ребилднуть? Или может я вообще что не так делаю? Подскажите пожалуйста. Версия BlueLab 3.52 |
|||
|
||||
D1ma |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Привет
Помогите чем сможете . Мне надо сделать устройство(на ATMEGA128) которое должно управляться по Bluetooth. Помогите сделать такую связь: ATMEGA128 <==SPI (или UART )==> WML-C40<==bluetooth==> телефон(или другое устройство) Как правильно обвязывается WML-C40? В WML-C40 внутри есть все протоколы блутуза или их надо самому описывать? Если есть, то как управлять WML-C40? WML-c40 выбрал по цене и качестве ГДЕ МОЖНО СКАЧАТЬ BlueLab Заранее благодарен |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
1. Думаю что если нужно кол-во в одну штуку, то проще купить переходник RS232 <-> Bluetooth.
2. Ты уже придумал, как будешь паять WML-C40? 3. Сколько WML-C40 стоит кстати? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |