Arduino на Nordic BLE NRF51822

Rogerclark
Пн 26 октября 2015 г., 23:06
В случае, если кто -либо, кроме Рика и меня заинтересован в скандинавском NRF51822 Bluetooth Low Energy Soc

Я заметил, что Redbear Labs имеет ядро ​​Arduino для этого чипа

https: // github.com/redbearlab/nrf51822-arduino

Это включает в себя загрузчик.

Я еще вообще не проверял по этому поводу, но я заинтересован в том, что у меня есть какая -то коммерческая работа, которая использует устройства BLE, но на данный момент он ограничивается использованием предварительно загруженной прошивки на BLE, которые используют в командах или используют интерпретируется базовые на модулях BLE

Однако использование Arduino для компиляции для NRF51822 было бы интересно увидеть.

Изменить, неясно, опирается ли он на конкретное оборудование для платы красного медведя

Я подозреваю, что не совсем

Озан
Ср 28 октября 2015 г. 15:12
Привет, первое сообщение на форуме : oops:

Я пробовал пару вещей на моем дешевые китайские модули NRF51822 После того, как я увидел твой пост. Я могу использовать эти доски с MBed SDK, и они отлично работают, кстати, отлично работают.

RBL Boards имеет еще один Freescale MCU для поддержания интерфейса SWD-USB, и они используют пользовательский загрузчик вместо Nordic OTA Bootloader. Это делает все немного сложным. Сначала я хотел попробовать OTA, поэтому я загрузил загрузчик RedBear в чип, используя JTAG без проблем и подключил светодиод на PIN13. Светодиод быстро мигает, и когда я проверяю приложение Nordic Toolbox на iPhone, выглядит так, как будто оно уже в режиме DFU. Но я не могу подключиться к этому. Документы Nordic четко указывают, какой PIN -код вы должны потянуть, чтобы поместить устройство в режим DFU, если вы используете официальный загрузчик OTA. Попробовал это, не сработал. Вот сложная часть. RBL говорит, что вам следует просто нажать кнопку сброса, и он будет ждать подключения в течение 5 секунд в режиме DFU. Но кнопка сброса не подключена к NRF, она подключена к MCU Freescale. Поэтому я думаю, что они создали свой собственный сценарий сброса/DFU в загрузчике. Кстати, мигающий светодиод выглядит как шаг один раз в 4 секунды, поэтому я думаю, что его сбрасывает себя. Вот почему я не мог с этим подключиться, я думаю.

Затем я попытался загрузить пример Blink в область приложения на NRF, используя JTAG, не касаясь загрузчика RBL и BTStack. Это тоже не сработало, тот же результат. Похоже, он застрял в какой-то петле DFU-Reset. Я попробовал другой источник питания, ничего не изменилось.

Я вроде как новичок во всем этом, и у меня нет идей. Если вы хотите, чтобы я попробовал что -нибудь еще, просто дайте мне знать.

Rogerclark
Пт 30 октября 2015 г., 3:21
Привет, Озан

Извините, ваши сообщения были заблокированы.

Это анти -спам по теме, так как большинство спама приходит таким образом .
В любом случае, теперь все должно быть в порядке. Вручить мне, если это не так. (PS я администратор)

В любом случае. Вернуться к вашему вопросу..

Я думаю, что заставил это работать, но мне нужно дважды проверить.

Я пропустил загрузчик RBL на модуль, используя адаптер Stlink (у меня есть для процессоров STM) и используя OpenOCD

После того, как я прошил загрузчик, я отсканировал использование iPhone, используя приложение под названием LightBlue, и нашел рекламу устройства DFU на BLE. Я думаю, что, поскольку остальная часть вспышки была пустой, загрузка просто осталась в режиме DFU.

Вероятно, есть приложение Adroid, которое делает то же самое, у меня просто есть приложение для iPhone No iPhone, который я использую для тестирования BLE.

В любом случае, я установил Nrftoolbox на устройстве Android и следовал инструкциям от RBL о загрузке OTA.
Мне пришлось подключить устройство Android к своему компьютеру, чтобы скопировать шестнадцатеричный файл, сгенерированный IDE, и после того, как оно было загружено телефоном в модуль, DFU ушел, и я смог увидеть устройство UART из Nrftoolbox - Поскольку я собрал пример UART из RBL (установлен при установке RBL Arduino Core)


Поэтому я подумал, что, возможно, я могу загрузить прямое, используя STLINK (JTAG), а не использовать этот сложный метод DFU.

Поэтому я посмотрел в файл линкера и вижу, что смещение кода. Смотрите строку 5

https: // github.com/redbearlab/nrf51822- ... RF51822.лд
MEMORY { FLASH (rx) : ORIGIN = 0x0001C000, LENGTH = 0x24000 RAM (rwx) : ORIGIN = 0x20002800, LENGTH = 0x1800 }

Rogerclark
Пт 30 октября 2015 г. 5:19
Я только что перечитал RBL Readme на GitHub

Я не уверен, загружается ли чип Freescale через SWD или это что -то, что является внутри, обрабатывается Bootloader. Я просто использую чип Freescale для преобразования входящего сериала в SWD, он сделает загрузчик меньше, но в этом случае я не уверен, что загрузчик вообще понадобится вообще.

Однако использование целого чипа Freescale просто для определения того, хочет ли IDE прошить, устройство кажется излишним.
Глядя на загрузчик, я думаю, что у него есть скандилое мягкое устройство в начале файла.

Как я могу найти много совпадений для этого мягкого устройства в шестнадцатеричном

https: // Разработчик.Mbed.org/users/mbed_o ... устройство.гекс

Но они могут использовать другое мягкое устройство.

В любом случае, с грубым предположением, фактический код загрузчика, вероятно, составляет 15 тыс. 60 тыс. Общего загрузчика (мягкое устройство выглядит так, как будто оно около 45 тыс., Но это образованное предположение)

