Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Всё остальное » BlueNRG


BlueNRG

Сообщений 1 страница 16 из 16

1

Добрый день!

Очень хочется разобраться с bluetooth low energy , но как всегда бывает - опыт и знания не дают быстро взять и что-то сделать. Если кто-нибудь что-нибудь делал с этим - натолкните на мысль, с чего начинать. Имею несколько плат от ST , примеры посмотрел - действительно все рабочие. :)

Есть конечно и коды , в том числе и в Keil. Но там какой-то уж очень заоблачный стиль абстракции. Обычный HAL stm32 кажется детской игрушкой... В общем буду рад любым материалам или книжкам или примерам типа "Hello world" где самые базовые вещи делаются с минимальным уровнем абстракции. 
Так же интересуют любые материалы по GAP , HCI и так далее.
Сам конечно потихоньку постигаю, но если будет правильное направление, то будет еще продуктивнее.

2

Atomic-dm написал(а):

быстро взять и что-то сделать ... натолкните на мысль, с чего начинать

Не начинать )

3

vt написал(а):

Не начинать )

позняк, уже начал :) .
попытка не пытка, инструменты все есть, время вроде тоже позволяет, да и желание присутствует :)))

4

Решил немного дополнить , чтобы не вводить никого в заблуждение...   

На данный момент у меня нет нужды ковырять сам BlueNRG со всеми его свойства...  Это скорее более поздние задачи(хотя и интересные).  Сейчас желание научиться работать с модулем SPBTLE-1S (стоит на плате X-NUCLEO-IDB05A1) и прилагаемыми библиотеками.
 
В принципе все примеры запустились, также полезно было почитать интернет.

Для разбора примеров очень хорошо подходит этот документ
https://www.st.com/content/ccc/resource … 169392.pdf
и этот
https://www.st.com/content/ccc/resource … 162667.pdf

В общем теперь моя задача отвязать все примеры от всей этой абстракции. Естественно речь не идет о переписывании библиотек, а лишь о верхнем уровне в котором встречается привязка к демоплатам , модулям и функциям HAL STM32

в целом задача вполне реальная.

5

Сегодня все же решил отвязаться от внешнего МК(STM32l) и попробовать программировать сам МК BlueNRG (SPBTLE-1S) . Припаялся, накачал софта - BluNRG St-link Utility.  Посмотрел примеры с Keil'а ,зарылся в разных документах от ST. Получилось заставить работать сам МК , мигал светодиодом ножки(в принципе все достаточно просто, регистров мало) , но вот с самим основным функционалом BLE какая то засада. По отладчику - типа все хорошо, а на практике телефон не видит никакого BLE устройства.

Вот и засада... или работать через кучу абстракций по SPI и управлять внешним МК или реализовывать программу на самом BlueNRG (но пока не совсем понятно как)

P.S. что удивительно все примеры от ST делает исключительно для своих демо плат.  Т.е. даже для программирования их же модуля (SPBTLE-1S) их же примерами, приходится вначале убирать лишнее, которое относится к демо платам.

6

Atomic-dm, а какая вообще цель [глобально, стратегически, в идеале] - ble девайсы для смартфона/планшета?

7

vt написал(а):

Atomic-dm, а какая вообще цель [глобально, стратегически, в идеале] - ble девайсы для смартфона/планшета?

ну целей несколько, но в целом просто научиться использовать блютус в совокупности с планшетами и смартфонами.
Есть и свои проекты в которых это можно применить, плюс если нормально разберусь, то и на рабочий проект поставлю. (там в устройстве борьба за потребление идет и обычный SPP блютус ставить не хочется)

8

Atomic-dm написал(а):

использовать блютус в совокупности с планшетами и смартфонами

А что со стороны планшета/смартфона, какие-то готовые программы или тоже свои?

9

vt написал(а):

А что со стороны планшета/смартфона, какие-то готовые программы или тоже свои?

ну естественно свои буду писать. для отладки , чтобы понять что вообще работает , достаточно всяких блютуз сканеров... Ну а для своих устройств буду писать простенькие свои программы.

