Программирование ARM Руководство пользователя nRF51 Development Kit Fri, March 29 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Руководство пользователя nRF51 Development Kit Печать
Добавил(а) microsin   

nRF51 Development Kit (далее для краткости DK) в комбинации с nRF5 SDK дает полное решение для разработки программного обеспечения и аппаратуры на основе чипов SoC серии nRF51. nRF51 DK это плата разработчика, на которой установлен чип nRF51422 вместе с отладчиком J-Link. Чип nRF51422 представляет собой систему на кристалле (System on Chip, SoC), идеально подходящую для построения приложений ANT™/ANT+, Bluetooth® low energy (BLE), и проприетарных приложений беспроводной связи на 2.4 ГГц с ультранизким потреблением энергии. Если Вы не используете протокол ANT, то можете использовать более дешевый чип nRF51822 и разрабатывать для него код на чипе nRF51422 платы nRF51 DK без каких-либо изменений в своем коде (комментарии по совместимости чипов nRF51822 и nRF51422 см. во врезке "Миграция с nRF51822 на nRF51422" статьи [2]).

Примечание: расшифровку новых терминов и аббревиатур см. в Словарике [9].

Плата nRF51 DK обладает следующими ключевыми возможностями:

• Работает на чипе nRF51422, поддерживающем разработку устройств для протоколов ANT/ANT+ и BLE с низким потреблением энергии.
• Проприетарный радиорежим 2.4 ГГц, совместимый с чипами серии nRF24L.
• Взаимодействие с пользователем на основе кнопок и светодиодов (LED).
• Интерфейс ввода/вывода, совместимый по размещению коннекторов и их цоколевке с шилдами Arduino.
• Лицензионный отладчик SEGGER J-Link, позволяющий программировать память nRF51422 и отлаживать его код. Кроме того, можно использовать этот отладчик для программирования и отладки внешних плат через интерфейс SWD.
• Порт microUSB, который совмещает в себе 3 функции:
   - USB-порт отладчика SEGGER J-Link.
   - Виртуальный USB COM порт, через который можно осуществить обмен данными между хостом разработки PC и UART микроконтроллера nRF51422.
   - "Флешка", USB-устройство Mass Storage Device (MSD), через которое можно программировать FLASH-память чипа nRF51422.
• Совместимость с mbed [3].

[Инструменты]

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

Таблица 1. Инструменты и утилиты от Nordic Semiconductor.

Nordic Tools Описание
S110 SoftDevice Стек протоколов Bluetooth low energy (BLE) для периферийных устройств с возможностью широковещания (Peripheral/Broadcaster). Для дополнительной информации см. спецификацию S110 nRF51822 SoftDevice Specification и документацию nRF5 SDK.
S120 SoftDevice Стек протоколов BLE для организации устройств Central с возможностью до 8 подключений к периферийным устройствам одновременно. Для дополнительной информации см. спецификацию Для дополнительной информации см. спецификацию S110 nRF51822 SoftDevice и документацию nRF5 SDK.
S130 SoftDevice Стек протоколов Bluetooth Smart concurrent multi-link, поддерживающий одновременные соединения ролей Central/Peripheral/Broadcaster/Observer. Для дополнительной информации см. спецификацию S130 nRF51822 SoftDevice и документацию nRF5 SDK.
S210 SoftDevice Стек протокола ANT. Для дополнительной информации см. спецификацию S210 nRF51422 SoftDevice и документацию nRF5 SDK.
S310 SoftDevice Стек контроллера периферийного устройства ANT и BLE, а также multiprotocol хоста. Для дополнительной информации см. спецификацию S310 nRF51422 SoftDevice и документацию nRF5 SDK.
nRF5 SDK nRF5 Software Development Kit (SDK) предоставляет исходный код примеров и библиотек, формирующих базу для разработки Ваших приложений.
nRF5x Command Line Tools Пакет утилит, содержащий JLinkARM, JLink CDC, nrfjprog и mergehex [12]. Программа nrfjprog это утилита командной строки для программирования чипов серий nRF5x. Это также полезно в настройке производства изделий.
nRF5x-pynrfjprog Утилита с простым интерфейсом Python для nrfjprog DLL. Полезна для написания скриптов, особенно для автоматизированных тестов.
nRFgo Studio Инструментарий для программирования и конфигурирования устройств, поддерживает программирование nRF5x SoftDevice, приложений и загрузчиков.
nRF Connect for desktop Приложение рабочей станции Windows PC, предназначенное для тестирования соединений с устройствами BLE. nRF Connect позволяет настроить локальное устройство, соединить его с устройствами, выдающими advertising, распознать их службы, характеристики, параметры соединения, установить с ними связь. Также можно поменять настройки сервера для Вашего локального устройства. nRF Connect также предоставляет подробный лог, помогающий разобраться в проблемах работы устройств BLE.
nRF Connect for mobile Приложение для мобильных устройств Android, позволяющее сканировать сеть BLE, обнаружить в ней устройства и организовать с ними соединение. nRF Connect for mobile поддерживает несколько адаптированных профилей Bluetooth SIG вместе с профилем обновления firmware по воздуху (Device Firmware Update, DFU) от компании Nordic Semiconductor.

Таблица 2. Инструменты и утилиты от других компаний.

Инструмент Описание
Keil MDK-ARM Development Kit (uVision) Среда разработки (IDE), предназначенная для написания firmware с использованием nRF5 SDK и файлов примеров.
IAR Embedded Workbench for ARM Другая IDE, от компании IAR.
SEGGER J-Link Software Программное обеспечение для отладчика J-Link.
ANTware II Приложение, используемое для управления беспроводными устройствами ANT. Отличный инструмент для начинающих разработчиков ANT для обзора возможностей ANT в качестве беспроводного решения обмена данными с низким энергопотреблением. Также подходит для продвинутых пользователей, упрощая настройку и мониторинг сложных сетей ANT. ANTWare II улучшена по сравнению с предыдущими версиями - переработан интерфейс, усовершенствованы старые функции и добавлены новые.

[Документация]

Ниже приведен список документации по серии nRF51 и чипам nRF51x22. Дополнительную документацию в виде апноутов и тематических статей см. в Infocenter компании Nordic Semiconductor.

Таблица 3. Документация.

