Getting started with Bluetooth Low Energy - 5.1. nRF51822-EK (노르딕 세미컨덕터)

목록

nRF51822-EK (Nordic Semiconductors)

nRF51822-EK (노르딕 세미컨덕터)

Nordic Semiconductors has been involved in low-power wireless solutions for years and, as a board member on the Bluetooth SIG, has helped define and shape the core BLE standard since its inception.

노르딕 세미컨덕터는 수년간 저전력 무선 솔루션에 참여해 왔으며, Bluetooth SIG의 이사회 멤버로서 BLE 표준의 핵심을 정의하고 형성하는 데 도움을 주었습니다.

Widely known in the wireless market for its popular, general-purpose radio-frequency (RF) silicon solutions, Nordic Semiconductor was one of the first companies to get affordable BLE peripheral-mode silicon to market (the nRF8001).

노르딕 세미컨덕터는 무선 시장에서 널리 사용되는 범용 무선 주파수 (RF) 실리콘 솔루션으로 널리 알려져 있으며, 저렴한 BLE 주변 장치 모드 실리콘 (nRF8001)을 시장에 출시한 최초의 회사 중 하나입니다.

Its newest nRF51 family represents a complete redesign from many of their previous single-chip RF products, combining a radio with a modern 32-bit ARM microprocessor in a single chip.

최신 nRF51 제품군은 이전의 여러 단일 칩 RF 제품을 완전히 재설계하여 라디오와 최신 32비트 ARM 마이크로프로세서를 단일 칩에 결합한 것입니다.

Technical Specifications

기술 사양

Nordic’s nRF51 series is a highly integrated system-on-chip, combining a BLE compatible radio and a modern ARM processor in a single low-cost package with the following characteristics:

Nordic의 nRF51 시리즈는 고도로 통합된 시스템 온 칩으로, BLE 호환 라디오와 최신 ARM 프로세서를 하나의 저렴한 패키지에 결합하고 다음과 같은 특징을 갖습니다:

ARM Cortex-M0 core running at 16 MHz

16MHz에서 실행되는 ARM Cortex-M0 코어

128 or 256 KB flash memory (between 80 and 90 KB is required for the S110 BLE stack).

128KB 또는 256KB 플래시 메모리 (S110 BLE 스택의 경우 80~90KB 필요)

16 KM RAM (8 KB available to the application with the S110 BLE stack)

16 KM RAM (S110 BLE 스택이 있는 애플리케이션에서 8KB 사용 가능)

Being an entirely flash-based device is a key distinguishing factor of the nRF51822 for product designers.

완전한 플래시 기반 장치라는 점은 제품 설계자를 위한 nRF51822의 주요 차별화 요소입니다.

This means that the BLE stack is written into modifiable flash memory and can be updated as the core spec evolves, without necessarily requiring a new silicon revision.

이는 BLE 스택이 수정 가능한 플래시 메모리에 기록되고 반드시 새로운 실리콘 개정이 필요 없이 코어 사양이 발전함에 따라 업데이트될 수 있음을 의미합니다.

The down side of this choice is that it adds some additional per-device manufacturing costs, compared to a ROM-based solution.

이러한 선택의 단점은 ROM 기반 솔루션과 비교했을 때 장치당 제조 비용이 추가로 든다는 것입니다.

But given the fast-paced development of the Bluetooth Core Specification, the gamble might pay off in the long run, because it gives Nordic the potential to get to market with support for the latest spec faster than other silicon vendors who have opted for lower-cost ROM-based chips.

하지만 Bluetooth 핵심 사양의 개발 속도가 빠르다는 점을 고려하면 장기적으로 이 도박이 보상될 수도 있습니다. 이는 Nordic이 저가형 ROM 기반 칩을 선택한 다른 실리콘 공급업체보다 더 빠르게 최신 사양을 지원하여 시장에 진출할 수 있는 잠재력을 제공하기 때문입니다.

In order to implement BLE support on its chips (which can also be used for non-BLE standards, such as ANT+ and proprietary 2.4GHz protocols), Nordic makes use of something it calls a SoftDevice (SD).