Польше волнует что никак не получается заставить работать. Два дня назад подключал модуль 6 проводами (питания,земля,swd, reset, boot) потихоньку понимал что нужно еще подпаивать провода. Сегодня в итоге плюнул на все и подключил на гребенку все возможные контакты. получился некий "паук". Посмотрел как работает вывод в юарт на МК, протестировал приложение которое может заливать прошивку по юарту (по аналогии с STM32 Flasher) В общем периферия работает, это плюс. Но все что касается самого блютуса... увы , раскочегарить пока не получается.

Пробовал подключать модуль на плату Nucleo взамен отладочного BLE модуля с которым проблем не было и использовать рабочие примеры. пока попытка не увенчалась успехом. В общем пока результатов нет, но экспириенс растет ....

10

http://s5.uploads.ru/t/e5jZO.jpg
Вот некоторые из "подопытных"
Слева направо:

X-NUCLEO-IDB05A1
SPBTLE-1S
X-NUCLEO-IDB04A1+ NUCLEO-L476RG

за кадром остались
NUCLEO-L053R8
X-NUCLEO-IKS01A2

В общем борьба ведется с SPBTLE-1S , остальное так ... для компании.

На несколько дней уезжаю, потом продолжу. Если не справлюсь с SPBTLE-1S, то попытаюсь подключиться к BlueNRG на плате X-NUCLEO-IDB04A1, там вроде есть пины сервисного разъема в котором есть SWD. попробую и его "сломать" (сейчас он работает :) )

P.S. еще - понравился St-link на Nucleo .   
1. mass storage - очень удобно чтобы закинуть тестовые примеры.
2. также при подключении создается виртуальный ком порт который подключен к порту на плате. тоже удобно посмотреть отладочные сообщения(особенно на примерах)
3. Проекты для Nucleo в Keil вроде не привязаны к размеру кода. Возможно потому что серия L.  В тоже время при компиляции прошивки для самого BlueNRG уже ругается на превышении лимита кода.

Отредактировано Atomic-dm (2018-10-03 22:55:21)

11

Удивительно что по отладке все вроде как запускается

приложение чат

BlueNRG-1 BLE Chat Server Application (version: 1.0.0)
aci_gatt_init() --> SUCCESS
aci_gap_init() --> SUCCESS
aci_gatt_update_char_value() --> SUCCESS
Chat Service added.
TX Char Handle 000D, RX Char Handle 0010
Add_Chat_Service() --> SUCCESS
BLE Stack Initialized
aci_gap_set_discoverable() --> SUCCESS

приложение Beacon

aci_gatt_init() --> SUCCESS
aci_gap_init() --> SUCCESS
hci_le_set_scan_resp_data() --> SUCCESS
aci_gap_set_discoverable() --> SUCCESS
hci_le_set_advertising_data() --> SUCCESS
BlueNRG-1 BLE Beacon Application (version: 1.1.0)

Начинаю думать что проблема на физическом уровне ... может антена глючит или еще что-то..

12

если кому интересно , то сообщаю
SPBTLE-1S заработал с примерами ST (почему то правда не со всеми)
Основная моя ошибка была в том, что в примерах используется кварц на 16Мгц , а на данном модуле стоит 32М. В примерах кейла настраивается на директивах(дефайнах) предпопроцессора.
в данный момент собираю в кейле новый проект с нуля с желанием убрать лишние файлы и библиотеки,уменьшить уровень абстракции и оставить только самое важное. Сложности как всегда вызывают три момента
1. отсутствие знаний
2. стек BLE распространяется как библиотека объектных файлов и на нее завязаны разные дефайны часть которых пока не совсем ясна (см. п1)
3. очень скудная информационная поддержка от ST. инфа конечно есть, но не так хороша как на stm32, в основном завязана на готовые отладочные модули которые по ардуиновски насаживаются на отладочные платы nucleo.

Из плюсов - если не брать в расчет BLE, то вся периферия самого МК достаточно проста и ясна. Запустить его и поморгать диодом думаю сможет любой кто сталкивался с библиотекой SPL (ну те кто пишут на CMSIS думаю вообще проблем не испытают. регистров мало и они описаны в документах)

