реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> NORDIC nrf51822, вопрос по ф-ии
Метценгерштейн
сообщение Aug 10 2015, 09:03
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



sd_app_event_wait();

Хочу девай в сон загнать. Вычитал, что этой ф-ей он гонится в сон. Но не понять систему- нужен хидер файл. Без него компилер не видит ф-ии. Как искать, какой хидер нужен? Где в документации указано, какой подключать?
Немного каша у меня.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Aug 10 2015, 09:26
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Метценгерштейн @ Aug 10 2015, 12:03) *
...Как искать, какой хидер нужен? Где в документации указано, какой подключать?...


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

согласитесь это элементарные шаги, которые можно решать самому...


ЗЫ
По первой ссылке есть архив проекта. Думаю он компилябельный...
тут встречается название вашей функции

Сообщение отредактировал kolobok0 - Aug 10 2015, 09:28
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 10 2015, 11:35
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Вы не поняли вопрос.
Я знаю что такое хидеры и как и куда их включать. Вопрос в другом- какой именно хидер нужен? Где в документации сказано, что включите именно его? По ссылке я был еще до Вас. Ничего из моих вопросов нет.
Если Вы не занимались нордиком, то общие советы можно не давать- они просты.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 10 2015, 19:13
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Включать файл "nrf_soc.h". Можно было перейти к функции в нормальной IDE(find references или goto definition) или поискать определение по файлам, например через тоталкоммандер.

П.с. Эта функция не уводит устройство в сон, а только ядро АРМ. Вся остальная периферия продолжит работать и процессор проснётся по первому прерыванию.
Фактически в функции выполняется одна команда __WFE();

Для ухода в глубокий сон есть другие функции, например
sd_power_system_off(); - если используется SofDevice, или просто запись в регистр NRF_POWER->SYSTEMOFF = 1;
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 11 2015, 12:03
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Цитата(Defin @ Aug 10 2015, 22:13) *
Включать файл "nrf_soc.h". Можно было перейти к функции в нормальной IDE(find references или goto definition) или поискать определение по файлам, например через тоталкоммандер.

П.с. Эта функция не уводит устройство в сон, а только ядро АРМ. Вся остальная периферия продолжит работать и процессор проснётся по первому прерыванию.
Фактически в функции выполняется одна команда __WFE();

Для ухода в глубокий сон есть другие функции, например
sd_power_system_off(); - если используется SofDevice, или просто запись в регистр NRF_POWER->SYSTEMOFF = 1;


вот, спасибо. Видно, что человек работает с нордиком.
Там фишка в том, что софтдевайс прошит отдельной прошивкой в др. область памяти. И, похоже, что именно только через эти хидеры происходит обращение к ф-ям софтдевайса. Все ф-ии SD... находятся в софтдевайсе. Обращение к ним через этот хидер.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 11 2015, 14:14
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Метценгерштейн @ Aug 11 2015, 15:03) *
вот, спасибо. Видно, что человек работает с нордиком.
Там фишка в том, что софтдевайс прошит отдельной прошивкой в др. область памяти. И, похоже, что именно только через эти хидеры происходит обращение к ф-ям софтдевайса. Все ф-ии SD... находятся в софтдевайсе. Обращение к ним через этот хидер.

Пожалуйста.
Функции, которые начинаются с sd_ требуют инициализированный и включенный softdevice, иначе вылет в assert, кроме пары штук, у них есть тело в файле .c.

А так, вся документация и SDK c примерами есть на сайте нордика https://developer.nordicsemi.com/nRF51_SDK
Только нужно смотреть на ревизию чипа, последние версии SDK работают только с 3й ревизией чипа.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 12 2015, 09:29
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



еще вопрос по сну:
загнал его в сон ф-ей
sd_power_system_off();

он теперь на что реагирует? Разбудить его чем теперь?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 12 2015, 10:27
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



может мануалом его стукнуть или другой какой документацией?
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 12 2015, 11:49
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Golikov A. @ Aug 12 2015, 13:27) *
может мануалом его стукнуть или другой какой документацией?


Вынужден согласиться с товарищем.

Ответ на все вопросы можно найти в документации, даташите и референс-мануале. Всё есть на сайте нордика.
Также в SDK есть примеры реализаций прошивок, например ble_app_hrs.