칩에 BLE 지원을 구현하기 위해 (ANT+ 및 독점 2.4GHz 프로토콜과 같은 비 BLE 표준에도 사용할 수 있음) Nordic은 SD(SoftDevice)라고 부르는 것을 사용합니다.

The SoftDevice is essentially a black box that sits in the bottom part of flash memory and implements features such as the BLE stack and peripheral role support.

SoftDevice는 기본적으로 플래시 메모리 하단에 탑재되는 블랙박스로, BLE 스택, 주변 장치 역할 지원 등의 기능을 구현합니다.

The user (application) code sits at a higher address in flash memory and makes calls to this lower-level SoftDevice as appropriate.

사용자 (애플리케이션) 코드는 플래시 메모리의 상위 주소에 위치하며 적절하게 이 하위 수준 SoftDevice를 호출합니다.

Most BLE products use the S110 SoftDevice, which is a peripheral-only solution.

대부분의 BLE 제품은 주변기기 전용 솔루션인 S110 SoftDevice를 사용합니다.

The device architecture also includes a S120 SoftDevice that supports the central role, but because that use-case is less common for BLE, the discussion in this section will focus on the S110.

장치 아키텍처에는 중심 역할을 지원하는 S120 SoftDevice도 포함되어 있지만 해당 사용 사례는 BLE에서는 덜 일반적이므로 이 섹션에서는 S110에 초점을 맞춰 설명하겠습니다.

Nordic’s SoftDevice design approach has its benefits and drawbacks.

Nordic의 SoftDevice 설계 접근 방식에는 장점과 단점이 있습니다.

On the positive side, having a separate, verified, reliable BLE stack in the form of a SoftDevice allows firmware engineers to focus more energy on their application-level code.

긍정적인 측면에서는 SoftDevice 형태의 별도의 검증되고 안정적인 BLE 스택을 사용하면 펌웨어 엔지니어가 애플리케이션 수준 코드에 더 많은 에너지를 집중할 수 있습니다.

They can deal with a smaller API and higher-level concepts such as GAP (Chapter 3) and GATT (Chapter 4), leaving the lowest-level details to the SoftDevice (security implementation, message validation, etc.).

더 작은 API와 GAP (3장) 및 GATT (4장)와 같은 상위 수준 개념을 처리할 수 있으며 가장 낮은 수준의 세부 사항 (보안 구현, 메시지 유효성 검사 등)은 SoftDevice에 맡길 수 있습니다.

The SoftDevice also allows firmware developers to avoid dealing with radio configuration themselves, which can be a significant part of the firmware development process in most RF products.

SoftDevice를 사용하면 펌웨어 개발자가 직접 무선 구성을 다루지 않아도 되는데, 이는 대부분 RF 제품의 펌웨어 개발 과정에서 중요한 부분이 될 수 있습니다.

Turning these details into a black box protects firmware engineers from making low-level mistakes and can significantly simplify the product validation process, because the low-level BLE code is guaranteed to function according to the Bluetooth Core Specification.

이러한 세부 정보를 블랙박스로 만들면 펌웨어 엔지니어가 저수준 실수를 하는 것을 방지하고 제품 검증 프로세스를 크게 간소화할 수 있습니다. 저수준 BLE 코드는 Bluetooth 핵심 사양에 따라 작동하도록 보장되기 때문입니다.

Another advantage of the SoftDevice approach is it allows one hardware design to support multiple radio protocols or use cases, including the ability to design a custom protocol, which might lower product costs in companies with multiple similar in-house products based on a single PCB design.

SoftDevice 접근 방식의 또 다른 장점은 하나의 하드웨어 설계로 여러 무선 프로토콜이나 사용 사례를 지원할 수 있다는 점입니다. 여기에는 사용자 정의 프로토콜을 설계하는 기능이 포함되어 있어 단일 PCB 설계를 기반으로 여러 유사한 사내 제품을 보유한 회사의 경우 제품 비용을 낮출 수 있습니다.

Finally, the SoftDevice’s architecture is nonintrusive to application developers.