Я бы сказал, что 15K достаточно для реализации как типов загрузки DFU, так и последовательных загрузки, так как загрузчик STM32, включая USB LIBS, составляет около 8 тысяч, и только DFU.



Так...
Где это оставляет нас.

Что ж, если нам нужно устройство, чтобы имитировать чип Freescale, то лучшее решение Black Magic кажется лучшим решением, так как его можно вспыхнуть на плату STM32 за 5 долларов и обеспечивает как SWD, так и USB для последовательного

Rogerclark
Пт 30 октября 2015 г. 9:37 утра
Просто немного больше информации, вы, возможно, уже знаете

Я подключил USB -серийный адаптер и установил его в качестве COM -порта для загрузки, скомпилирован для загрузки.

Интересно, что они, кажется, используют Avrdude в качестве инструмента программирования

C: \ Program Files (x86) \ arduino \ harpware \ tools \ avr/bin/avrdude -cc: \ users \ me \ appdata \ roaming \ arduino15 \ packages \ redbearlab \ armware \ nrf51822 \ 1.0.0/avrdude_conf/avrdude.conf -v -v -v -v -pcortex -m0 -cavr109 -pcom16 -b115200 -d -uflash: w: c: \ users \ me \ appdata \ local \ temp \ build550714396802139026.TMP/sketch_oct30a.CPP.Гекс: я


Так. Я подозреваю, что процессор Freescale ведет себя так, как будто это загрузчик в Avr Arduino, чтобы обмануть обычный загрузчик Avrdude, чтобы подумать о его загрузке на обычную плату AVR.

Я предполагаю, что это сохранило RBL от необходимости писать и компилировать инструменты загрузки для всех платформ, а также написание кода для загрузчика и чипа Freescale

Озан
Пт 30 октября 2015 г., 18:09
Извините за поздний ответ.
Наконец я могу положить приложения с помощью OTA. Проблема была в моем iPhone, я думаю, но iPad сделал свое дело. У вас есть 5 секунд для подключения и нажатия загрузки, или оно бросает соединение. Он идет в режим OTA в течение 5 секунд, затем начинается приложение, когда я его сброшу. Если в нем нет приложения, петля dfu-reset начинается, как вы упомянули.

Проблема в том, что если я загружаю приложение в область приложения, используя JTAG, оно снова начинает делать петлю DFU-Reset, и я не могу выйти из него. DFU все еще работает, и я могу загружать файлы. Это означает, что я не испортил SoftDevice или загрузчик, я думаю. На форуме RBL они говорят, что это происходит, когда вы корректируете или стираете Freescale Chip.
Нордич говорит; Обратите внимание, что если вы запрограммируете загрузчик DFU на устройстве, необходимо использовать этот загрузчик для установки приложения. Программирование приложения с помощью других инструментов не будет обновлять настройки загрузчика, что означает, что приложение может не запустить. Стереть устройство, если вы больше не хотите использовать загрузчик DFU. Я думаю, что это так, и они каким -то образом преодолевают эту ситуацию, каким -то образом используя чип Freescale.

Теперь хорошие новости. Поскольку они объединили SoftDevice и загрузчик в одном файле. Я загрузил объединенный файл в чип и прочитал только SoftDevice и загрузите его без загрузки. И загрузило только приложение RBLController в регион приложения. Это сработало!!! Становится лучше. Есть пример Nordic для загрузчика OTA на S130. Существует также последовательный пример загрузчика DFU. Я постараюсь заставить его работать и, возможно, объединить серийный загрузчик с S130 SoftDevice.
Из документации SDK скандинавского; Загрузчик DFU способен получить изображение приложения на UART и обновлять текущее запущенное приложение в чипе NRF51822. Если изображение приложения не присутствует в области кода 1 области вспышки NRF51822, загрузчик DFU будет прослушать UART для изображения приложения. Это именно то, что мы хотим. Вот SoftDevice файл кстати. Это должно работать с официальным S130, но есть разные версии. Я не хотел рисковать этим.

Я использую инструменты Nordic с Segger J-Link, кстати. Nrfgo Studio (программист) распознает модель чипа и ее ограничения региона, а затем сравниваются с файлом, который вы хотите загрузить. Есть 3 разных чипа NRF. Если вы используете вариант AA, как я, По данным NRFGO Studio, Ваши значения смещения кажется нормальным для Flash. Я не вижу значений ОЗУ.

Rogerclark
Пт 30 октября 2015 г., 20:42
Привет, Озан.

Re: RBL Bootloader

Да. Я только что посмотрел на шестнадцатеричный файл, который я вспыхнул в модуль, и выглядело так, как будто первые 40К были мягким устройством. Я предполагал, что их загрузчику может понадобиться все функции BLE, поэтому он похож на статически связывать блейб с кодом пользователя.

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

Я прочитал некоторую информацию на веб -сайте Nordic, и в нем говорилось, что размер SoftDevice и, следовательно, смещение приложения изменяются в зависимости от того, какое мягкое устройство вы используете, поэтому настройка линкера больше всего соответствует SoftDevice.

В этом случае RBL Используйте смещение 0x0001C000, так что это может быть ключом к тому, какое мягкое устройство они использовали.

Но когда вам удалось извлечь SoftDevice (только) из данных загрузчика, мы можем использовать это, пока не узнаем, какую SoftDevice они на самом деле использовали.

Возможно, в какой -то момент мы сможем использовать еще одну SoftDevice в случае необходимости, но нужно изменить настройки линкера в файлах Arduino.


Re: Загрузка с использованием JTAG.

У меня есть клон jlink, но мне это не нравится. Я думаю, что это не выводит 3.3В.

Итак, я использую свой адаптер Stlink, и он отлично работает с OpenOcd.

Но, возможно, я должен припаять 3.3V регулятор моего модуля, чтобы я мог попробовать Jlink с помощью программного обеспечения Nordic, а не использовать OpenOCD.