Документ Описание
Compatibility Matrix Матрица совместимости устройств серий nRF51 [2] показывает совместимость между ревизиями микросхем, пакетами SDK, подходящие для них SoftDevice с соответствующими спецификациями и киты разработчика (development kits, DK).
nRF51 Series Reference Manual Функциональное описание модулей и периферийных устройств, поддерживаемых чипами серии nRF51.
nRF51822 Product Specification Содержит все спецификации по определенному чипу.
nRF51422 Product Specification
S110 nRF51822 SoftDevice Specification Содержит информацию по функциям и производительности двоичного кода SoftDevice.
S120 nRF51822 SoftDevice Specification
S130 nRF51822 SoftDevice Specification
S210 nRF51422 SoftDevice Specification
S310 nRF51422 SoftDevice Specification
nRF5 SDK Documentation Содержит руководства пользователя, описания, ссылочные материалы, помогающие понять протоколы, примеры, библиотеки и другие компоненты nRF5 SDK.
nRF51x22 Product Anomaly Notification Список ошибок (аномалий) для чипа.
ANT Message Protocol and Usage Подробно описывается протокол ANT, содержит фундаментальные знания, необходимые для успешной разработки приложений ANT.
nRF51 Development Kit Hardware Files Исходный код firmware, документация, схемы, разводка печатной платы. Также включает всю информацию, необходимую для сборки nRF51 DR: файлы Altium Designer (схема и разводка), файлы для передачи в производство (Gerber, Drill, Pick and Place, Assembly), список компонентов (BOM).

[Замечания по версиям релизов nRF51 DK]

Дата Версия DK Описание
Февраль 2016 1.2.0 Добавлен I/O expander для кнопок и светодиодов, чтобы избежать конфликтов с платами, которые следуют стандарту Arduino. Это изменение действительно для DK версии 1.2.0 и более новых версий.
Ноябрь 2014 1.1.0 Заменен коннектор USB.
Октябрь 2014 1.0.0 Первый релиз.

[2 Комплект поставки]

В дополнение к самой плате разработчика, nRF51 DK поставляется с исходным кодом примеров firmware, документацией, принципиальной схемой, файлами разводки. Все это можно бесплатно скачать с сайта www.nordicsemi.com (см. также [15]).

nRF51 DK content fig01

Рис. 1. Комплект поставки nRF51 DK.

[3 Быстрый старт]

Подключите свою плату nRF51 DK к компьютеру:

1. Соедините плату nRF51 DK с компьютером кабелем microUSB. Микропереключатель SW6 Power переведите в положение ON.

2. На плате загорится LD5, показывающий наличие питания.

3. Через несколько секунд компьютер распознает nRF51 DK как стандартную флешку USB.

nRF51 DK USB drive fig02

Рис. 2. Проводник с содержимым флешки JLINK.

Установите программное обеспечение. Инструкции по установке инструментария Nordic можно получить по ссылкам [5, 6]. То что реально понадобится, зависит от Вашей операционной системы и используемой среды разработки (IDE).

[4 Начало разработки]

После того, как были установлены nRF DK, nRF51 SDK и IDE, настало время попробовать что-нибудь разработать. Обычно разработку начинают с того, что запустят на плате разработчика какой-нибудь пример кода - чаще всего мигание светодиодом (это традиционный "Hello World" для мира микроконтроллеров). Успешный запуск простейшего примера показывает, что среда разработки установлена правильно, отладчик и плата разработчика функционируют нормально. Для дополнительной информации ознакомьтесь со следующими ресурсами.

Чтобы быстро проверить работу примера кода без установки полного инструментария для компиляции и сборки, можно просто запрограммировать двоичный код приложения в память чипа платы nRF51 DK.

В zip-архиве SDK [15] предоставлены готовые, скомпилированные HEX-файлы предоставленных примеров. Примеры, которые требуют SoftDevice, этот SoftDevice добавлен в HEX-файл (т. е. в HEX-файле сразу находится как SoftDevice, так и код приложения примера).

Имейте в виду, что в SDK не включены скомпилированные примеры ANT+. Чтобы запустить примеры ANT+ необходимо предварительно установить один из тулчейнов (Keil, IAR или ARM GCC). Чтобы запрограммировать SoftDevice и приложение, следуйте инструкциям по запуску примеров [10, 11].

Для запуска скомпилированного примера выполните следующие шаги:

1. Загрузите последний файл архива репозитория nRF5_SDK_x.x.x_xxxxxxx.zip (например, nRF5_SDK_v13.0.0_1a2b3c4.zip) с сайта developer.nordicsemi.com.
2. Распакуйте этот zip-архив в папку, откуда Вы хотите работать с SDK.
3. Подключите плату разработчика (DK) к компьютеру кабелем USB. Компьютер распознает DK как стандартную флешку USB.
4. В директории SDK найдите интересующий Вас пример, который хотите протестировать, и откройте подкаталог hex этого примера. Например, для приложения Blinky перейдите в папку examples\peripheral\blinky\hex.
5. Выберите тот HEX-файл, который соответствует Вашей плате, и скопируйте его на привод флешки USB, которая обнаружилась на шаге 3. Имена HEX-файлов содержат название платы DK и SoftDevice, для которых они предназначены. Например, файл blinky_pca10028_s130.hex предназначен для nRF51 DK (PCA10028) и SoftDevice S130.

Для проверки функционала примера обратитесь к его документации. В зависимости от того, какое было приложение запрограммировано, может быть достаточно наблюдать мигание светодиодов LED на плате (для примера Blinky). Другие примеры потребуют других действий - подключение платы DK через UART, использование nRF Connect, программы на телефоне, и т. д.

Чтобы начать разработку своего собственного приложения, необходимо сначала убедиться, что используемый для этого инструментарий правильно установлен и работает. Чтобы выполнить такую проверку, скомпилируйте, запрограммируйте и запустите самый простой пример, который не требует использования SoftDevice, например Blinky Example.

Убедитесь, что установлены все необходимые инструменты, и плата разработчика nRF51 DK подключена к компьютеру. Для других плат разработчика (для nRF52840 или nRF52832) обратитесь к соответствующей документации.

[Стирание памяти чипа на плате]

Перед тем, как запрограммировать пример, нужно стереть память чипа nRF51422, установленного на nRF51 DK.