마지막으로, SoftDevice의 아키텍처는 애플리케이션 개발자에게 방해가 되지 않습니다.

Because it runs independently and the application does not need to link against any set of libraries, both SD and application updates can be performed separately with no dependencies, much in the way one can update a Linux kernel or user-space libraries independently without worrying about the other side being affected by the update.

독립적으로 실행되고 애플리케이션이 어떤 라이브러리 집합과도 연결할 필요가 없기 때문에 SD와 애플리케이션 업데이트를 별도로 종속성 없이 수행할 수 있습니다. 이는 한쪽이 업데이트의 영향을 받는지 걱정하지 않고 Linux 커널이나 사용자 공간 라이브러리를 독립적으로 업데이트할 수 있는 것과 비슷합니다.

On the down side, the SoftDevice requires system resources that will not be available for your own application’s use.

단점은 SoftDevice가 자신의 애플리케이션에서 사용할 수 없는 시스템 리소스를 필요로 한다는 것입니다.

The S110 SoftDevice allocates the bottom 80 KB of flash and 8 KB of SRAM, leaving you with 176 KB flash and 8 KB SRAM for your own application (assuming the 256 KB version of the nRF51822 is being used).

S110 SoftDevice는 하위 80KB 플래시와 8KB SRAM을 할당하여 사용자 애플리케이션에 176KB 플래시와 8KB SRAM을 남깁니다 (256KB 버전의 nRF51822를 사용한다고 가정).

The SoftDevice design also introduces latency and architectural limitations, as higher level code needs to make calls down to the SoftDevice from your higher-level code, which happens through software interrupts on the ARM core.

SoftDevice 디자인은 지연 시간과 구조적 한계를 야기합니다. 상위 레벨의 코드가 상위 레벨의 코드에서 SoftDevice로 호출을 내려야 하며 이는 ARM 코어의 소프트웨어 인터럽트를 통해 이루어집니다.

As with any big engineering task, the numerous benefits the SoftDevice brings to the table require some sacrifices, mainly around timing and hard real-time requirements.

모든 대규모 엔지니어링 작업과 마찬가지로 SoftDevice가 제공하는 수많은 이점은 주로 타이밍 및 엄격한 실시간 요구 사항과 관련하여 약간의 희생이 필요합니다.

Working with the nRF51822-EK

nRF51822-EK 작업

If you are interested in evaluating the nRF51822, the best platform to begin with is Nordic’s nRF51822-EK.

nRF51822를 평가하는 데 관심이 있다면 가장 좋은 플랫폼은 Nordic의 nRF51822-EK입니다.

As shown in Figure 5-1, this evaluation kit includes two development boards: the PCA10001 (shown on the left) and the PCA10000 (shown on the right).

그림 5-1에 표시된 것처럼 이 평가 키트에는 PCA10001 (왼쪽 표시)과 PCA10000 (오른쪽 표시)의 두 가지 개발 보드가 포함되어 있습니다.

The PCA10000 is a small USB dongle used primarily for debugging, either by simulating a central device via Nordic’s Master Control Panel or as a sniffer to push data out to Wireshark (both of which are discussed in Chapter 7).

PCA10000은 주로 디버깅에 사용되는 소형 USB 동글로, Nordic의 Master Control Panel을 통해 중앙 장치를 시뮬레이션하거나 Wireshark로 데이터를 푸시하는 스니퍼로 사용됩니다 (둘 다 7장에서 설명합니다).

But it’s also a full-featured development board on its own, with an integrated Segger J-Link that allows you to program and debug the firmware using a variety of development tools. nRF51822-EK (Nordic Semiconductors)

하지만 다양한 개발 도구를 사용하여 펌웨어를 프로그래밍하고 디버깅할 수 있는 통합 Segger J-Link가 있는 자체적으로 완전한 기능을 갖춘 개발 보드이기도 합니다. nRF51822-EK(Nordic Semiconductors)

The larger PCA10001 is the main development board in the kit. It breaks out all of the pins available on the nRF51822, enabling you to connect I2C or SPI sensors or peripherals, talk to other devices over UART, etc.