В долгосрочной перспективе, однако, я думаю, что OpenOCD будет лучше, как @Rickkimball, уже написал команды для загрузки в STM32, используя OpenOCD, непосредственно изнутри IDE.


В любом случае.

Если я стерю всю вспышку
Проверкайте размер SoftDevice, который вы опубликовали.
Затем проверните шестнадцатеричный файл Slink Sketch (сделанный Arduino IDE)

Должен ли я увидеть светодиодную вспышку, если я прикреплю одну к Pin P0.00 ?

Rogerclark
Пт 30 октября 2015 г., 22:18
Еще немного прогресса

Я прошил шестигранку S130, который вы опубликовали

Скомпилировал мигающий пин 4 миган

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

Но я разработал его булавку P0.21

Изображение
Игнорируйте материал о бунте, я просто взял изображение из их вики

Таким образом, у RBL есть какое -то странное отображение штифтов в соответствии с их оборудованием.

Это в pin_transform.CPP

Это боль, поэтому я думаю о том, чтобы разжечь их репо и вырвать вещи преобразования булавки, чтобы можно было использовать реальные имена булавок


В любом случае. По крайней мере, GPIO работает, поэтому я хотел бы попытаться получить серийную работу дальше

Однако этот код не компилируется
void setup() { // put your setup code here, to run once: Serial.begin(115200); Serial.println("Hello world"); }

Rogerclark
Пт 30 октября 2015 г., 23:31
В случае любого использования.

Я нашел это на mbed

https: // Разработчик.Mbed.org/forum/team-6 ... PIC/17027/

Похоже, что настройки линкера Arduino определенно устанавливаются для мягкого устройства S130

Однако также похоже, что если мы изменим их (и, возможно, некоторые другие вещи в сборке), мы могли бы использовать S110, который меньше и меньше на 2 тыс

Rogerclark
Солнце 01 ноября 2015 г. 10:18 утра
@ozan

Еще несколько кусочков информации.

Я не уверен, почему, но я нахожу ненадежным просто загрузить файл hex эскиза. Кажется, лучше, если я использую MergeHex (Nordic Tool), чтобы объединить Hex Sketch Hex SoftDevice Hex перед загрузкой - но проблема может быть моим отладчиком Stlink, и ваш jlink может быть лучше.

Как ни странно, иногда, когда я пытаюсь слияния, я получал такую ​​ошибку
ERROR: The hex files cannot be merged since there are conflicts.

Rogerclark
Пт 06 ноября 2015 г., 7:11
Больше прогресса

С помощью RICK мы изменили прошивку Black Magic Drobe (BMP), чтобы она работала с модулями NRF51822, которые я купил на eBay.

Проблема заключалась в том, что модули имеют QFAC NRF51822, который имеет 32-килограммовую оперативную память и возвращает другое DeviceID при запросе BMP, так что оригинальная прошивка не распознавала устройство как NRF51 и вернулась к его обращению как коре. M0
Проблема с этим заключается в том, что невозможно стереть всю вспышку или даже прошить любой код вообще вообще.

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

В любом случае, с обновленной версией BMP все сейчас работает нормально!

Я могу напрямую скомпилировать и загружать изнутри IDE. Все, что вам нужно сделать, это выбрать COM -порт порта BMP GDB. Обратите внимание, что это немного запутанно, так как BMP отображается как 2 серийных устройства. Одним из них является последовательный порт прохождения, который я подключил к последовательному TX и RX на моем модуле, другое последовательное устройство - это то, что нужно выбрать, так как IDE использует его, чтобы сообщить GDB, какой порт с.

Это немного грязно, может быть возможно исправить это, написав плагин для IDE, но я не совсем уверен в (а) как это сделать, и (б) какие плагины способны делать...


Одно незначительное раздражение, которое все еще остается.
Для создания пустого наброска требуется мой умеренно быстрый компьютер I5 Core I5, и IDE, похоже, не кэширует ни один из объектных файлов, поэтому, если вы внесете незначительные изменения и восстановите, это снова займет более 40 секунд.

Глядя на процесс сборки, он создает библиотеку под названием Core.а из основных файлов e.глин. Wstring.C но это, кажется, строит это каждый раз.

Таким образом, в рецептах сборки должно быть что -то, что заставляет это делать это излишне.

Но, по крайней мере, сейчас работает

Rogerclark
Сб 07 ноября 2015 г., 7:50 утра
Некоторая полезная информация об этих общих модулях NRF51822

Похоже, что модули продаются (и, возможно, сделаны Waveshare), и у них есть много информации о своей вики как о радиочастотном модуле, так и о материнской плате

Предметы в магазине Waveshare

http: // www.волна.com/catalogsearch/ ... Q = NRF51822

Вики для материнской платы http: // www.волна.com/wiki/nrf51822_ ... 2_software
Вики для радиочастотного модуля http: // www.волна.com/wiki/core51822


Схема для материнской платы здесь http: // www.волна.com/w/upload/1/1b/ ... эматический.PDF
Схема для модуля радиочастотного модуля здесь http: // www.волна.com/w/upload/5/57/ ... эматический.PDF

Rogerclark
Сб 07 ноября 2015 г. 10:43
Более полезная информация о RBL NRF51822 Arduino Core..

Похоже, скандинавские файлы SDK, которые они используют, из MBED

https: // mbed.рука.com/команды/северные изготовления ... 3d5/источник

Commits смотрите действительно в курсе, на самом деле некоторые были изменены только несколько дней назад, поэтому я думаю, что это должно быть совместимо с версией 9 фактической северной SDK.

Я использовал V9 мягкого устройства S130 и, казалось, работает нормально, с ядром.

Недостатком RBL с использованием файлов MBED является то, что существует только код для S130 SoftDevice, который является более крупным более полным представленным из серии S100.

В идеале людям должна быть предоставлена ​​возможность использовать S110, так как требуется на 2K меньше оперативной памяти, что может иметь большое значение, если у них есть 16K RAM, а не 32K RAM версия NRF51822

Но я ничего не знаю о том, как работает Mbed, и кто поддерживает эти вещи.

Rogerclark
Солнце 8 ноября 2015 г., 7:33
Для тех, кто заинтересован в том, чтобы фактически увидеть сборку Arduino IDE и загрузить эскиз в NRF51822, я снял видео

https: // www.YouTube.com/watch?v = wmcmqn2 ... e = youtu.быть

Мне нужно будет написать полный список инструкций, так как мне пришлось замолчать над установленными вещами, как ограниченная версия рекордера экрана, которую я использую, отрезает через 10 минут, и, честно говоря, я думаю, что 10 минут - это Совершенно долго для одного видео ;-)