Если в память чипа не записан SoftDevice, то просто откройте Keil и выберите Flash -> Erase. Если же SoftDevice был установлен, или Вы не уверены в этом, то используйте nRFgo Studio, чтобы убедиться, что плата полностью очищена. Выберите свое устройство в панели Device Manager, затем кликните на кнопку Erase All. Если Вы предпочитаете командную строку, то используйте nrfjprog (эта утилита входит как часть в nRF5x Command Line Tools [12]), либо JLink.exe [13].

Чтобы запустить пример, выполните следующие шаги:

1. Перейдите в папку SDK, которая содержит интересующий Вас проект примера приложения.

(a) Откройте папку с файлами SDK, куда был распакован zip-архив репозитория SDK (см. выше врезку "Запуск скомпилированных примеров").
(b) Выберите пример, который хотите запустить, например ...\examples\peripheral\blinky.
(c) Выберите каталог платы, которую хотите использовать, например ...\pca10028 (для nRF51 DK).
(d) Если Вы хотите запустить пример, который требует SoftDevice, то выберите SoftDevice. Иначе выберите blank. Так, для запуска Blinky Example без SoftDevice выберите ...\blank.
(e) Выберите тулчейн, который хотите использовать. Последующие шаги подразумевают использование Keil 5, для этого выберите ...\arm5_no_packs.

Keil Blinky Example project

2. Выполните двойной клик на файле *.uvprojx, чтобы открыть проект в IDE Keil.

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

Keil build project

4. Загрузите скомпилированный код в память FLASH чипа nRF51 DK (или другого используемого DK). Если Keil предложит обновить версию firmware отладчика до последней версии, выберите Yes.

Keil download code

Если к компьютеру подключено больше одной платы DK, то появится сообщение об ошибке, когда Вы попытаетесь загрузить код во FLASH. В этом случае сконфигурируйте проект Keil для той платы DK, которую нужно использовать:

(a) Выберите Project -> Options для Target 'XXX'.
(b) Перейдите на закладку Debug.
(c) Кликните на кнопку Settings рядом с опцией "J-LINK / J-TRACE Cortex".
(d) Выберите плату по серийному номеру в списке J-Link / J-Trace Adapter.
(e) Подтвердите изменение настроек кликом на OK, и снова загрузите код (шаг 4).

5. Проверьте работу примера, он должен работать так, как описано в его документации (описание примера Blinky: Blinky Example Testing site:infocenter.nordicsemi.com).

Перед тем, как Вы сможете запустить более продвинутые примеры, которые используют Bluetooth или ANT, необходимо запрограммировать SoftDevice в память чипа платы.

После того, как SoftDevice запрограммирован, выполните шаги, описанные в предыдущей врезке "Компилирование и запуск первого примера", но без стирания памяти чипа. Например, наличия SoftDevice требуют примеры приложения датчика сердцебиения (Heart Rate Application), ANT Broadcast или BLE Heart Rate Collector.

[Программирование SoftDevice]

Бинарный код SoftDevice находится в папке components\softdevice\имяSD\hex SDK, здесь имяSD это имя SoftDevice (s130, s132, s212 или s332. Например, для nRF51 DK скорее всего понадобится s130, каталог для HEX-файла будет components\softdevice\s130\hex). Также SoftDevice можно напрямую загрузить с сайта nordicsemi.com. Обратите внимание, что SoftDevice для ANT не распространяются компанией Nordic Semiconductor.

Для программирования SoftDevice есть несколько методов:

• Использовать nRFgo Studio
• Использовать ARM Keil, запустив его из проекта примера
• Использовать GCC makefile из проекта примера
• Использовать утилиту JLink.exe от SEGGER.

Все эти методы сотрут содержимое памяти платы (последний метод стирает только те сектора, содержимое которых не совпадает с записанными данными), включая (если он есть в памяти) существующий SoftDevice, приложение и данные приложения. nRFgo Studio и GCC makefile сотрут память платы автоматически. В ARM Keil перед программированием SoftDevice необходимо очистить память чипа платы вручную.

[nRFgo Studio]

Для программирования SoftDevice с помощью nRFgo Studio выполните следующие шаги:

1. Запустите nRFgo Studio. В Device Manager выберите плату nRF5 DK, с которой Вы работаете (она идентифицируется по серийному номеру SEGGER).

2. Выберите закладку Program SoftDevice.

3. Кликните Browse и перейдите к HEX-файлу SoftDevice, который хотите использовать.

4. Кликните Program.

nRFgo Studio сотрет существующий SoftDevice и запрограммирует выбранный.

[ARM Keil]

Для программирования SoftDevice, используя проект примера для Keil, выполните следующие шаги:

1. Сотрите память чипа платы (см. секцию "Стирание памяти чипа на плате" из врезки "Компилирование и запуск первого примера" выше).

2. Откройте тот проект примера в Keil, который требует SoftDevice.

3. Вместо цели по умолчанию (default target), выберите цель для программирования SoftDevice, например flash_s132_nrf52_2.0.0_softdevice.

4. Кликните на Options for Target.

5. Выберите закладку Debug и кликните на кнопку Settings для J-Link / J-TRACE Cortex.

6. Выберите тот адаптер отладчика (J-Link / J-Trace Adapter), который соответствует серийному номеру, напечатанному на наклейке Interface MCU Вашего DK.

7. Кликните OK для подтверждения настроек и закрытия диалогов.

8. В главном окне кликните Download, чтобы запрограммировать SoftDevice.

Keil запрограммирует SoftDevice, подходящий для выбранного примера.

[GCC makefile]

Для программирования SoftDevice с помощью скрипта GCC makefile выполните следующие шаги:

1. Откройте командную строку в папке, где находится makefile выбранного примера. Этот пример должен требовать использования SoftDevice.

2. Убедитесь, что утилита nrfjprog.exe (часть из инструментария nRF5x Command Line Tools) доступна через пути поиска исполняемых файлов (переменная окружения %PATH%). Скрипт makefile будет делать вызов утилиты nrfjprog.

3. Запустите следующую команду:

make flash_softdevice

Запущенный скрипт makefile сотрет существующий SoftDevice и запрограммирует подходящий SoftDevice для выбранного примера.

[Запуск примеров ANT]

