Я недавно экспериментировал с NRF51 SOC, пытался запустить некоторые приложения Bluetooth. То, что я ожидал, окажется довольно простой задачей, оказалось кошмаром из-за титанических усилий, которые мне пришлось приложить для настройки среды разработки. Плюс официальная документация от Waveshare тоже не сильно помогает. Следующая статья обобщает мой опыт и, надеюсь, поможет всем, кто сталкивается с подобными проблемами.

Обычно я рекомендую использовать Linux для любого типа разработки, но в этой статье прослеживаются шаги, необходимые для Windows. Я, вероятно, поработаю над описанием шагов для Linux в будущей статье, плюс я пришел к пониманию, что не стоит влюбляться в ОС: P

Скачивание всего

  1. Начните с скачивания студии nRFgo; для 64-битной системы отсюда или для установщика 32-битной системы отсюда. Распаковать и установить.
  2. Скачиваем Keil MDK Lite v5 отсюда. Распаковать и установить.
  3. Затем загрузите программу настройки Segger J-Link отсюда. Установить. Он должен автоматически обнаружить установленный в системе Keil.
  4. Загрузите драйвер CP202 отсюда. Это необходимо для преобразования UART-USB. Установить
  5. Затем скачайте NR51-SDK отсюда. Установить
  6. Затем загрузите и установите устаревшую поддержку устройств Cortex M для keil MDK здесь
  7. Если у вас нет монитора последовательного порта, загрузите его; Помощник по серийной отладке из магазина приложений Microsoft - отличный помощник.
  8. Наконец, загрузите приложение nrf toolbox от Nordic Semiconductors на свой телефон из магазина Play / магазина iOS.

Правильная настройка среды…

  1. Сначала подключите NRF51822 к BLE400, а затем включите плату с помощью кабеля USB. Затем откройте монитор последовательного порта, выберите соответствующий COM-порт. Установите скорость передачи данных 38400, биты данных: 8 и стоповые биты: 1. Откройте COM-порт и отправьте символ «y» или «Y». NRF51822 должен ответить «start…». Это также устанавливает NRF51822 в режим широковещательной передачи.
  2. Откройте приложение на своем телефоне. Переходим к опции UART. Если ваш телефон поддерживает Bluetooth 4.0, при включении он будет отображать Nordic в качестве опции. Соединять.
  3. Откройте журнал в приложении. Это позволяет отправлять данные со своего телефона на NRF51, который отображается на вашем компьютере, и наоборот. Если это показывает некоторую ошибку, это проблема с драйвером CP202.
  4. Правильно подключите отладчик руки к BLE400. Подключите согласно следующей схеме:

  • Откройте конфигуратор Jlink и щелкните отладчик, чтобы настроить его один раз.

  • Откройте nRFgo и перейдите к программированию NRF5X, нажмите «Стереть все». Если этот параметр неактивен, отладчик J Link, вероятно, не работает. Держи крепко.

  • Откройте Keil, перейдите в ‹путь KEIL \ ARM \ Device \ Nordic \ nRF51822 \ Board \ PCA10001 \ blinky_example \ arm \ blinky.uvproj. Постройте его и загрузите на BLE. Обязательно выберите цель как nrf51822_xxab_s110 (128k)
  • Если он показывает ошибку, это, вероятно, связано с тем, что либо алгоритмы мигания не на месте, либо мы пишем не из правильного сектора в ОЗУ, не оставляя достаточно места для кода. Нажмите кнопку параметров, как показано на рисунке ниже. Сначала перейдите на целевую вкладку и установите значение IROM1 и IRAM1, как показано

  • Затем перейдите на вкладку «Утилиты» и нажмите «Настройки». Должно открыться новое окно. Измените значение начального сектора, как показано. Также ищите в списке алгоритм перепрошивки nrf51x. Если он не существует, перейдите в ‹KEIL› /ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\8.15.0\Flash, скопируйте все файлы и вставьте в ‹KEIL› / ARM / FLASH. Алгоритм перепрошивки должен появиться в списке.

  • Иногда даже после этого не мигает светодиод на плате. Я пробовал много вещей, и у меня сработало программирование программного устройства (хотя в официальной документации сказано, что это не требуется для примера с blinky). Для этого снова заходим в nRFgo studio, выбираем программирующее устройство, путь ‹KEIL› \ ARM \ PACK \ NordicSemiconductor \ nRF_SoftDevice_S110 \ 8.0.3 \ hex.
  • После этой программы плата снова мигает, и она должна работать.