더 큰 PCA10001은 키트의 기본 개발 보드입니다. nRF51822에서 사용 가능한 모든 핀을 분리하여 I2C 또는 SPI 센서 또는 주변 장치를 연결하고 UART 등을 통해 다른 장치와 통신할 수 있습니다.

This board also includes a J-Link on board to program and debug the MCU, as well as some additional circuitry to measure power consumption and make prototyping and debugging easier.

이 보드에는 MCU를 프로그래밍하고 디버깅하기 위한 J-Link 보드뿐만 아니라 전력 소비를 측정하고 프로토타입 제작 및 디버깅을 더 쉽게 만드는 추가 회로도 포함되어 있습니다.

The UART output is optionally directed out over USB, for example, so you can easily visualize debug messages or send simple commands back to the MCU.

예를 들어 UART 출력은 선택적으로 USB를 통해 전달되므로 디버그 메시지를 쉽게 시각화하거나 간단한 명령을 MCU로 다시 보낼 수 있습니다.

It also features a CR2032 battery holder to allow the board to be powered by a small battery.

또한 CR2032 배터리 홀더가 있어 소형 배터리로 보드에 전원을 공급할 수 있습니다.

Examples and Toolchains

예제 및 툴체인

Nordic provides numerous examples (after registering your kit, as discussed in the note following this paragraph) based on this development kit, making it an easy choice if you just want to get started with something you know will work.

Nordic은 이 개발 키트를 기반으로 수많은 예제를 제공합니다 (이 문단 뒤의 참고 사항에서 설명한 대로 키트를 등록한 후). 따라서 작동할 것이라는 것을 알고 있는 것을 시작하려는 경우 쉬운 선택이 됩니다.

Most of the demo code uses Keil’s uVision (with the IAR toolchain as a second option), which is freely available from ARM for noncommercial use on projects smaller than 32 KB (which should actually cover a broad range of projects, because the SoftDevice is not included in the 32KB limit, only the application code).

데모 코드의 대부분은 Keil의 uVision (2번째 옵션으로 IAR 툴체인 사용)을 사용하는데, 이는 ARM에서 비상업적 용도로 32KB보다 작은 프로젝트에 무료로 사용할 수 있습니다 (실제로는 광범위한 프로젝트를 포괄해야 하는데, SoftDevice는 32KB 제한에 포함되지 않고 애플리케이션 코드만 포함되기 때문입니다).

You will need to create a MyPages account on Nordic Semiconductor’s website and register the serial number for your nRF51822-EK before you can access the latest demo code and development tools for this chipset.

이 칩셋에 대한 최신 데모 코드와 개발 도구에 액세스하려면 Nordic Semiconductor 웹사이트에서 MyPages 계정을 만들고 nRF51822-EK에 대한 일련 번호를 등록해야 합니다.

Some support materials and sample projects are also available for GNU-based tools, although GNU (and Eclipse) support is not as extensive as the support for Keil uVision.

GNU (및 Eclipse) 지원이 Keil uVision 지원만큼 광범위하지는 않지만 일부 지원 자료와 샘플 프로젝트도 GNU 기반 도구에 사용할 수 있습니다.

However, it is worth noting that developing full applications on GNU/Linux and Mac OS X is currently possible without having to resort to Windows.

하지만 현재 Windows에 의존하지 않고도 GNU/Linux 및 Mac OS X에서 전체 애플리케이션을 개발하는 것이 가능하다는 점은 주목할 가치가 있습니다.

To provide an open source option, we’ve also included a basic code base in the GitHub repository for this book.

오픈 소스 옵션을 제공하기 위해 이 책의 GitHub 저장소에 기본 코드 베이스도 포함했습니다.

This code is based on the freely available GNU toolchain, including makefiles, startup code, and some basic tools to program the flash using the onboard J-Link debuggers.

이 코드는 makefile, 시작 코드 및 온보드 J-Link 디버거를 사용하여 플래시를 프로그래밍하기 위한 일부 기본 도구를 포함하여 무료로 사용 가능한 GNU 도구 체인을 기반으로 합니다.