Двоичный код библиотек ANT SoftDevice для nRF5x не распространяется компанией Nordic Semiconductor. Вы можете загрузить их с сайта thisisant.com.

Для программирования этих SoftDevice не предоставляется целей Keil или GCC, поэтому нужно использовать nRFgo Studio.

SDK не включает в себя заголовочных файлов для ANT SoftDevice. Поэтому Вы должны их добавить самостоятельно перед компилированием своего приложения. Чтобы сделать это, распакуйте загруженный zip-файл, который содержит SoftDevice, и скопируйте его заголовки в каталог components/softdevice/SoftDevice/headers.

Убедитесь, что раскомментирован ANT_LICENSE_KEY в файле nrf_sdm.h, который Вы скопировали. Предоставляемый ключ лицензии может использоваться для оценочных действий, но перед выпуском конечного продукта он должен быть заменен на действующий лицензионный (commercial license key). Для дополнительной информации см. сайт thisisant.com.

[Использование JLink.exe]

Как использовать утилиту JLink.exe для автоматизации прошивки SoftDevice и файла приложения, см. статью [13].

[5 Interface MCU]

Микроконтроллер интерфейса (Interface MCU) на плате nRF51 DK работает либо как интерфейс отладчика SEGGER J-Link OB, либо как интерфейс mbed OB, и он используется для программирования и отладки firmware (кода прошивки) nRF51422 SoC.

nRF51 DK Interface MCU fig03

Рис. 3. Interface MCU.

5.1 Кнопка IF Boot/Reset. Плата nRF51 DK оборудована кнопкой сброса интерфейса IF Boot/Reset (SW5). Эта кнопка подключена к Interface MCU, и выполняет 2 функции:

• Сбрасывает nRF51422 SoC.
• Вводит в режим загрузчика (bootloader mode) микроконтроллер Interface MCU.

В режиме нормального функционирования эта кнопка будет функционировать как кнопка сброса для nRF51422 платы nRF51 DK. Также эта кнопка используется для перевода в режим загрузчика Interface MCU. Чтобы войти в этот режим, удерживайте кнопку сброса при подаче питания на плату, при этом LED LD5 начнет мигать. Подать питание на плату можно отключением и подключением кабеля USB, либо перевести микропереключатель питания SW6 сначала в положение OFF (выключено), затем в положение ON (включено).

5.2 Виртуальный COM-порт. Interface MCU предоставляет Virtual COM port (VCP), через который можно обмениваться данными с UART микроконтроллера nRF51422. VCP обладает следующими функциями:

• Гибкая настройка скорости до 1 Mbps(1).
• Динамическая обработка сигналов управления потоком (Hardware Flow Control, HWFC).
• Ножки UART переводятся в третье (отключенное) состояние, когда терминал не подключен.

Примечание (1): скорость передачи 921600 через виртуальный COM-порт не поддерживается.

Обмен через UART обычно используется для передачи отладочных сообщений и/или взаимодействия с пользователем. Программное обеспечение терминала PC должно послать сигнал DTR, чтобы сконфигурировать для ножек MCU интерфейс UART. Таблица 4 показывает соединения UART между nRF51422 и Interface MCU.

Таблица 4. Сигналы интерфейса UART, назначение ножек nRF51422 по умолчанию.

GPIO nRF51422 UART nRF5142
P0.8 RTS (выход)
P0.9 TXD (выход)
P0.10 CTS (вход)
P0.11 RXD (вход)

Сигналы UART, подключенные к Interface MCU, переводятся в третье состояние, если к VCP не подключена программа терминала. Это дает возможность использовать ножки nRF51422 как обычные порты GPIO.

Ножки портов P0.08 (RTS) и P0.10 (CTS) могут свободно использоваться nRF51422 как GPIO, когда аппаратное управление потоком (HWFC) запрещено.

Примечание: интерфейс mbed OB не поддерживает HWFC через виртуальный COM-порт.

Когда Interface MCU получил от терминала сигнал DTR, он выполняет автоматическое детектирование динамического аппаратного управления потоком данных, Dynamic Hardware Flow Control (HWFC).

Автоматическое детектирование HWFC выполняется путем управления уровнем P0.10 (CTS) Interface MCU и оценки состояния P0.08 (RTS), когда первые данные отправляются или принимаются. Если состояние P0.08 (RTS) лог. 1, то подразумевается, что HWFC не используется (не обнаружено). Если HWFC не обнаружено, то оба сигнала CTS и RTS можно свободно использовать в firmware nRF51422.

После сброса по питанию (power-on reset) Interface MCU переводит все ножки UART в третье состояние, когда к виртуальному COM-порту не подключен терминал. Из-за динамической обработки HWFC, если HWFC используется и это определено, ножка P0.10 (CTS) будет управляться от Interface MCU до power-on reset, или пока не будет получен новый сигнал DTR при повторном детектировании HWFC. Для гарантии, что на ножки UART не будет влиять Interface MCU, мостики припоя для этих сигналов должны быть удалены, и впоследствии восстановлены, когда это будет необходимо. Это может понадобиться, когда нужно использовать UART без HWFC, и когда P0.08 (RTS) и P0.10 (CTS) нужно использовать для других целей.

5.3 Interface MCU firmware. Установленный на плате Interface MCU запрограммирован на заводе mbed-совместимым загрузчиком, это дает возможность поменять его firmware между заводским SEGGER J-Link OB и nRF51 mbed-интерфейсом, см. секцию "5.1 Кнопка IF Boot/Reset" с описанием запуска загрузчика.

Чтобы поменять Interface MCU firmware, просто перетащите образ прошивки интерфейса (.bin) на смонтированный диск загрузчика, и передерните питание платы. Обе прошивки интерфейса - nRF51 mbed и J-Link OB - можно скачать с сайта www.nordicsemi.com.

Прошивка firmware интерфейса J-Link OB, загруженная с сайта www.nordicsemi.com, никогда не будет самой свежей. Если Вы хотите получить последнюю версию J-Link OB firmware, загрузите последнюю версию программного обеспечения от SEGGER (SEGGER J-Link software) с сайта www.segger.com и откройте сессию отладки. Программное обеспечение предложит выполнить обновление до последней версии прошивки J-Link OB firmware.