Касательно sd_power_system_off. Это уход в самый экономичный режим сна, без сохранения ОЗУ.
Проснуться можно по изменению логического уровня на каком-либо входе. Но его нужно предварительно настроить функцией nrf_gpio_cfg_sense_input.
Опять таки, всё можно подсмотреть в примерах.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 12 2015, 12:42
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Спасибо за пояснения. Тут я на пути, как подступиться к этой самой документации. Пока только разбираюсь с системой документации. Буду там смотреть.
Еще раз спасибо за дельные ответы. Теперь уже можно что-то похожее искать как реализовано в примерах.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 09:59
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



не получается все-равно запустить проект
http://developer.nordicsemi.com/nRF51_SDK/...tml/a00075.html

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

Проц предварительно стер весь. Залил проект. Может надо отдельно софтдевайс в память заливать? Хотя нигде про это не сказано.

В проекте адреса флеша с 1600 начинаются. По идее, надо отдельно софтдевайс подгружать.
Не врублюсь, от куда его брать?

Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 18 2015, 13:08
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Софтдевайс отдельно заливается. Иначе даже отладчик(IAR) ругается на неправильный указатель на стэк.
Для S110 hex файл лежит в папке SDK \components\softdevice\s110\hex\
Залить можно просто скопировав в "диск" программатора.

При успешной прошивке, отладочник замигает светодиодом.

Сообщение отредактировал IgorKossak - Aug 18 2015, 16:52
Причина редактирования: бездумное цитирование
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 14:44
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



хрень какая-то:

открыл проект в SDK 8.1.0
C:\...\NORDIC\SDK_8.1.0\examples\ble_peripheral\ble_app_cts_c\pca10028\s110\arm5_no_packs\ble_app_cts_c_s110_pca10028.uvprojx

загрузил софтдевайс из того же SDK через nRF Go Studio, предварительно стер флеш.

Заливаю проект кейлом, старт начинается с main()

все как буд - то нормально.

в main вызывается ф-я
ble_stack_init();
и там пропадает.

разве что-то забыл сделать еще?

уже в вечном цикле ничего не крутится.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 18 2015, 15:14
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(Метценгерштейн @ Aug 18 2015, 17:44) *
Заливаю проект кейлом, старт начинается с main()
все как буд - то нормально.

в main вызывается ф-я
ble_stack_init();
и там пропадает.

разве что-то забыл сделать еще?

уже в вечном цикле ничего не крутится.


А на чем запускаете, на отладочнике nrf51dk? Если нет, то на чем и какая ревизия чипа(можно здесь написать полный текст с чипа, сам посмотрю).
Могу посоветовать пройтись под дебагом и узнать, что возращается в
err_code = sd_ble_enable(&ble_enable_params);
APP_ERROR_CHECK(err_code);

И вообще, на каком именно APP_ERROR_CHECK(err_code) валится, их полно в коде.
Также во время выполнения программы под отладкой, стоит поставить на паузу и посмотреть call stack.

Сам использую IAR, что и как в кейле не скажу, не нравится мне он.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 18 2015, 17:41
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Спасибо. Завтра на работе подробно все посмотрю и скажу. Есть отладочная доска, есть отдельно процы спаянные. Доска PCA0006 вроде как.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 19 2015, 08:23
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



использую отдельный чип, спаянный на платке. Эти платки у нас работают уже как серийные. До сих пор не касался софтдевайса, работал с ним как с простым МК.

сам чип
N51822
GFAAG2
1429C0

пытаюсь уже и на SDK 6.1 примере работать. Не понятно софтдевайс какой и от куда лить? Залил s110_nrf51822_7.1.0_softdevice - нашел где-то у себя его.

вызывается ф-я
ble_stack_init();
в ней макрос
SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false);
и в нем куда-то все пропадает.

Разбираюсь пока что с этим

http://clip2net.com/s/3mkH2oV

входит в ф-ю sd_softdevice_enable()
и там в недрах пропадает. уже на след. бряку не встает.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 19 2015, 13:31
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата
сам чип
N51822
GFAAG2
1429C0

Согласно документу https://www.nordicsemi.com/eng/nordic/downl...1917/8/91402025
это вторая ревизия чипа, а значит самый "свежий" SDK это 6.1.0 и softdevice 7.1.0.

Цитата
пытаюсь уже и на SDK 6.1 примере работать. Не понятно софтдевайс какой и от куда лить? Залил s110_nrf51822_7.1.0_softdevice - нашел где-то у себя его.