P.S.  немного разобрался со схемами и обвязками, возможно попробую сделать свой модуль.

13

так много чего хочется сказать, но лучше не буду, пьян. в дребезг.
так что вообщем... любой блю стек лучше начинать имея под рукой платы производителя( с кем имеете интерес "секуса"), при чем топовые решения - все и сразу. тогда вам будут доступны все примеры из которых будет ясно, что и ( и-и) как. а вот уже основываясь на этих данных можно и далее...
иначе "секус" с самим собой долгое время, перед тем как вам кто то даст. 
все так запутано... что здец... ведь можно настолько все проще это сделать. но бабло, бабло, сцуко рулит.
так что читаем доки и на низком уровне потихоньку, положив на все библиотеки производителя писать свои...
хотя с другой стороны st дали все и бесплатно( на камни, даж кодеген), один ..уй мне не нравиться :) :) опять все ту даже, в низкий уровень. отсюда вывод - свинье в низу рыться, и рыло не задирать. а если задираешь, то плати...
я без наездов на кого либо. просто если хочется просто и быстро, то смотри выше.
Atomic-dm хоть коды хелло ворд покажи.
сию мессагу могу удалить. завтра виднее будет.

14

Хорошо что я не видел вчера, просто я был в аналогичном состоянии, могла получиться любопытная беседа :)))))

На счет плат от производителя - в этом и штука , имею я все эти платы и все примеры. Но от этого не легче. Да, примеры работают, но даже имея их код на руках разобраться очень сложно, ибо уровень абстракции просто зашкаливает. плюс учитывая что с BLE не так все и просто, то в сумме вообще жопа получается. чуть позже покажу куски этого ужаса.
В итоге любой отход от демоплаты это гиганская работа по отвязке всего ненужного кода и дефайнов которые прописаны в примерах.
Плюс примеры есть двух типов :
1. сторонний МК+ BlueNRG - В bluenrg зашита прошивка которая принимает по SPI команды и работает уже с BLE
2. BlueNRG с программой - сам имеет свою прошивку , работает с периферией и общается с BLE

Сейчас я разбираюсь со вторым вариантом. Мигание диодом - элементарное. А вот если копать в сторону работы с BLE , то приходится использовать кучу файлов и дефайнов завязанных на стек BLE , который сам по себе является черным ящиком и прозводитель дает его в качестве библиотеки.

15

В общем что-то начинает получаться.  Даже для iphone тестовое приложение сделал.  Гугления 2 дня и их кучи примеров и собственных размышлений и удалось разобраться в swift и xcode.
Если кто-то будет что-то делать с блютусом 4.0 то самое основное разобраться в самой технологии блютуса 4.0 и уже потом что-то пытаться делать с bluenrg. Без понимания основ можно очень сильно завязнуть даже на стандартных примерах.

P.S. я пока еще только начинаю понимать :)

16

забыл отписаться - то что хотел то сделал. а хотел я принимать данные по юарту BlueNRG и выдавать их по блютусу на iOS .  С переферией как я и говорил проблем изначально не было(после STM32 любой разберется). с блютусом пришлось повозиться и выкинуть весь хлам(опять же - главное читать общую теорию про технологию BLE). Чтобы написать элементарное приложение под iOS ушло пару дней на изучение SWIFT примеров из интернета и создание самого приложения. (естественно дизайн там был никакой)

В связи с всякими граблями по iOS разработке софта, так и не понял как можно применить сей опыт.  Даже думаю об Андройде. на нем думаю с софтом проще...  В общем учитывая этот фактор и что BlueNRG чет подорожал и перестал быть в наличии решил переключиться на более дешевые решения , которые легко покупаются на али.  Итого сейчас в свободное время решил посмотреть как обстоят дела у TI и их CC2541 (модуль HC-10), только только начал и результаты пока скромные... но это уже совсем другая история.


Вы здесь » Микроконтроллеры » Всё остальное » BlueNRG