Серийный номер J-Link, связанный с Interface MCU, не изменится, даже когда Вы переключаетесь с одного Interface MCU firmware на другое, поэтому может оказаться полезным записать серийный номер, который находится на наклейке чипа Interface MCU платы.

nRF51 DK PCA10028 serial

В режиме загрузчика не кидайте на его диск какие попало файлы. Используйте только те прошивки, которые Вы загрузили с сайта www.nordicsemi.com, и которые предназначены для Interface MCU. Если будет загружен неправильный файл, то он может перезаписать загрузчик, и превратить Interface MCU в бесполезный кирпич без возможности его восстановления.

Примечание переводчика: по поводу скачать прошивки интерфейса отладки с сайта www.nordicsemi.com - вот тут авторы документации [1] откровенно лукавят. К сожалению, просто так не получается найти ссылку на закачку firmware интерфейсов nRF51 mbed и J-Link OB. Единственное, что мне удалось найти при длительном поиске - прошивка 5367.J-Link OB-SAM3U128-V2-NordicSemi 170724.bin (записал её в архив [15]).

[5.4 MSD]

Interface MCU поддерживает функцию флешки (mass storage device, MSD). Она появляется на хосте отладки PC, когда Вы подключаете к нему свой nRF51 DK. Эта флешка может быть использована для drag-and-drop программирования. Программируемые файлы могут быть сохранены на этот диск. Если скопировать HEX на флешку, то Interface MCU запрограммирует этот файл в память nRF51422.

Windows может попытаться дефрагментировать MSD-диск, предоставляемый Interface MCU. Если это произойдет, то Interface MCU отключится и станет недоступным. Для восстановления работы нужно передернуть питание nRF51 DK.

Антивирус может попробовать просканировать MSD-диск, предоставляемый Interface MCU. Известны редкие случаи, когда антивирус вдруг ошибочно обнаруживал на MSD вредоносное ПО и помещал диск на карантин. Если это произошло, что Interface MCU перестанет отвечать на запросы.

Если компьютер настроен на загрузку через USB, то он может попытаться загрузиться с флешки nRF51 DK, если он в момент загрузки подключен через USB. Этого можно избежать, если перед загрузкой отключить nRF51 DK, или если поменять настройки загрузки (boot sequence) компьютера.

Также можно запретить MSD для nRF51 DK, используя команду msddisable, введенную в J-Link Commander. Чтобы обратно восстановить функционал MSD, введите команду msdenable. Эти команды вступят в действие после передергивания питания nRF51 DK. Действие команд msddisable и msdenable сохранится до тех пор, пока не будет задано противоположное изменение.

[6 Описание аппаратуры nRF51 DK]

В этой главе приведено описание схемы и аппаратных ресурсов платы nRF51 Development Kit (PCA10028).

nRF51 DK может использоваться как платформа для разработки на основе микросхем nRF51 SoC. На борту у nFR51 имеется полноценное решение для программирования и отладки. В дополнение к коммуникациям по радиоканалу nRF51 SoC может обмениваться данными с компьютером через виртуальный COM-порт (virtual COM port, VCP), предоставляемый Interface MCU. Также доступен интерфейс передачи отладочных сообщений через RTT [14].

nRF51 DK board TOP fig04

Рис. 4. Схематическое изображение вида на верхнюю сторону платы nRF51 DK.

nRF51 DK board BOTTOM fig05

Рис. 5. Схематическое изображение вида на верхнюю сторону платы nRF51 DK.

nRF51 DK board block diagram fig06

Рис. 6. Блок-схема аппаратуры nRF51 DK.

Примечание: расширитель ввода/вывода (I/O expander), перемычки (switch) и фильтр подавления дребезга (debouncing filter) имеется только на платах DK версии v1.2.0 и более свежих. Версия вместе с серийным номером может быть прочитана на белой наклейке микроконтроллера Interface MCU.

6.3 Питание. Плата nRF51 DK может получать питание из нескольких источников:

nRF51 DK Power supply options fig07

Рис. 7. Варианты питания nRF51 DK.

Напряжение 5V DC, поступающее от USB, понижается до 3.3V с помощью находящегося на плате регулятора напряжения. Напряжение, поступающее от коннектора внешнего питания (коннектор P21 External supply) и от батареи, не регулируется. Ток от источников питания передается через набор диодов (D1A, D1B и D1C, см. рис. 8), чтобы защитить DK от переполюсовки, при этом схема DK будет получать питание от того источника, у которого будет самое высокое напряжение.

Примечание: когда на USB не подается питание, микроконтроллер Interface MCU находится в неактивном состоянии, и будет потреблять дополнительный ток около ~20 мкА, чтобы обеспечить функциональность кнопки сброса (IF BOOT/RESET). Этот ток вносит свой вклад в общее потребление тока платой, однако он не влияет на результат изменений потребления тока для процесса, описанного в секции "6.7 Измерение потребляемого тока".

nRF51 DK Power supply circuit fig08

Рис. 8. Схема организации питания nRF51 DK.

На диодах защиты от переполюсовки (D1A, D1B и D1C) падает напряжение, за счет этого уровень напряжения питания для отлаживаемого микроконтроллера окажется меньше, чем предоставляет источник питания. Чтобы избежать падения напряжения на диодах, можно поместить мостики припоя на перемычках SB10, SB11 или SB12 (в зависимости от того, какой источник питания используется).

Таблица 5. Перемычки SB10, SB11 или SB12, устраняющие падение напряжения на защитных диодах.

Источник питания Отключающая защиту перемычка Уровень напряжения
USB SB10 3.3V
Дисковая батарейка CR2032 SB11 ~3V
Внешний источник питания SB12 1.8V .. 3.6V

nRF51 DK protection diode bypass solder bridges fig09

Рис. 9. Перемычки SB10, SB11 или SB12.

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

6.4 Подключение к ножкам nRF51422. Выводы nRF51422 портов GPIO доступны на коннекторах P2, P3, P4, P5 и P6. Дополнительно на коннектор P1 выведена шина земли GND, напряжения питания 3.3V и 5V, а также сигнал сброса.

nRF51 DK board connectors fig10

Рис. 10. Коннекторы nRF51 DK.