На сайте есть версия softdevice 7.3.0, должна быть совместима(bugfix release), приложил к посту.
Надо будет только заменить h-файлы в папке SDK для S110 на новые из softdevice 7.3.0.

Т.е. нужно использовать SDK 6.1.0 и softdevice 7.3.0. Перед заливкой softdevice флеш лучше стереть.

Цитата
вызывается ф-я
ble_stack_init();
в ней макрос
SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false);
и в нем куда-то все пропадает.

А кварц на 16МГц то есть? И желательно с точностью 20PPM

Цитата
Разбираюсь пока что с этим
http://clip2net.com/s/3mkH2oV
входит в ф-ю sd_softdevice_enable()
и там в недрах пропадает. уже на след. бряку не встает.

Надо бы поставить brealpoint в функции softdevice_assertion_handler

В общем, посмотрите внимательно на схему устройства, всё ли есть(можно и сюда приложить), и какая модель отладочника точно?
Также, если есть возможность, стоит заменить чипы на 3 ревизию, там снизили потребление и прочие улучшения.
Прикрепленные файлы
Прикрепленный файл  s110_nrf51822_7.3.0.zip ( 192.09 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 20 2015, 09:30
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



кварц на 16 МГц, этот модуль, что я использую- рабочий- он в других устройствах с BLE работает (не я писал)
у меня как-то не получается стартануть с ним.

http://clip2net.com/s/3moaGF0
вот ф-я softdevice_assertion_handler
на бряку не встает программа. Т.е. это не еррор.
Go to the top of the page
 
+Quote Post
x893
сообщение Aug 21 2015, 03:57
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



NRF_CLOCK_LFCLKSRC_XTAL_20_PPM
нужен 32768 kHz внешний кварц, если его нет - ничего не будет работать конечно

Если нет внешнего LF кварца используй что-то из
enum NRF_CLOCK_LFCLKSRCS (nrf_sdm.h)

Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 21 2015, 14:05
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(x893 @ Aug 21 2015, 06:57) *
NRF_CLOCK_LFCLKSRC_XTAL_20_PPM
нужен 32768 kHz внешний кварц, если его нет - ничего не будет работать конечно

Если нет внешнего LF кварца используй что-то из
enum NRF_CLOCK_LFCLKSRCS (nrf_sdm.h)


Точно, low frequency кварц. Впрочем, он на плате PCA10006 есть. Может перемычки не стояли?
Go to the top of the page
 
+Quote Post
x893
сообщение Aug 21 2015, 14:59
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Всё может быть

NRF_CLOCK_LFCLKSRC_RC_250_PPM_8000MS_CALIBRATION

для проверки поставить
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Aug 22 2015, 20:32
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Спасибо за идею дельную! В понедельник проверю на работе- отпишусь.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Aug 30 2015, 07:07
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Почитал не очень глубоко доку по nRF51822. И не нашел внятного ответа на вопрос, поддерживается ли чипом Dual-mode и будет ли нормально работать соединенение nRF51822 со стандартным BT модулем в компьютере?


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 30 2015, 10:54
Сообщение #24


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(sevstels @ Aug 30 2015, 10:07) *
Почитал не очень глубоко доку по nRF51822. И не нашел внятного ответа на вопрос, поддерживается ли чипом Dual-mode и будет ли нормально работать соединенение nRF51822 со стандартным BT модулем в компьютере?


Нет, чип не поддерживает двойной режим, только LE. А с поддержкой Dual-mode доступных нет SoC, только отдельный модуль без встроенного МК, например CC2564
Go to the top of the page
 
+Quote Post
sevstels
сообщение Aug 30 2015, 11:02
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Те, тогда сконнектить с BT компьтера не получится?
А как же работают примеры использования nRF51822 для канала мышки и клавы?
Или они только как демка для LE<->LE?

Видел на Сахаре сообщение, коннектили и нормально работал обмен между стандартный BT и LE.
Но как то слабо верится, у меня не получилось.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 30 2015, 11:26
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



С компьютером получится, если он или свисток поддерживает Bluetooth 4, т.е зависит от модуля.
Например, моему ноуту уже 2 года, но он отлично видит как LE устройства, так и обычные.
В центральные(central) устройства обычно ставят dual-mode контроллеры, так как нет жестких требований по экономии энергии(относительно, конечно).

Обычный блютуз и LE(single mode) не совместимы, на сахаре чего-то не договаривают.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Aug 30 2015, 12:07
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Цитата
> Мы коннектили. Свой девайс был на блугиговском
модуле с CC2540 на борту. Донгл был такой же, как по ссылке у вас.
Работало очень хорошо. Лучше чем блугиговский донг


Донгл CSR 4.0 BLE не поддерживает. Более того, все попытки их насильно "поженить" вызывали крах firmware и зависание BLE до передёргивания питания. BLE сниффер пакеты с компьтера не видит, более того - по приёму стандартных пакетов, он "умирает". Пробовал 6 разных донглов в том числе и встроенные BT 4.0 от ноута и от десктоп.

Сообщение отредактировал sevstels - Aug 30 2015, 12:08


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 30 2015, 13:21
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(sevstels @ Aug 30 2015, 15:07) *
Донгл CSR 4.0 BLE не поддерживает. Более того, все попытки их насильно "поженить" вызывали крах firmware и зависание BLE до передёргивания питания. BLE сниффер пакеты с компьтера не видит, более того - по приёму стандартных пакетов, он "умирает". Пробовал 6 разных донглов в том числе и встроенные BT 4.0 от ноута и от десктоп.


Погуглив CSR 4.0, оказалось, что он построен на чипе CSR8510 A10, открываю даташит: http://www.csr.com/sites/default/files/csr8510.pdf
И там на второй строчке: Dual-mode Bluetooth/Bluetooth low energy operation. Т.е. он поддерживает как обычные блютузы, так и LE.

Сообщение отредактировал Defin - Aug 30 2015, 13:23
Go to the top of the page
 
+Quote Post
sevstels
сообщение Aug 30 2015, 13:58
Сообщение #29


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Вероятно.. но мне не удалось приконнектить, видимо пока не хватает квалификации.

Хорошо, другой вопрос. Мне требуется классический BT и реализация некоторых HCI команд, описанных в BT спеке ver4.2 Те в версии 4.0 их ещё нет. Подскажите на каком кристалле это проще сделать? Чтоб был доступ к регистрам управления трансивером и возможность управления протоколом.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
Defin
сообщение Aug 30 2015, 14:29
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(sevstels @ Aug 30 2015, 16:58) *
Хорошо, другой вопрос. Мне требуется классический BT и реализация некоторых HCI команд, описанных в BT спеке ver4.2 Те в версии 4.0 их ещё нет. Подскажите на каком кристалле это проще сделать? Чтоб был доступ к регистрам управления трансивером и возможность управления протоколом.


Доступ к регистрам то есть везде, главное чтобы были описаны в документации. Проблема в стеке Bluetooth.
Все стеки, с которыми я работал(TI, Nordic) закрыты, производитель поставляет только либы или hex + некоторую оболочку вокруг него.

Могу посоветовать поковырять SDK от какого-нибудь чипа TI CC256x и поспрашивать на их форуме/техподдержке.
По крайней мере, там отвечают их специалисты: https://e2e.ti.com/support/wireless_connect.../f/660/t/387155
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Sep 3 2015, 13:57
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



проверил идею с кварцем- при инициализации установил
NRF_CLOCK_LFCLKSRC_RC_250_PPM_8000MS_CALIBRATION

и он в эфире появился!

Спасибо всем за подсказки! Будем дальше разбираться.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Dec 6 2015, 11:14
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



вопрос по этому процу- минимум распаянный для того, чтобы программатор его увидел -какой?
Просто подключить программатор к процу и подать питание не получится? Т.е. без кварца.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Dec 7 2015, 01:07
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Получится без кварца. Два сигнала от SWD-DP достаточно.

Сообщение отредактировал Genadi Zawidowski - Dec 7 2015, 01:08
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 29 2016, 07:15
Сообщение #34


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Никто не пробовал сформировать "классический" пакет на nrf51822 и передать?
Глубоко не вникая в скрытые нюансы, почитал документацию и очень похоже что можно.
Судя из их доки, единственный пункт который не получится "исправить" в классическую сторону- преамбула в 4 бита длиной. Она будет 8 бит, но для приемника это не существенно,тк прерывание Rx по совпадению синхрослова а не преамбулы.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение May 29 2016, 14:58
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Никто не пробовал сформировать "классический" пакет на nrf51822 и передать?
А зачем? Какой в этом практический смысл?
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 30 2016, 04:13
Сообщение #36


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Смысл есть. В моей задаче нужно поддерживать взаимодействие как с классическими так и BLE устройствами. USB донгла, чтоб кристалл был дёшев и документация доступна так и не нашел. Или по доке всё вроде должно получиться, но на практике сталкиваешься с заморочками производителя чипа. TI например, вот где бестолковщины! Каждый отдел делал свою часть как хотел, исходя из женской логики. И не знал что делает соседний. Обещают, как бы "туманно", а в железке реализовать не получается.

Сообщение отредактировал sevstels - May 30 2016, 04:16


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение May 30 2016, 05:04
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Обещают, как бы "туманно", а в железке реализовать не получается.
Это вы про CC2564? Она не работает в обоих режимах?
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 30 2016, 09:13
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Нет, CC2564 пока ещё не успел купить. Но всяких других уже - "мешок". Как истинно говорится: " Выбор толковый приходит с опытом, а к нему приводит выбор бестолковый." В общем, если никто не пробовал передать классический пакет из nrf51822, попробую, кит уже купил.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
Defin
сообщение May 30 2016, 12:11
Сообщение #39


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 26-12-11
Из: Казань
Пользователь №: 69 101



Цитата(sevstels @ May 30 2016, 12:13) *
Нет, CC2564 пока ещё не успел купить. Но всяких других уже - "мешок". Как истинно говорится: " Выбор толковый приходит с опытом, а к нему приводит выбор бестолковый." В общем, если никто не пробовал передать классический пакет из nrf51822, попробую, кит уже купил.

А стек блютуза сами будете писать? У нордика исходники стека закрыты, предоставляют только hex-файл для заливки в чип и заголовочные файлы.
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 30 2016, 12:16
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



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


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 30 2016, 12:48
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(sevstels @ May 30 2016, 18:16) *
Стек не нужен, он лишь усложняет дело, кастомный протокол.

Если "стек не нужен" и "кастомный протокол", то почему бы не взять простой RF-модуль на требуемый частотный диапазон и использовать его?
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 30 2016, 12:55
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Хороший вопрос.
У меня уже есть рабочий вариант с BT-трансивер, который работает с классик и BLE. Но использовать его в масс-продакшен нельзя, тк можно легко "подсесть" на шину между RF и контролером для реверса. Что вскоре привлечет серьёзные проблемы со стороны желтоглазых братьев.


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 31 2016, 12:41
Сообщение #43


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(sevstels @ May 30 2016, 15:55) *
Хороший вопрос.
У меня уже есть рабочий вариант с BT-трансивер, который работает с классик и BLE. Но использовать его в масс-продакшен нельзя, тк можно легко "подсесть" на шину между RF и контролером для реверса. Что вскоре привлечет серьёзные проблемы со стороны желтоглазых братьев.


Странно как-то говорите - есть проект на открытом стеке, вы его доработали существенно или написали свой, чтоб делать закрытым? Если нет, то какой смысл реверсить то, что и так открыто?

Сообщение отредактировал mantech - May 31 2016, 12:41
Go to the top of the page
 
+Quote Post
sevstels
сообщение May 31 2016, 12:59
Сообщение #44


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



О каком стеке вы говорите?
Если про ubertooth, то он использовался только изучения и отладки, хорошая платформа.
Исправив там огромное число ошибок, портировал его под IAR и под Win, это есть преступление?


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 10 2016, 07:15
Сообщение #45


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



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


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 10 2016, 17:26
Сообщение #46


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



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


Если с другими версиями работает и с компом тоже, так может это проблема не "Нордик (как впрочем и остальные BT-деятели)", а андроида 5? wink.gif
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 10 2016, 17:42
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



У меня не было проблем с android 5. Телефон дешевый китайский за $100.
После обновления телефона до android 6 для полноценной работы BLE стало нужно включать геолокацию.
Мне кажется в 5-ой версии это не требовалось, хотя может уже и забыл.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 11 2016, 06:05
Сообщение #48


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



>> так может это проблема не "Нордик (как впрочем и остальные BT-деятели)", а андроида 5?
Вы наверно не читали или не поняли текст беседы. wink.gif
Там именно это было и написано, ошибка GATT сервера BLE Android.

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

Но и не в этом дело! Оно оказалось еще смешнее.
Самсунг обмолвился, что эту модель обновлять до 6й версии не намерен.
О как! А только купил его пол года назад. Уроды...


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 18 2016, 09:42
Сообщение #49


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



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



Использование:
1. Открыть в IAR папку '3-channel' и выбрать файл проекта *.eww и откомпилировать.
2. Перед загрузкой в кристалл, запустить утилиту от Nordic "nRFgo Studio" и полностью его стереть.
Иначе если останется ранее зашитый китайцами стек, отладка может не запуститься.

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


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 19 2016, 04:48
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Вы ее сделали ticlkess?
Я далек от С++ и не понял что делает функуция sleep.
Когда нет активности ядра и работает только RTC и активен блютуз стек потребление контроллера будет 4 мкА?
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 19 2016, 05:23
Сообщение #51


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Это лишь "сырой" шаблон проекта для быстрого запуска RTOS на nRF51x.
Ввиду некоторых особенностей ядра nRF стандартный порт Cortex-M0 там не пошел.

>> что делает функуция sleep
Она останавливает в данной точке выполнение текущего процесса на заданное число тиков системного таймера.
Если sleep без аргументов, то останавливает перманентно. Посмотрите плиз доку на scmRTOS.

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






--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 19 2016, 06:50
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Она останавливает в данной точке выполнение текущего процесса на заданное число тиков системного таймера.
Вот это я и хотел узнать, какой таймер используется.
С системным таймером вы не получите 4 мкА. У вас получается во время выполенния sleep() работает ядро и вероятно возникают прерывания каждую миллисекунду (ну или какой там у вас тик).
Например, если в этом варианте делать мигание светодиодом длительностью 100 мсек каждые 10 сек, то даже в паузе 10 сек будет работать ядро.
В планировщике, который идет вместе с NRF, таймеры работают через RTC.
Их стек настроит RTC на пробуждение через 10 сек. И пока оно ничего не делает ток будет 4 мкА.
Ну плюс на адвертайзы будет просыпаться если они у вас включены.

Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 19 2016, 07:00
Сообщение #53


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



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

Тики таймера сейчас сделаны для проверки работоспособности порта.
Никто не мешает их выключить и не использовать системный таймер. Отключите его в конфиге rtos.
Затем в обработчик вашего события от стека добавьте установку флага события. В сам процесс добавьте ожидание этого события.
И будут вам желаемые 4мкА...

Дело вкуса, я привык к scmRTOS, он серьёзно упрощает написание кода.
У меня сделан всего 1 усечённый пример, чтоб не создавать дополнительные трудности.
Тут можно посмотреть > полные версии примеров использования.

Сообщение отредактировал sevstels - Dec 19 2016, 07:11


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 19 2016, 07:13
Сообщение #54


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Тут дело вкуса, я привык к scmRTOS, серьёзно упрощает написание кода.
Это точно дело вкуса.
В основном пользуюсь FeeRTOS. Пытался сделать проект на BlackFin с scmRTOS. Не осилил С++.
Мне очень понравился свой планировщик у NRF.
Чем он вам не понравился?
Я даже перенес его на STM8L для одного проекта.
С проблемами конечно, но работает.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 19 2016, 07:15
Сообщение #55


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



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


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 19 2016, 07:55
Сообщение #56


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Померяйте тогда ток в режиме мигания светодиодом, например.
На мой взгляд высокое потребление BLE это и есть самая большая проблема.
Go to the top of the page
 
+Quote Post
sevstels
сообщение Dec 19 2016, 08:00
Сообщение #57


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Смогу дальше с этим работать только через неделю.
Пока на другом проекте.. sm.gif


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 19 2016, 12:59
Сообщение #58


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(sevstels @ Dec 19 2016, 10:00) *
Тики таймера сейчас сделаны для проверки работоспособности порта.
Никто не мешает их выключить и не использовать системный таймер. Отключите его в конфиге rtos.
Затем в обработчик вашего события от стека добавьте установку флага события. В сам процесс добавьте ожидание этого события.
И будут вам желаемые 4мкА...

Всё то же самое, я думаю, можно сделать и на любой другой RTOS.
Например под uCOS - без проблем: SysTick можно заменить на любой другой таймер или вообще его отключить. Это вообще дело порта и не входит в ядро uCOS.
Go to the top of the page
 
+Quote Post
uriy
сообщение Dec 19 2016, 13:58
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Понятно что можно.
Но за пару минут вы это не сделаете если ОС из коробки не поддерживает режим работы без периодических тиков.
Ведь надо пересчитывать очередь таймеров для настройки RTC после каждого пробуждения.
В очереди первым надо выставлять таймер, который досчитает раньше всех.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01939 секунд с 7
ELECTRONIX ©2004-2016