Перейти к содержанию
    

Пишу, чтоб начинающие долго не мучились, ведь Нордик (как впрочем и остальные BT-деятели) "скромно умалчивает" о неработоспособности BLE с Android 5.

 

Если с другими версиями работает и с компом тоже, так может это проблема не "Нордик (как впрочем и остальные BT-деятели)", а андроида 5? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не было проблем с android 5. Телефон дешевый китайский за $100.

После обновления телефона до android 6 для полноценной работы BLE стало нужно включать геолокацию.

Мне кажется в 5-ой версии это не требовалось, хотя может уже и забыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> так может это проблема не "Нордик (как впрочем и остальные BT-деятели)", а андроида 5?

Вы наверно не читали или не поняли текст беседы. ;)

Там именно это было и написано, ошибка GATT сервера BLE Android.

 

Но дело не в этом, а в том, что ни один мудак из Нордик или TI (зная о проблеме) не сообщил о ней пользователям в доке.

Покупайте и трахайте себе мозг... а мы весело над этим понаблюдаем. Вот такая позиция.

 

Но и не в этом дело! Оно оказалось еще смешнее.

Самсунг обмолвился, что эту модель обновлять до 6й версии не намерен.

О как! А только купил его пол года назад. Уроды...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал IAR порт scmRTOS для Nordic Semiconductor > nRF51x

Для тестов использовался кит > BLE400, модуль с nrf51822QFAC на боту, (желателен xxAC), и > O-Link-ARM.

 

1f4cd8f74071.jpg

 

Использование:

1. Открыть в IAR папку '3-channel' и выбрать файл проекта *.eww и откомпилировать.

2. Перед загрузкой в кристалл, запустить утилиту от Nordic "nRFgo Studio" и полностью его стереть.

Иначе если останется ранее зашитый китайцами стек, отладка может не запуститься.

 

Надеюсь проект поможет любителям scmRTOS и BLE.

Огромная благодарность Антону Гусеву, 'AHTOXA' за помощь в отладке порта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы ее сделали ticlkess?

Я далек от С++ и не понял что делает функуция sleep.

Когда нет активности ядра и работает только RTC и активен блютуз стек потребление контроллера будет 4 мкА?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это лишь "сырой" шаблон проекта для быстрого запуска RTOS на nRF51x.

Ввиду некоторых особенностей ядра nRF стандартный порт Cortex-M0 там не пошел.

 

>> что делает функуция sleep

Она останавливает в данной точке выполнение текущего процесса на заданное число тиков системного таймера.

Если sleep без аргументов, то останавливает перманентно. Посмотрите плиз доку на scmRTOS.

 

>> только RTC и активен блютуз стек потребление контроллера будет 4 мкА?

Пока не тестил, но препятствий не вижу. Можно остановить периферию и переключать процессы по нужным вам событиям.

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Она останавливает в данной точке выполнение текущего процесса на заданное число тиков системного таймера.
Вот это я и хотел узнать, какой таймер используется.

С системным таймером вы не получите 4 мкА. У вас получается во время выполенния sleep() работает ядро и вероятно возникают прерывания каждую миллисекунду (ну или какой там у вас тик).

Например, если в этом варианте делать мигание светодиодом длительностью 100 мсек каждые 10 сек, то даже в паузе 10 сек будет работать ядро.

В планировщике, который идет вместе с NRF, таймеры работают через RTC.

Их стек настроит RTC на пробуждение через 10 сек. И пока оно ничего не делает ток будет 4 мкА.

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> во время выполенния sleep() работает ядро

 

Тики таймера сейчас сделаны для проверки работоспособности порта.

Никто не мешает их выключить и не использовать системный таймер. Отключите его в конфиге rtos.

Затем в обработчик вашего события от стека добавьте установку флага события. В сам процесс добавьте ожидание этого события.

И будут вам желаемые 4мкА...

 

Дело вкуса, я привык к scmRTOS, он серьёзно упрощает написание кода.

У меня сделан всего 1 усечённый пример, чтоб не создавать дополнительные трудности.

Тут можно посмотреть > полные версии примеров использования.

Изменено пользователем sevstels

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут дело вкуса, я привык к scmRTOS, серьёзно упрощает написание кода.
Это точно дело вкуса.

В основном пользуюсь FeeRTOS. Пытался сделать проект на BlackFin с scmRTOS. Не осилил С++.

Мне очень понравился свой планировщик у NRF.

Чем он вам не понравился?

Я даже перенес его на STM8L для одного проекта.

С проблемами конечно, но работает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> С проблемами конечно, но работает.

Мне не нужны проблемы, их и так хватает. Поэтому - scmRTOS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Померяйте тогда ток в режиме мигания светодиодом, например.

На мой взгляд высокое потребление BLE это и есть самая большая проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тики таймера сейчас сделаны для проверки работоспособности порта.

Никто не мешает их выключить и не использовать системный таймер. Отключите его в конфиге rtos.

Затем в обработчик вашего события от стека добавьте установку флага события. В сам процесс добавьте ожидание этого события.

И будут вам желаемые 4мкА...

Всё то же самое, я думаю, можно сделать и на любой другой RTOS.

Например под uCOS - без проблем: SysTick можно заменить на любой другой таймер или вообще его отключить. Это вообще дело порта и не входит в ядро uCOS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно что можно.

Но за пару минут вы это не сделаете если ОС из коробки не поддерживает режим работы без периодических тиков.

Ведь надо пересчитывать очередь таймеров для настройки RTC после каждого пробуждения.

В очереди первым надо выставлять таймер, который досчитает раньше всех.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...