Те же сигналы доступны и с обратной стороны платы через (не распаянные) SMD-коннекторы P7, P8, P9, P10, P11 и P12. С помощью этих коннекторов плата nRF51 DK может использоваться как шилд для материнских плат Arduino, или может соединятся с другими шилдами, соответствующими стандарту Arduino.

Для упрощения доступа к GPIO, питанию и шине GND те же самые сигналы выведены на дополнительные отверстия для установки коннекторов P13 .. P17.

У некоторых выводов nRF51422 могут быть специальные функции, установленные по умолчанию.

• P0.08, P0.09, P0.10 и P0.11 по умолчанию используются для UART-подключения к Interface MCU. Для дополнительной информации см. секцию "5.2 Виртуальный COM-порт".
• P0.17 .. P0.24 по умолчанию подключены к кнопкам (buttons) и светодиодам (LEDs) платы nRF51 DK. Дополнительную информацию см. в секции "6.5 Кнопки и светодиоды".
• P0.26 и P0.27 по умолчанию используются для подключения кварца 32.768 кГц, и они недоступны на коннекторах. Дополнительную информацию см. в секции "6.6 Кварц 32.768 кГц".

Когда плата nRF51 DK используется как шилд вместе со стандартной материнской платой Arduino, сигналы Arduino выведены, как показано на рис. 11.

nRF51 DK Arduino signals routing fig11

Рис. 11. Сигналы Arduino на плате nRF51 DK.

6.5 Кнопки и светодиоды. На плате nRF51 DK установлены 4 кнопки и 4 светодиода, подключенные в выделенным ножкам GPIO чипа nRF51422 SoC. Эти соединения показаны в таблице 6.

Таблица 6. Соединения для кнопок (button) и светодиодов (LED).

Компонент GPIO Перемычка Сигнал Arduino
Button 1 P0.17 - D4
Button 2 P0.18 - D6
Button 3 P0.19 - D7
Button 4 P0.20 - D8
LED1 P0.21 SB5  
LED2 P0.22 SB6  
LED3 P0.23 SB7 D9
LED4 P0.24 SB8 D10

Если GPIO P0.21 .. P0.24 нужны для других целей, то соответствующие LED могут быть отключены разрезанием перемычек SB5 .. SB8, см. рис. 12.

nRF51 DK disconnecting LEDs fig12

Рис. 12. Перемычки для отключения LED.

Сигналы от кнопок имеют активный уровень лог. 0, т. е. на входе nRF51422 появится низкий уровень, когда кнопка нажата. Для кнопок не предусмотрены внешние подтягивающие верхние резисторы (pull-up), поэтому для использования кнопок на выводах P0.17 .. P0.20 должны быть программно сконфигурированы как входы с активными внутренними pull-up резисторами.

Светодиоды LED имеют низкий активный уровень, т. е. чтобы светодиод засветился, на соответствующий сконфигурированный выход GPIO должен быть выведен уровень лог. 0.

nRF51 DK Button and LED configuration fig13

Рис. 13. Схема подключения кнопок и светодиодов.

6.5.1 I/O expander для дополнительных кнопок и светодиодов. На платах nRF51 DK (v1.2.0 и более новых версий) имеется коннектор P5 I/O expander, предназначенный для разрешения конфликтов портов GPIO с платами, которые следуют стандарту Arduino. На него выведены те же самые порты P0.25, P0.28 и P0.29, которые выведены на коннектор P4, который совместим с портами Arduino. I/O expander освободит эти выводы GPIO для обычного использования, когда nRF51 DK используется вместе со стандартными платами Arduino. I/O expander можно постоянно разрешить, если замкнуть мостиком припоя перемычку SB18, или можно постоянно запретить, если разрезать замыкающую дорожку перемычки SB19. Также необходимо замкнуть SB18, когда разрезается SB19 для полной совместимости со стандартом Arduino.

I/O expander можно временно разрешить замыканием сигнала SHIELD DETECT (контакт 6 коннектора P4) на GND.

nRF51 DK enable or disable IO for Arduino standard fig14

Рис. 14. Разрешение или запрет GPIO для соответствие стандарту Arduino.

В дополнение к кнопкам и светодиодам, для I/O expander используются следующие ножки портов GPIO:

Таблица 7. Подключение I/O expander.

Сигнал I/O expander GPIO
/INT P0.21
SDA P0.30
SDL P0.7

nRF51 DK IO expander schematic fig15

Рис. 15. Схема I/O expander.

Примечание: при использовании I/O expander не нужно использовать программное подавление дребезга контактов кнопок. Каждая кнопка платы nRF51 DK снабжена фильтром для подавления дребезга.

6.6 Кварц 32.768 кГц. nRF51422 может опционально использовать кварц 32.768 кГц (X2) для повышенной точности и снижения потребляемой мощности. На плате nRF51 DK ножки портов P0.26 и P0.27 по умолчанию используются для кварца 32.768 кГц, и поэтому они недоступны как GPIO на коннекторах.

Примечание: при использовании протоколов ANT/ANT+ кварц 32.768 кГц (X2) необходим для корректного функционирования.

Если ножки портов P0.26 и P0.27 нужны в качестве обычных портов ввода/вывода (GPIO), то кварц 32.768 кГц можно отключить, и подсоединить P0.26 и P0.27 на коннекторы. Для этого перережьте перемычки SB1 и SB2, и установите мостики припоя на перемычках SB3 и SB4, см. рис. 16.

nRF51 DK disconnecting 32768 Hz crystal fig16

Рис. 16. Отключение кварца 32.768 кГц и подключение P0.26 и P0.27 к коннекторам.

nRF51 DK 32768 Hz crystal and SB1 to SB4 schematic fig17

Рис. 17. Схема соединений кварца 32.768 kHz и перемычек SB1 .. SB4.

6.7 Измерение потребляемого тока. На плате nRF51 DK есть возможность мониторить ток, который потребляет nRF51422. Существует несколько типов оборудования, которое может использоваться для измерения тока, и у каждого типа есть свои достоинства и недостатки:

• Power analyzer
• Осциллограф
• Миллиамперметр (мультиметр)
• Power Profiler Kit [7, 8]

Измерения с помощью Power analyzer и Power Profiler Kit здесь не рассматриваются (см. документацию Power Profiler Kit [7, 8]).

При измерении тока нужно иметь в виду следующее:

• Не используйте коннектор USB для подачи питания на плату nRF51 DK. Вместо этого для питания используйте батарейку-таблетку 3V CR2032, или внешний источник питания, подключенный к коннектору P21 External Supply.
• Измерения тока будут ненадежными, когда через виртуальный COM-порт подключена программа терминала.
• После программирования nRF51422 SoC кабель USB должен быть отключен, и должно быть передернуто питание у nRF51 DK, чтобы перед измерением тока был сброшен чип отладчика.

6.7.1 Подготовка платы nRF51 DK. Для измерения тока необходимо подготовить плату, чтобы можно было выполнить все описанные далее шаги. Рекомендуемые конфигурации приводят к разделению доменов питания nRF51422 SoC и остальной части платы. Также замыкаются защитные диоды, чтобы они не оказывали влияния на уровень напряжения питания nRF51422.

nRF51 DK prepare current measurements fig18

Рис. 18. Подготовка платы nRF51 DK и измерениям тока потребления nRF51422.

1. Перережьте дорожку меди, которая замыкает перемычку SB9, чтобы коннектор P22 был подключен последовательно с потребляющей нагрузкой.
2. Замкните каплей припоя перемычку SB11 (если для питания используется дисковая батарейка CR2032 на 3V) или SB12 (если используется внешний источник питания). Этими перемычками отключается защитный диод, чем исключается падение напряжение на нем.

Важное замечание: когда замкнута перемычка SB11 или SB12, плата nRF51 DK не должна получать внешнее питание от внешнего источника (от батарейки или от P21), когда плата получает питание от USB. Иначе два источника питания будут соединены параллельно, что может привести к неприятным последствиям, потому что перемычки SB11 или SB12 отключают защитный диод, предотвращающий встречные токи от выходов двух параллельно соединенных источников питания.

После окончания измерений тока для восстановления нормального состояния nRF51 DK нужно провести обратные действия:

• Запаять перемычку SB9, или установить перемычку на P22.
• Снять каплю припоя с перемычки SB11 или SB12, чтобы вернуть действие защитного диода.

Чтобы перепрограммировать чип nRF51422, когда плата nRF51 DK подготовлена к измерению тока, необходимо отключить внешнее питание и после этого подключить плату к компьютеру кабелем USB.

6.7.2 Использование осциллографа для измерения профиля тока. Для этого выполните последовательно следующие шаги. Предварительно должны быть выполнены действия по подготовке платы, описанные выше в п. 6.7.1.

1. Смонтируйте резистор номиналом 10 Ом в посадочное место R6 на плате.
2. Подключите осциллограф в дифференциальном режиме с помощью двух щупов к коннектору P22, как показано ниже на рис. 19.
3. Рассчитайте или постройте график тока по падению напряжения на резисторе 10 Ом (напряжение должно быть получено по разности напряжений, измеренных двумя щупами осциллографа). Падение напряжения будет пропорционально потребляемому току. Резистор 10 Ом приведет к падению напряжения 10 mV для каждого 1 mA, потребляемого измеряемой схемой.
4. Полученный график падения напряжения может использоваться для вычисления тока в определенный момент времени, или проинтегрирован для получения среднего тока за определенный период времени.

nRF51 DK current measurement with oscilloscope fig19

Рис. 19. Измерение тока с помощью осциллографа.

Несколько советов для уменьшения шума:

• Используйте щупы в режиме ослабления 1x.
• Разрешите в осциллографе режим усреднения или ФНЧ, чтобы снизить влияние на измерения случайного шума.
• Разрешите функцию высокого разрешения, если это доступно.

Используйте частоту развертки как минимум 200 kSa/s (килосемплов в секунду, одна выборка каждые 5 мкс), чтобы можно было получить корректные измерения тока.

6.7.3 Использование миллиамперметра для измерения тока. Предварительно должны быть выполнены действия по подготовке платы, описанные выше в п. 6.7.1. Подключите мультиметр в режиме измерения тока к коннектору P22, как показано ниже на рис. 20.

nRF51 DK current measurement with ampere meter fig20

Рис. 19. Измерение тока с помощью миллиамперметра.

Миллиамперметр будет показывать средний потребляемый ток nRF51422, если:

• nRF51422 находится в состоянии, когда он потребляет все время одинаковый ток, или когда активность устройства, влияющая на изменение тока (наподобие событий подключения BLE) постоянно повторяется с короткими интервалами времени (менее 100 мс), чтобы миллиамперметр смог измерить средний ток полного цикла изменения тока, а не его какую-то часть.
• Динамический диапазон миллиамперметра достаточно широк, чтобы измерять ток в диапазоне от 1 мкА до 15 мА.
• Рекомендуется использовать true RMS миллиамперметр.

6.8 Измерения RF. Плата nRF51 DK оборудована маленьким коаксиальным коннектором (J1), чтобы можно было подключить кабелем измерительное радиооборудование для оценки сигнала.

Этот коннектор имеет тип SWF (Murata part no. MM8130-2600) с переключателем антенны. По умолчанию, когда никакой кабель не подключен, RF-сигнал приходит на антенну, расположенную на печатной плате DK. Существует тестовый пробник (Murata part no. MXHS83QE3000) со стандартным коннектором SMA на другом конце для подключения измерительного оборудования (этот тестовый пробник не входит в комплект поставки nRF51 DK). Когда подключен тестовый пробник, внутренний переключатель коннектора SWF отключит антенну на печатной плате, и передаст радиосигнал от nRF51422 на тестовый пробник.

nRF51 DK connect spectrum analyzer fig21

Рис. 21. Подключение анализатора спектра RF.

Коннектор и тестовый пробник вносят некоторые потери в RF-сигнал, которые нужно учитывать при измерениях, см. таблицу 8.

Таблица 8. Типовые потери радиосигнала из-за коннектора SWF и тест-пробника.

Частота, МГц GPIO
2440 1.0
4880 1.7
7320 2.6

6.9 Вход для подключения отладчика. Коннектор P18 (Debug in) дает возможность подключить внешний отладчик и производить отладку, когда nRF51422 получает питание от батареи или внешнего источника питания.

nRF51 DK debug input connector fig22

Рис. 22. Коннектор для подключения внешнего отладчика.

