본문 바로가기

Nordic/nRF52

nRF52832 SSM - Arduino 만들기 (Adafruit nRF52)

nRF52832 SSM 보드는 사용자가 쉽게 프로그램을 작성하고 수정할 수 있어야 하는 것이 큰 미션중에 하나이기 때문에 Arduino 환경에서 구동이 되어야 할것 같다. (Arduino에서만 개발이 가능하다고 한다.)

 

아무튼 nRF52를 지원하는 Arduino Board 파일은 몇가지 존재 하는데 그중에 가장 많이 사용하고 예제도 풍부한 Adafruit nRF52 Board 파일을 사용하기로 결정

 

Arduino Board 파일을 설치

https://github.com/adafruit/Adafruit_nRF52_Arduino

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

 

Adafruit nRF52 보드를 선택해도 되지만 이번에 만든 보드에 맞게 사용자 보드 파일을 추가 해서 선택 해 주면 된다.

 

 

SoftDevice는 디폴트로 S132 6.1.1로 설정되어 있다.

 

 

s132 는 다운 받아서 nRFgo Studio로 nRF52832 SSM 보드에 다운로드 해 주면된다.

s132nrf52611.zip
0.35MB

 


nRF52832의 Arduino기본 설정이 완료 되었으니 기본 동작 테스트를 해 보자

nRF52832 SSM 보드에 있는 LED를 깜박이는 간단한 예제를 동작 시키면 정상 동작 하는것을 확인 할 수 있다.

#define LED_PIN1        22

void setup() 
{
  pinMode(LED_PIN1, OUTPUT);
}

void loop()
{
  digitalWrite(LED_PIN1, 0);
  delay(1000);

  digitalWrite(LED_PIN1, 1);
  delay(1000);  
}

// Number of pins defined in PinDescription array
#define PINS_COUNT           (32u)
#define NUM_DIGITAL_PINS     (32u)
#define NUM_ANALOG_INPUTS    (8u)
#define NUM_ANALOG_OUTPUTS   (0u)

// LEDs
#define PIN_LED1             (22)
#define PIN_LED2             (19)

#define LED_BUILTIN          PIN_LED1
#define LED_CONN             PIN_LED2

#define LED_RED              PIN_LED1
#define LED_BLUE             PIN_LED2

#define LED_STATE_ON         1         // State when LED is litted

/*
 * Analog pins
 */
#define PIN_A0               (2)
#define PIN_A1               (3)
#define PIN_A2               (4)
#define PIN_A3               (5)
#define PIN_A4               (28)
#define PIN_A5               (29)
#define PIN_A6               (30)
#define PIN_A7               (31)

static const uint8_t A0  = PIN_A0 ;
static const uint8_t A1  = PIN_A1 ;
static const uint8_t A2  = PIN_A2 ;
static const uint8_t A3  = PIN_A3 ;
static const uint8_t A4  = PIN_A4 ;
static const uint8_t A5  = PIN_A5 ;
static const uint8_t A6  = PIN_A6 ;
static const uint8_t A7  = PIN_A7 ;
#define ADC_RESOLUTION    14

// Other pins
#define PIN_AREF           (24)
#define PIN_VBAT           PIN_A7
#define PIN_NFC1           (9)
#define PIN_NFC2           (10)

static const uint8_t AREF = PIN_AREF;

/*
 * Serial interfaces
 */
#define PIN_SERIAL_RX       (8)
#define PIN_SERIAL_TX       (6)

/*
 * SPI Interfaces
 */
#define SPI_INTERFACES_COUNT 1

#define PIN_SPI_MISO         (14)
#define PIN_SPI_MOSI         (13)
#define PIN_SPI_SCK          (12)

static const uint8_t SS   = 27 ;
static const uint8_t MOSI = PIN_SPI_MOSI ;
static const uint8_t MISO = PIN_SPI_MISO ;
static const uint8_t SCK  = PIN_SPI_SCK ;

/*
 * Wire Interfaces
 */
#define WIRE_INTERFACES_COUNT 1

#define PIN_WIRE_SDA         (25u)
#define PIN_WIRE_SCL         (26u)

#ifdef __cplusplus
}
#endif

 

 

반응형