Mrburnette
Солнце 8 ноября 2015 г., 14:49
Rogerclark написал:Для тех, кто заинтересован в том, чтобы фактически увидеть сборку Arduino IDE и загрузить эскиз в NRF51822, я снял видео

https: // www.YouTube.com/watch?v = wmcmqn2 ... e = youtu.быть
<...>

Rogerclark
Солнце 8 ноября 2015 г., 8:05 вечера
Луча,

Nordic предоставляет предварительно скомпилированную прошивку, называемую SoftDevice, которая обрабатывает все стеки с оборудованием для оборудования низкого уровня и протоколы Bluetooth, но это не RTO, как используется ESP8266.

Существуют разные программные ролики, в зависимости от того, сколько функциональности вам нужно от Bluetooth. Для NRF51822 существует 3 различных SoftDevices, называемого S110, S120 и S130.
Текущий код от RedBearlab только поддерживает S130, которая является наиболее полной избранной версией, но требует 2 тыс. Больше оперативной памяти, чем S110. (Из того, что я прочитал).

Эти Softdevices не связаны как библиотека, вы прошиваете их как загрузчик, и они работают, когда устройство запускается. Однако они мало что делают в своем коде стартапов, они просто делают небольшое количество предварительной инициализации, а затем вызовут main () в коде пользователей.

Эскиз должен вызвать SoftDevice, чтобы полностью его инициализировать его и начать работу.

После этого Loop () в эскизе, кажется, должен вызвать BLE.waitforevent ();

Можно запустить RTO, я знаю, что на эту платформу переносилось несколько RTOSS.

Однако это не высокопроизводительное устройство. ОЗУ всего 16 тыс. В базовой модели NRF51822, и я думаю, что SoftDevice берет половину этого.

Это также не быстрое устройство, так как обычно он работает на скорости 16 МГц.

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


Если вы хотите, чтобы новый чип играл с этой зимой; Вы могли бы сделать хуже, чем покупать несколько из этих модулей eBay, так как я видел их столь же дешевыми, как около 6 долларов на eBay.

Единственная раздражающая вещь - это физическое расположение булавки на модуле.
Поэтому, если вы готовы выплеснуть еще немного денег, эти материнские платы сделают процесс сборки намного более актуальным.