6.10 Выход встроенного отладчика. Плата nRF51 DK поддерживает программирование и отладку устройств nRF51 или nRF52, смонтированных на внешних платах. Чтобы отлаживать внешнюю плату с помощью интерфейса SEGGER J-Link OB, подключите коннектор P19 (Debug out) к отлаживаемому устройство 10-контактным кабелем.

nRF51 DK debug output connector fig23

Рис. 23. Выходной коннектор встроенного отладчика nRF51 DK.

Когда на внешнюю отлаживаемую плату подано питание, Interface MCU обнаружит это напряжение и будет программировать чип на внешней плате вместо чипа nRF51422, смонтированного на плате nRF51 DK.

Примечание: поддерживаемое напряжение питания для программирования/отладки внешней платы составляет 3.0V.

Вы можете также использовать P20 в качестве выхода отладчика для программирования целевых плат, установленных как шилд. При этом P20 будет подключен к плате шилда, и Interface MCU обнаружит напряжение питания смонтированного шилда, и будет программировать целевой микроконтроллер, смонтированный на плате шилда.

Если Interface MCU определит наличие питания на обоих коннекторах P19 и P20, то по умолчанию он будет программировать целевой микроконтроллер, подключенный к P19.

Таблица 9. Цоколевка P19 Debug out для программирования/отладки внешней платы.

Вывод Функция Описание
1 EXT VTG Соединяется с VDD внешней платы (3V).
2 EXT SWDIO Соединяется с SWDIO целевого чипа на внешней плате.
3 GND Соединяется с GND внешней платы.
4 EXT SWDCLK Соединяется с SWDCLK целевого чипа на внешней плате.
5 GND Соединяется с выводом 9 коннектора P19.
6 EXT SWO Не используется.
7 - Никуда не подключено (NC).
8 -
9 EXT GND DETECT Соединяется с выводом 9 коннектора P19.
10 EXT RESET Не используется.

Таблица 10. Цоколевка P20 Debug out для программирования/отладки платы шилда.

Вывод Функция Описание
1 VnRF Цепь питания nRF SoC.
2 VDD Цепь питания nRF51 DK.
3 SH VTG Соединяется с VDD платы шилда, которая запитана от собственного источника питания 3V.
4 SH SWDIO Соединяется с SWDIO целевого чипа на плате шилда.
5 SH SWDCLK Соединяется с SWDCLK целевого чипа на плате шилда.
6 EXT SWO Не используется.
7 SH RESET
8 SH GND DETECT Соединяется с GND платы шилда и GND на плате nRF51 DK.

6.11 Конфигурация мостиков припоя

Таблица 11. Перемычки, используемые во всех версиях nRF51 DK.

Перем. По умолчанию Функция
SB1 Замкнута Перережьте, чтобы отключить кварц 32.768 кГц от ножки P0.26 чипа nFR51422.
SB2 Замкнута Перережьте, чтобы отключить кварц 32.768 кГц от ножки P0.27 чипа nFR51422.
SB3 Разомкнута Замкните, чтобы использовать P0.26 как обычную ножку GPIO.
SB4 Разомкнута Замкните, чтобы использовать P0.27 как обычную ножку GPIO.
SB5 Замкнута Перережьте, чтобы отключить LED1.
SB6 Замкнута Перережьте, чтобы отключить LED2.
SB7 Замкнута Перережьте, чтобы отключить LED3.
SB8 Замкнута Перережьте, чтобы отключить LED4.
SB9 Замкнута Перережьте для измерения тока потребления чипа nRF51422.
SB10 Разомкнута Замкните, чтобы отключить защитный диод напряжения питания от USB.
SB11 Разомкнута Замкните, чтобы отключить защитный диод напряжения питания от батарейки CR2032.
SB12 Разомкнута Замкните, чтобы отключить защитный диод внешнего источника питания.
SB13 Замкнута Перережьте, чтобы отключить P0.8 от коннекторов.
SB14 Замкнута Перережьте, чтобы отключить P0.9 от коннекторов.
SB15 Замкнута Перережьте, чтобы отключить P0.10 от коннекторов.
SB16 Замкнута Перережьте, чтобы отключить P0.11 от коннекторов.
SB17 Разомкнута Замкните, чтобы соединить SWDIO/nRF_RESET с сигналом RESET коннектора.

Таблица 12. Перемычки, используемые в версии v1.2.0 nRF51 DK и более новых версиях.

Перем. По умолчанию Функция
SB18 Разомкнута Замкните, чтобы постоянно разрешить I/O expander..
SB19 Замкнута Перережьте, чтобы постоянно запретить I/O expander.
SB20 Замкнута Перережьте, чтобы изолировать SWDIO nRF51422 от Interface MCU.
SB21 Замкнута Перережьте, чтобы изолировать SWDCLK nRF51422 от Interface MCU.
SB22 Замкнута Перережьте, чтобы изолировать P0.8 nRF51422 от Interface MCU.
SB23 Замкнута Перережьте, чтобы изолировать P0.9 nRF51422 от Interface MCU.
SB24 Замкнута Перережьте, чтобы изолировать P0.10 nRF51422 от Interface MCU.
SB25 Замкнута Перережьте, чтобы изолировать P0.11 nRF51422 от Interface MCU.

[Ссылки]

1. nRF51 Development Kit User Guide site:nordicsemi.com.
2. Обзор семейств чипов nRF51.
3. Nordic nRF51-DK site:os.mbed.com.
4. ANT (network) site:wikipedia.org.
5. Setting up your toolchain site:infocenter.nordicsemi.com.
6. Nordic tools and downloads site:infocenter.nordicsemi.com.
7. Power Profiler Kit site:infocenter.nordicsemi.com.
8. Power Profiler Kit II site:infocenter.nordicsemi.com.
9Bluetooth: аббревиатуры и термины.
10. Running examples that use a SoftDevice site:infocenter.nordicsemi.com.
11. Running the example site:infocenter.nordicsemi.com.
12nRF Command Line Tools.
13. Автоматизация прошивки SoftDevice.
14. Командная строка J-Link RTT Viewer.
15. 211218nRF51-DK-files.zip - прошивка Interface MCU (отладчик J-Link), nRF5 SDK v12.3.0, файлы для производства nRF51 DK (Gerber, сверловка, проект Altium Designer).

 

Добавить комментарий


Защитный код
Обновить

Top of Page