NRF52832 создание проекта в KEIL uVision.

NRF52832 создание проекта в KEIL uVision.

На днях из Китая мне пришла отладочная плата с NRF52832 на борту.
NRF52832 создание проекта в KEIL uVision.
По сути NRF52832 - это микроконтроллер c ядром ARM Cortex-M4F и RF-трансивер на 2.4 ГГц, совмещенные на одном кристалле.

Ниже перечислены основные возможности и преимущества микросхемы nRF52832
  • процессорное ядро ARM® Cortex® -M4F 64МГц
  • 512Кб Flash и 64Кб RAM
  • максимальная в классе вычислительная мощность (EEMBC 215 CoreMark®), при минимальном потреблении (90 CoreMark / mA)
  • мультипротокольная 2.4ГГц радиочасть с пиковым потреблением тока 5.5мА
  • чувствительность -96dBm
  • выходная мощность +4 dBm
  • встроенный RF Balun
  • встроенный NFC-A Tag интерфейс с поддержкой таких функций, как Touch-To-Pair и Wakeup-On-Field
  • поддержка спецификации Bluetooth 4.2


Плата покупалась для знакомства с BLE, очень уж заманчивой мне показалась радио часть с пиковым потребление 5,5мА.

Первое, что решил сделать после того как плата пришла — подключить ее к программатору и посмотреть увидит ли он чип. Судя по шелкографии, на плате разведен jtag, но в документации написано, что он программируется по swd, о том же говорит и картинка ниже.
NRF52832 создание проекта в KEIL uVision.

Прозвонка показала, что вывод помеченный на плате как TMS на самом деле SWDIO, а TCK на самом деле SWDCLK. Такого подвоха я не ожидал.
Кроме выводов SWDIO и SWDCLK, к программатору надо подключить VBUS и подать питание. Напряжение питания должно находить в диапазоне от 1.7В до 3.6В, я взял его с блока питания.

Ну да ладно проверим определится ли чип в KEIL, но для начала надо создать проект. Как создавать проект описывал тут, по этому далее опишу лишь некоторые тонкости.

Те кто работал с KEIL знают, что при создании проекта надо указать на каком чипе он будет работать. Если не установить определенные пакеты, то нужный чип не получится найти. По этому первое, что надо сделать — это установить пакеты, выделенные на скришоте.
NRF52832 создание проекта в KEIL uVision.

Теперь при создании проекта можно выбрать NRF52832.
NRF52832 создание проекта в KEIL uVision.

Также не забываем указать частоту внешнего кварца.
NRF52832 создание проекта в KEIL uVision.

Теперь создадим файл main и добавим в него следующий код.

#include <stdlib.h>
#include "nrf_delay.h"
#include "nrf_gpio.h"

const uint32_t led_pin1 = 31;

int main(void)
{
    nrf_gpio_cfg_output(led_pin1);
    nrf_gpio_pin_clear(led_pin1);

    while (1) 
    {
        nrf_gpio_pin_toggle(led_pin1);
        nrf_delay_ms(1000);   
    }
}

Для того, чтобы проект компилировался надо установить галочки, отмеченные на скриншоте.
NRF52832 создание проекта в KEIL uVision.


Теперь, когда чип подключен к программатору и проект создан, можно проверить увидит ли чип программатор. Для этого во вкладке DEBUG выбираем, используемый программатор и нажимаем кнопку ОК, а в открывшейся вкладке выбираем интерфейс SW.
NRF52832 создание проекта в KEIL uVision.

На скриншоте видно, что чип определился.

Пробуем его прошить и получаем ошибку programming failed или erase failed.
NRF52832 создание проекта в KEIL uVision.

У меня так было до тех пор пока во вкладке Flash Download в поле Programming Algorithm не выбрал пункт nRF52xxx SoftDevice Erase.
NRF52832 создание проекта в KEIL uVision.

После этого плата прошилась и диод замигал. Плату покупал тут.

P.S. обычно предпочитаю работать с регистрами, но в данном случае мне надо было проверить запустится ли чип, по этому от них отказался.
комментарии
0