myProjects

adafruit nRF52832 스터디 시작

바람C 2022. 2. 22. 11:16

nRF52 관련 프로젝트를 진행하기 위해 기본 자료 조사중입니다.

nRF52 는 기본적으로 노르딕이라는 회사에서 나온 BLE 와 MCU 가 통합된 칩을 의미합니다. 여기에는 다양한 칩들이 있습니다. X축으로는 BLE 버전에 따른 분류와 Y축으로는 MCU 의 성능에 따른 분류로 나눠집니다. 이중 그래도 일반적으로 많이 사용되는 것들이 몇가지 있는데 그 중 nRF52832 라는 칩을 사용하려고 합니다. 

 

 

사용하기 위해 구글링을 하면서 Adafruit 에서 이 칩을 사용해 Feather 라는 그 나름의 개발보드들을 만든 것을 확인해서 우선 Adafruit Feather nRF52 Bluefruit LE - nRF52832 를 조사해 보고자 합니다. nRF52 에 관한 기본적인 내용들과 함께 아두이노 IDE 를 이용한 개발까지 진행되므로 상당히 괜찮은 보드로 보입니다.

 

위의 사진은 노드릭에서 공식적으로 제공하는 nRF52-DK 라는 개발보드입니다. nRF52832 를 사용해 개발하려고 하는 사람들이 주로 찾는 보드입니다. 

 

Adafruit 에서 Feather 보드로 만든 nRF52832 개발 보드입니다. 크기가 작고 주변에 덕지덕지 붙은 것이 없어 깔끔합니다. 

 

Adafruit 에서 제공하는 Feather 보드는 여러가지가 있습니다. 

모양은 비슷하게 생겼고, 내부에 들어있는 칩만 ESP32, ESP8266, nRF52832, nRF52840, RP2040, STASMD51, ROLA 등 다양하게 계속 출시되고 있습니다. Feather 보드를 이용하여 여러가지 칩들을 학습하는것이 보다 쉬워질것으로 보입니다.

 

nRF52832 의 기본 스펙은 다음과 같습니다.

  • Arm processor
    • 64 MHz Arm® Cortex-M4 with FPU
    • 512/256 KB Flash + 64/32 KB RAM
    • Cache
  • Bluetooth 5.3 Radio
    • Long Range
    • Bluetooth mesh
    • +4 dBm TX power
    • -96 dBm sensitivity (1 Mbps)
  • Programmable output power +4 dBm to -20 dBm
  • Flexible and configurable 32 pin GPIO
  • Automatic smart power management
  • Full set of digital interfaces with DMA:
    • SPI
    • TWI
    • I²S
    • UART
    • PDM
    • QDEC
  • 128 bit AES/ECB/CCM/AAR accelerator
  • 12-bit 200 ksps ADC
  • 1.7-3.6 V supply voltage range

간단히 보조 설명을 해보겠습니다.

우선 nRF52832 에 사용된 콘트롤러는 Arm 계열의 Cortex-M4 MCU 입니다. Arm 은 영국의 회사로 대부분의 MCU 들은 제조사에서 직접 설계하고 제조까지 해왔지만 Arm 은 칩의 설계도를 만들고 그 라이센스를 판매하는 방식으로 운영했습니다. Arm 의 칩들은 저전력 위주로 개발되어 현재 스마트폰을 포함하여 많은 IoT 기기들에 사용되고 있으며 다양한 제조업체에서 자신들의 기술을 포함시켜 칩을 만들고 있습니다. nRF52832 역시 Arm 의 Cortex-M4 설계를 그대로 가져온 다음 거기에 자신들의 기술인 BLE 를 포함시킨 것입니다. 그래서 하나의 칩으로 MCU 와 BLE 가 모두 가능해진 것입니다.

 

FPU 는 부동소수점 장치(floating point unit)입니다. 기존의 MCU 는 실수연산을 하기 위해서 별도의 FPU 칩을 두었습니다. 즉 CPU 가 있고, CPU 와 별도로 FPU 칩이 있었습니다. 실수연산의 정수연산과 달리 처리해야 할 부분이 많기 때문에 CPU 에서 직접 실수를 다루지 않고 별도로 추가된 FPU 를 사용합니다. 물론 최근에 나오는 칩들은 집적기술의 발전으로 인해 8비트 이상의 프로세서들에는 FPU 와 CPU 가 하나의 칩안에 포함됩니다. 8비트 저가형 프로세서들은 여전히 FPU 없이 ALU 만으로 처리합니다. 이런 이유로 아두이노 Atmega328p 같은 8비트 프로세서를 사용하는 경우 가능한 실수연산을 적게하거나 아예 정수연산으로 변환해서 하는 것이 좋습니다. 당연히 nRF52832 에도 FPU 가 포함되어 있습니다.

 

위 사진은 80287 이라는 칩입니다. 80286 이 프로세서고, 80287 은 FPU 입니다. 실수연산이 많이 없다면 80286 만을 사용해서 보드를 만들고, 실수연산이 많이 있다면 80286 과 함께 80287 을 사용했던 때가 있습니다. 지금은 FPU 가 대부분 MCU 내에 포함되는 형태로 만들어지기 때문에 별도로 FPU 칩이 포함되는 경우는 찾아보기 힘들지만 여전히 예전에 만들어진 산업용 장비들에는 이런 구형의 칩들이 들어있습니다.

 

 

 

 

[레퍼런스]

 

https://namu.wiki/w/ARM(CPU)  

https://www.mouser.kr/datasheet/2/297/nRF52832_PS_v1.3-1117956.pdf