На самом деле, я серьезно подумываю о разработке материнской платы с STM32F103, чтобы действовать как BMP. Но я не уверен, когда у меня будет время сделать это :-(


Я опубликую свое модифицированное ядро ​​на GitHub, когда я немного вставил его, и если кто -то захочет версию «бородавки и все», я застегиваю ее и наклею на одном из моих виртуальных серверов.

Rogerclark
Солнце 8 ноября 2015 г. 8:31 вечера
КСТАТИ.

Чтобы сделать вещи проще...

Рик и я думали о создании BMP, который работает на Maple Mini Adn.

Но я также хочу, чтобы Maple Mini -код запустился как эскиз, я.e Попросите загрузчика запустить BMP.

Этого не должно быть так сложно, так как нам просто нужно немного переместить векторную таблицу, а также сообщить линкеру, что он находится на уровне 0x8005000, а не 0x800000, тогда вы сможете мигать BMP в Maple Mini Через DFU и все же сможет вернуться к запускам эскизов (хотя вам нужно поместить его в вечный загрузчик, чтобы сделать это)

Rogerclark
Солнце 8 ноября 2015 г., 21:20
Обновлять.

Я только что подтолкнул обновленную до оригинального репо Rebbearlabs к моей учетной записи GitHub.

https: // github.com/rogerclarkmelbourne/nrf51822-arduino

Примечание. Я не трогал их структуру, поэтому вам нужно скачать ZIP, а затем скопировать папку RBL из Arduino-1.6.x/аппаратное обеспечение в папку аппаратного обеспечения

Mrburnette
Пн, 09 ноября 2015 г., 1:53
Rogerclark написал:Луча,

Nordic предоставляет предварительно скомпилированную прошивку, называемую SoftDevice, которая обрабатывает все стеки с оборудованием для оборудования низкого уровня и протоколы Bluetooth, но это не RTO, как используется ESP8266.

Существуют разные программные ролики, в зависимости от того, сколько функциональности вам нужно от Bluetooth. Для NRF51822 существует 3 различных SoftDevices, называемого S110, S120 и S130.
Текущий код от RedBearlab только поддерживает S130, которая является наиболее полной избранной версией, но требует 2 тыс. Больше оперативной памяти, чем S110. (Из того, что я прочитал).
<..>
Если вы хотите, чтобы новый чип играл с этой зимой; Вы могли бы сделать хуже, чем покупать несколько из этих модулей eBay, так как я видел их столь же дешевыми, как около 6 долларов на eBay.
<...>

Rogerclark
Пн, 09 ноября 2015 г., 2:28
Привет, Рэй

Не беспокойся

Я хочу сделать процесс установки намного проще, чем для меня. Поэтому я согласен, что лучше всего удерживаться, пока мы с Риком не сгибались.

Я думаю, что у Рика есть некоторые модули по заказу, и он также заказал материнскую плату, на самом деле он, возможно, заказал материнскую плату, включая радиочастотный модуль.


Вероятно, заставить BMP работать с Maple Mini, а удержание загрузчика - это следующее, что мне нужно сделать.

Но также существует незначительное раздражение в том, что при власти на BMP останавливает процессор.
Поэтому я думаю, что мне нужно изменить BMP, чтобы он не сделал этого.

Увеличение скорости сборки также необходимо разобраться.

В рецептах сборки есть что -то странное, что вызывает это, а также я не могу изменить рецепты сборки, чтобы оценить его с 1.6.6, поскольку он больше не ссылается.

Помимо большого количества включающих путей, которые они используют, я не могу понять, почему я не могу просто переоценить наши рецепты (или, возможно, я могу !)

В любом случае... Смотрите это пространство

Рик Кимбалл
Вт 10 ноября 2015 г. 12:30
Rogerclark написал:Но также существует незначительное раздражение в том, что при власти на BMP останавливает процессор.
Поэтому я думаю, что мне нужно изменить BMP, чтобы он не сделал этого.

Rogerclark
Вт 10 ноября 2015 г. 1:17
КСТАТИ

Моя версия версии RBL теперь здесь

https: // github.com/rogerclarkmelbourne/nrf51822-arduino

Обратите внимание, что это филиал S130

Rogerclark
Ср 11 ноября 2015 г., 21:51
Больше фрагментов информации

Это ссылка на матрицу северной северной продукции для NRF51

http: // www.Nordicsemi.com/eng/content/d ... x_v2.1.PDF

Он показывает номер детали, идентификатор аппаратного обеспечения и размер флэш -памяти.

Я думаю, что нынешний NRF51.c Файл в BMP не совсем правильный, с точки зрения как размера вспышки, так и размера оперативной памяти, поскольку он устанавливает практически все варианты на 256 тыс. Флэш и 16K ОЗУ.

Если у меня будет время, я исправлю это

Rogerclark
Чт 12 ноября 2015 г., 5:39 утра
Странность с линиями SWD, вызывая сброс

Я думал, что опубликую обновленную информацию о своей проблеме с доской, не работающей на PowerUp.

Я нашел эту публикацию на северном сайте

https: // devzone.Nordicsemi.com/вопрос ... Ble-Reset/

Насколько я могу судить, они подразумевают, что линия SDIO также действует как сброс. Это, кажется, подтверждается, рассматривая схему «Материнская плата» волны, которая, по -видимому, имеет кнопку, которая соединяет SDIO к GND, и, насколько я могу судить, глядя на картинку платы, кнопка помечена «Сброс. "

Так..

Странная вещь, почему я единственный, у кого есть эта проблема при использовании зонда черной магии, так как нормальный код инициирования в BMP приводит к низкому платформе SDIO и SCK.c init ()

Возможно, большинство досок рук не заботятся о состоянии SDIO по умолчанию, но кажется, что NRF51 заботится и должен быть высоким

Редактировать.

Я также обнаружил, что линия SWDIO удваивается в качестве линии сброса

https: // devzone.Nordicsemi.com/вопрос ... -NRF51822/

Rogerclark
Сб 14 ноября 2015 г. 20:24
Мониторинг ERASE_MASS должен быть использован

Я точно не уверен, что случилось, чтобы привлечь мою плату NRF51 в эту конфигурацию, но мне в итоге мне нужно было вручную использовать монитор ras_mass, прежде чем я смогу снова работать.

Я экспериментировал с различными вещами.. 3 различных платы BMP, (плата GD32, красная таблетка STM32F103C8 и Maple Mini STM32F103CB)
И я также попробовал прошивать предварительно скомпилированную прошивку, чтобы превратить NRF51 в пронифефер BLE Packet.

В любом случае, загрузки из IDE, казалось, повесились, а код не будет загружен и запускается.
Я попробовал вручную загрузить код и вручную заменить S130 SoftDevice, но безрезультатно.

Я попробовал вспыхивать Hex RBL Bootloader Hex, который, как я сразу же знаю, должен появиться в виде устройства DFU на BLE, и это тоже не сработало.

Поэтому я использовал Monitor ESRASE_MASS, чтобы очистить весь MCU, перегрузить загрузчик RBL, и сразу же устройство DFU появилось на BLE.

Итак, я перепромировал S130 SoftDevice и снова загрузил мигание, и все было правильно с миром.

Итак, мораль истории....

Если что -то перестанет работать и не имеет никакого смысла... Стереть все устройство и восстановить S130 SoftDevice.

Rogerclark
Солнце 22 ноября 2015 г. 7:06 утра
Мне наконец -то удалось сделать первый пост в блоге о том, как разработать для NRF51822 с использованием Arduino IDE и Maple Mini в качестве программиста SWD (зонд черно -магия)

http: // www.Rogerclark.net/arduino-one ... Ontroller/

Я также обновил свой репо github для этого сегодня, добавив новую филиал S130_Corelib, которая значительно ускоряет время для строительства, а также решает проблему с загрузкой на Linux и OSX

Рик Кимбалл
Солнце 22 ноября 2015 г., 17:16
Я попробовал ваш репо. У меня есть одна из тех досок BLE400 (от WaveShare). У него немного разные сопоставления PIN -контактов по сравнению с материалами RedBear Labs. Тем не менее, то, как Labs Redbear Labs заставила сопоставление PIN -код заставляет вас изменить файлы Core для нового варианта.

NRF51822-Aduino/Arduino-1.6.x/armware/rbl/rbl_nrf51822/cores/rbl_nrf51822/pin_transform.CPP

Похоже, вы должны быть в состоянии создать картирование булавки, не касаясь ядра .Файлы CPP.

-рик

Rogerclark
Солнце 22 ноября 2015 г., 19:44
Привет, Рик

Я не изменил картирование булавки, потому что я увлекался доской волны, в основном был таким же, как и доска RBL.

Но моя «материнская плата» еще не прибыла, поэтому трудно разобраться, пока она не сделает.

Из того, что я помню, булавки RBL для сериала - это не то же самое, что скандинавское использование в их оценке, но были такими же, как Waveshare. RBL использовал P9 и P11, но я думаю, что скандизм использует 0 и 1 или 1 и 2

Мне не особенно нравится, как RBL закодировал картирование PIN -кода в операторе Switch, и, как вы говорите, его нужно перенести в вариант.

Я упустил из виду это, когда перенесла весь код ядра и варианта в Corelib, но не имеет большого значения, чтобы удалить вариант кода обратно, если есть.


Я изначально не собирался использовать корелиб.A, как я надеялся решить проблему на платформе.TXT, который не кэшировал объекты, но хотя я нашел несколько ошибок в платформе.текст; Установка их не разрешила, что неспособность кеша.

Кстати.
Мне также удалось заставить свой JLink работать с этим, но мне нужно будет написать сценарий загрузки, так как JLink CLI нуждается в внешнем командном файле, так как его нельзя считать, используя несколько аргументов, таких как Gab Can :-(

darth_llamah
Чт 24 марта 2016 г., 10:07
Мои доски NRF51822 наконец прибыли, оснащенные чипсами QFAAH0 (3 -й пересмотр IC, 16 КБ ОЗУ и 256 КБ вспышка).
1. BMP (использует Baite Maple Mini) отлично работает, без проблем с миганием
2. Arduino 1.6.5 не имеет проблем с компиляцией и загрузкой (выбранный вариант QFAA), без ошибок или предупреждений.
Но единственное, что работает,- это видно устройство RedBearlabs Bootloader-DFU.
Все примеры эскизов не работают, модуль не рекламирует, и нет никакого общения над серийным.
Я искал Nordicsemi.COM и Матрица совместимости говорит, что мой IC совместим только с S110 SoftDevice, насколько сложным будет использование его вместо S130?

Rogerclark
Чт 24 марта 2016 г., 10:24
Какая у тебя доска

и...


Вы прошивали мягкое устройство S130 на плату?

darth_llamah
Чт 24 марта 2016 г., 10:37
Rogerclark написал:Какая у тебя доска

Rogerclark
Чт 24 марта 2016 г., 8:55 вечера
Для меня сработал простой пример чата, и пример сканера сработал.

Странно, я думаю, что Blinky будет работать, даже если не хватает мягкого устройства S130. (Хотя я мог ошибаться, так как прошло много времени с тех пор, как я помню, что это происходило)

Я видел, как возникают страшные вещи, если есть вина с кристаллом 32 кГц (что маловероятно в вашем случае)
Кто -то дал мне около 32 кГц кристаллов для использования с другим модулем MRF51822, и Blinky работал, но BLE был очень хлопьев и сразу же отключался.
Во всяком случае, когда я посмотрел внимательно, кристаллы были 38 ГГц, а не 32.768 кГц

У меня также есть аналогичные проблемы при использовании кристалла 32 кГц без каких -либо конденсаторов 12pf.

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


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

darth_llamah
Пт 25 марта 2016 г., 9:00 утра
Rogerclark написал:Для меня сработал простой пример чата, и пример сканера сработал.

Странно, я думаю, что Blinky будет работать, даже если не хватает мягкого устройства S130. (Хотя я мог ошибаться, так как прошло много времени с тех пор, как я помню, что это происходило)

Я видел, как возникают страшные вещи, если есть вина с кристаллом 32 кГц (что маловероятно в вашем случае)
Кто -то дал мне около 32 кГц кристаллов для использования с другим модулем MRF51822, и Blinky работал, но BLE был очень хлопьев и сразу же отключался.
Во всяком случае, когда я посмотрел внимательно, кристаллы были 38 ГГц, а не 32.768 кГц

У меня также есть аналогичные проблемы при использовании кристалла 32 кГц без каких -либо конденсаторов 12pf.

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

Rogerclark
Пт 25 марта 2016 г., 9:44
Возможно, чтобы вспыхивать или стирание только для флэш -области «приложение» с использованием BMP? Загрузка BMP только мигает бит приложения

Я думаю, что mbed сочетает в себе SoftDevice с кодом, что делает его намного больше.
(Nordic также делайте это в своих примерах, я думаю, что они используют какой -то код, называемый MergeHex (или что -то в этом роде))

Но нет необходимости каждый раз заменять все это.

Интересно, это версия SoftDevice. Я знаю, что Nordic выпустил новые версии S130 в месяц два назад.

Я прикрепил SoftDevice, которую я использовал.

Re: блог

Нет. У кого -то еще есть проблемы с загрузкой. Не уверен, что это такое, BMP, кажется, видит. Возможно, выпуск идентификатора устройства (на самом деле не знаю на данный момент)

darth_llamah
Пт 25 марта 2016 г. 13:01
Rogerclark написал:Загрузка BMP только мигает бит приложения

Rogerclark
Пт 25 марта 2016 г., 21:36
Стереть массу стирает все устройство

Но сценарий загрузки на платформе.TXT не использует массу стирания, я думаю, что он использует файл загрузки (извините, я не могу вспомнить точный синтаксис)



Re: RBL

Они просто загружают приложение через процессор CO или через DFU BLE (их загрузчик включает в себя BLE DFU, однако мне было больно загружать, так как у меня было передачу на устройство Android, и они используют приложение Nordic для загрузки через DFU, его намного проще через BMP или Jlink)

Просто математик
Пн 13 февраля 2017 г. 15:00
Я прочитал здесь FAQ и некоторые темы здесь, но еще ничего не нашел, связанный с этой проблемой:
Я успешно (я думаю) превратил Maple Mini в BMP.
Просто застрял на GDB/ SoftDevice:

COM -порты распознаются в Windows Device Manager как:
Com3 (Silicon Labs CP210X USB -мост UART)
Com4 (сервер Black Magic GDB)
Com5 (порт Black Magic Uart)

GDB распознает только com3. Для com4 он возвращается: ” \.\ com4: нет такого файла или каталога”. То же самое с com5.

Попытка com3 (вне интереса) возврат:”
Удаленная отладка с использованием \\.\ com3
Игнорирование ошибки пакета, продолжая ..
Предупреждение: непризнанный предмет “тайм -аут” в “QSupp
Игнорирование ошибки пакета, продолжая ..
Пульт дистанционного обращения неожиданно ответил ‘vmustreplyemp
“монитор” Команда не поддерживается этой целью
Дон’не знаю, как прикрепить. Пытаться “Помогите цели”.


Прежде чем попробовать шаг SoftDevice (в руководстве Роджера в его блоге), я попытался загрузить мигающий эскиз из Arduino Ide. Мне удалось заставить консоли вернуться:
“Целевое напряжение не реализовано!
Доступные цели:
Нет. ATT Driver
1 Nordic NRF51 0x0084”

Очевидно, это не загрузило вообще, но это так далеко, насколько я получил.
С тех пор всякий раз, когда я пытаюсь загрузить эскиз, Arduino IDE просто остается на полпути к загрузке, показывая ошибки в консоли.

Я установил все на Windows 8.1, но мне очень удобно в Linux/ Shell, если он будет легче/ с большей вероятностью будет работать.

Я думаю, что моя проводка верна:
NRF51 врезался в материнскую плату.
Материнская плата подключена к Maple Mini (попытался переключить провода SWD Swio несколько раз на всякий случай, безрезультатно).
USB с ПК до материнской платы для питания.
USB с ПК до Maple Mini.
У меня нет UART, связанного с Mini (хотя я думаю, что я пытался, безрезультатно).

Моя версия QF - ACA1.

Надеюсь, мой NRF51 не мертв.

Спасибо,

Ави

Rogerclark
Сб 18 февраля 2017 г. 3:29
NRF51 не мертв, если GDB читает

Nordic NRF51 0x0084


По мере того, как он получает идентификатор чипа от NRF51 и проверяет его на списке, чтобы отобразить это сообщение Удаленная отладка с использованием \\.\ com3
Игнорирование ошибки пакета, продолжая ..
это странно

Я не видел этого раньше

Вы могли бы попробовать связаться с Гаретом (который пишет BMP) через Gitter или через проблему GitHub (я думаю, что Gitter - лучшее место для начала как его менее формальное, чем разместить проблему для этого вопроса)

Просто математик
Пн 20 февраля 2017 г. 9:06 вечера
Большое спасибо за предложение Гарета. Я спрошу и надеюсь сообщить здесь, когда/если это будет решено.

Я должен отметить, что GDB никогда не читал:

Nordic NRF51 0x0084

Это появилось только один раз, на выходе терминала Arduino IDE, когда я попробовал загрузить эскиз, прежде чем я правильно установил GDB (я думаю, что это
был в моей системе до Android Studio/Eclipse или в одном из множества установленных люксов...). Arduino IDE, вероятно, в любом случае использует GDB (?).

Может быть, что
Удаленная отладка с использованием \\.\ com3
Игнорирование ошибки пакета, продолжая ..
Появляется, потому что COM3 не является сервером GDB (COM4 IS) ?


Думал о начале процедуры снова с нуля в качестве последней курорта.

Приветствия за поддержку как всегда.

Rogerclark
Пн 20 февраля 2017 г. 9:11 вечера
Arduino IDE использует GDB для загрузки.
Я использую команду, написанную моим Риком Кимбаллом (на этом сайте) для загрузки STM32 с помощью GDB.

Это просто команды подключения и сканирования и Uoload, перевернутые в одну командную строку.

Вы не должны видеть ошибки, когда вы запускаете целевой расширенный пульт дистанционного управления.
Я также попробовал бы другой порт USB или более короткий кабель в этом случае

AG123
Пн 27 февраля 2017 г., 17:59
Привет, Роджер

Я загипнотизировался вашим видео на YouTube на NRF51822 :ржу не могу:
https: // www.YouTube.com/watch?v = wmcmqn2i_xo

& взял приманку & заказал это
http: // www.eBay.com/itm/201652571766
Конкуренция за создание досок NRF51822, казалось, нагревалась
Если поиск сделан для NRF51822 на eBay, низкие цены фактически достигли USD3.50 EA, я выбрал вышеизложенное, так как у него больше разбитых булавок GPIO
http: // www.eBay.com/sch/i.HTML?_from = r4 ... 22&_sop = 15

Некоторые из них, по-видимому, из Co Wireless-Tag, самое главное, что спецификации платы довольно хорошо опубликованы на странице
http: // www.Беспроводная тег.com/index.PHP/P ... IS/26.HTML
http: // www.Беспроводная тег.com/index.PHP/P ... IS/25.HTML

Я предполагаю, что нам скоро нужно добавить это в качестве «доски» на своем собственном «форуме», не говоря уже о том, что это не STM32, это Cortex-M & В значительной степени открытая платформа :ржу не могу:
Казалось, что ST пытается сделать что -то похожее с STM32, надеюсь, это скоро достигнет массы MKT
мигай теперь уходит бле : D

AG123
Пн 27 февраля 2017 г. 18:23
ST борется с Bluenrg-1
http: // www.ул.com/en/беспроводная коннектива ... tid = sc1898
http: // www.ул.com/content/st_com/en/pro ... NRG-1.HTML

Надеюсь, мы скоро сможем получить эти доски на массовом рынке
На данный момент, кажется, у ST есть эта доска Dev для Bluenrg по довольно здоровенной цену, надеясь, что «ядро» & Общие версии Dev Board скоро выйдут :ржу не могу:
http: // www.ул.com/content/st_com/en/pro ... 007V1.HTML
OOPS/OH нашел другой, доска «нуклео» с Bluenrg
http: // www.ул.com/content/st_com/en/pro ... B04A1.HTML

казалось, что бледно готовит шторм, так как BLE подключается к любым телефонам/устройствам Android > 4.3, последние iPhone & окна > 8

Rogerclark
Пн 27 февраля 2017 г. 20:12
Ага.

Эти доски сделаны беспроводной биржей.

У меня есть некоторые из более крупных, но они были дороже, когда я купил их в прошлом году.

Единственное, чего им не хватает, - это кристаллический генератор 32 кГц, что означает, что они не очень хорошо сохраняют время во время сна.

Первоначально репо, я использовал / модифицирован из RBL, не работал с ними, потому что он нуждался в кристалле 32 кГц, но мой новый репо (также взломанная версия RBL) теперь поддерживает их.

Но теперь я рекомендую, чтобы люди использовали репо Сандип как гораздо лучше, чем RBL One.

Я думаю, что также увеличит использование BLE, так это веб -API, который Google добавил в Chrome в прошлом месяце.
На Android он нуждается в Marshmallow (Android 6), и ни у одного из моих устройств в настоящее время нет этого, но со временем у большинства пользователей это будет и сможет просто писать HTML и JavaScript, чтобы взаимодействовать со своими устройствами BLE.

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

эн.глин. Я просто подключаю свой телефон, каталог с файлами проекта в нем и вводите «Cordova Run Android», и через несколько секунд изменения, которые я внес в приложение, и приложение работает на моем телефоне Android.


В настоящее время я проектирую новую плату Bluetooth, которая будет использовать новый Nordic Chip, NRF52840, который будет иметь аналогичный форм -фактор с синей таблеткой.
NRF52840 составляет 64 МГц Cortex M4F, имеет 256K RAM и 1M Flash, и поддерживает BLE 5, включая режимы передачи на большие расстояния / высокая мощность.

К сожалению, NRF52840 не будет доступен в коммерческих количествах до 4 квартала в этом году. Но это всего лишь 6 месяцев, и у ИИ много дизайна и прототипов до этого ;-)

AG123
Пт, 03 марта 2017 г., 19:25
Я на самом деле довольно недавно, новичок / новичок в Bluetooth & его технологии, прямо в ближайшем недавнем, сделали «глубокое погружение» в Bluetooth (& BLE) и смешивается очень сложным стеком протоколов (Bluetooth, который есть), как выясняется в стеке слоя каналов низкого уровня, он определяет довольно упрощенные состояния слоя ссылки
https: // zpcat.блог.SG/2013/10/How-B ... слой.HTML
- сканирование
- поддерживать
- реклама
- инициируя
- связь

Полные спецификации Bluetooth:
https: // www.Bluetooth.com/спецификация ... замораживание
https: // www.Bluetooth.орг/докман/ручка ... _id = 286439
--------------
Однако правда в том, что на этом слое BLE Link есть много других слоев стека протоколов
эн.глин. L2CAP (это управляет «соединениями» и мультиплексированием с различными конечными точками E.глин. ATT/GATT, Service Discovery и т. Д
Разрыв, обнаружение услуг, безопасность (e.глин. Переговоры по паринге / автоентированию и шифрованию), сами ATT, GATT (услуги) и т. Д

Хотя я не ушел дальше, я предполагаю, что эти MCU (и поставщик распределенных протоколов) с такой крайней ограниченной памятью ОЗУ E E.глин. 8K, 16K, 20K, скорее всего, только обходится только с единственным основным слоем BLE 'Link' (I.эн. приведенные выше состояния) и оставить в стороне все другие слои стека протоколов E.глин. L2CAP, GAP и т. Д

Это может буквально означать, что для множества устройств BLE, реализованных на таких низких ресурсных устройствах, возможно, обходится практически без безопасности (E.глин. Без спаривания, нет шифрования (или шифрования уместности) и т. Д. Я бы подумал, что некоторые реальные разработчики устройств просто «жестко кодируют» PIN -код : o ржу не могу

Беннебой
Пт, 03 марта 2017 г., 19:58
Расходы на безопасность.

Rogerclark
Пт, 03 марта 2017 г., 8:44 вечера
Я полностью согласен с Беннибой. Расходы на безопасность... Но многие компании не заботятся о безопасности. Они просто продают дешевый продукт, делают быстрый доллар, а затем исчезают.
Мне пришлось отказаться от работы для нескольких компаний, так как они не относились к безопасности серьезно, и это вернулось, чтобы укусить меня, поскольку я независимый подрядчик, и такие компании, как правило, виноваты всем остальным в своих проблемах.

Я бы не стал беспокоиться о внутренних группах Bluetooth. Он просто работает и может быть безопасным, если вы правильно используете API.

Версии NRF51822QFAA и QFAB имеют только 16 тыс. ОЗУ, но все еще относительно безопасны с точки зрения компаний

Северная «SoftDevice», которая обрабатывает BLE, занимает около 8 тысяч оперативной памяти, а около 128 тыс. Пространство кода флэш -кода.

К счастью, Flash теперь дешевая, поэтому использование QFAA Varient, который имеет 256K Flash, по -прежнему оставляет множество места для применения, хотя имея только 8 тыс. Оставшиеся оперативные операции для кода приложения, может быть реструктивным.

Версия QFAC имеет 32K RAM, а более новое поколение NRF52832 имеет множество оперативных операций (я думаю, что это может быть 256K)

В настоящее время я использую NRF51 в устаревших дизайнах, но перееду к NRF52 для новых дизайнов, особенно в новом NRF52840, который соответствует BLA 5

AG123
Сб 04 марта 2017 г. 8:32
На самом деле с нашими таможными разработками «Arduino» можно создать рудиментарную «внеполосную безопасность E.глин. Чтобы загрузить общий пароль в плату, который можно изменить каждую загрузку. Но я полагаю, что для массовых продуктов очень трудно достичь, кроме как повысить расходы :ржу не могу:

Я думаю, что некоторые из разработчиков прибегают к соединению «когда никто больше не находится вокруг», которая, по крайней мере, обеспечит какую -то безопасность как компромисс, иногда известный как «просто пары», но я подумал, что это может добавить необходимость в Кнопка сброса «жесткого» :ржу не могу:

STM32 Powered Multieter

SMD, Reflow, новичок