반응형

전체 글 242

nRF52840 USB CDC ACM 이용

nRF52840 USB CDC ACM 이용1. USB CDC ACM 개요USB CDC ACM(Communication Device Class - Abstract Control Model)은 USB를 통한 시리얼 통신을 지원하는 USB 디바이스 클래스입니다. 이 클래스는 주로 모뎀, 시리얼 포트 에뮬레이터와 같은 통신 장치에서 사용됩니다. nRF52840 모듈은 USB CDC ACM을 통해 컴퓨터 또는 다른 USB 호스트 장치와 시리얼 데이터를 주고받을 수 있습니다. 이는 UART(Universal Asynchronous Receiver-Transmitter) 인터페이스를 통해 시리얼 통신을 구현하는 것과 유사한 동작을 제공하며, USB를 통해 더 안정적이고 고속으로 데이터 전송이 가능합니다.2. USB ..

nRF52 2024.09.07

nRF52840에서 FatFs 사용 - 파일 시스템

nRF52840에서 FatFs를 사용하여 외부 플래시 메모리에 데이터를 저장하고 읽는 방법에 대해 설명합니다. 이 글에서는 FAT/exFAT 파일 시스템을 지원하는 FatFs의 특징과 nRF52 시리즈에서 FatFs를 설정하고 사용하는 방법을 다룹니다.1. FatFs의 주요 특징FatFs는 소형 임베디드 모듈을 위해 설계된 FAT/exFAT 파일 시스템으로 다음과 같은 특징을 가지고 있습니다:Windows 및 Linux 호환 : FAT/exFAT 파일 시스템 지원으로, 다양한 운영 체제에서 호환 가능.플랫폼 독립적 : 다양한 플랫폼에 이식이 용이.작은 코드 및 작업 영역 : 프로그램 코드 및 메모리 사용량이 적음.다양한 구성 옵션 :다중 볼륨 지원 (물리적 드라이브 및 파티션)여러 ANSI/OEM 코드 ..

nRF52 2024.09.06

nRF52840 SAADC, ADC 활용

ADC는 아날로그 신호를 샘플링하여 이를 디지털 값으로 변환하는 역할을 수행합니다. 이 기능은 센서 데이터나 외부 아날로그 신호를 디지털 시스템에서 처리할 때 필수적입니다. SAADC(Single-Ended Analog-to-Digital Converter)는 단일 종단 아날로그-디지털 변환기로, 하나의 아날로그 입력 채널에 대해 동작하며 이를 디지털 값으로 변환합니다. nRF52840와 같은 마이크로컨트롤러에서 주로 온도 센서나 조도 센서와 같은 아날로그 센서의 신호를 디지털 값으로 변환하여 처리할 때 사용됩니다.1. SAADC 주요 특징단일 종단 변환: nRF SAADC는 하나의 아날로그 입력 채널에 대해 동작합니다. 차동 입력(differential input)이 아닌 단일 종단(single-end..

nRF52 2024.09.05

nRF52840 QSPI 드라이버 활용

QSPI(Quad Serial Peripheral Interface)는 SPI(Serial Peripheral Interface)의 확장된 버전으로, 네 개의 데이터 라인을 사용하여 데이터를 전송하기 때문에 빠르고 효율적인 통신이 가능합니다. nRF52840와 같은 일부 nRF52 시리즈 칩은 QSPI를 지원하여 외부 플래시 메모리와의 빠른 데이터 전송이 가능하며, 이를 통해 시스템의 성능을 높일 수 있습니다. 이 글에서는 nRF52840에서 QSPI를 설정하고 활용하는 방법을 설명합니다.1. nRF52840 QSPI의 특징빠른 통신 속도: nRF52840은 빠른 통신 속도를 이용해 외부 플래시 메모리와의 통신이 가능하며, 이를 통해 효율적인 외부 메모리 관리가 가능합니다.풀 듀플렉스 통신: QSPI는 ..

nRF52 2024.09.04

nRF52840 SPI 드라이버 활용하기

SPI(Serial Peripheral Interface)는 마이크로컨트롤러와 다양한 주변 장치 간의 고속 데이터 통신을 위한 시리얼 통신 프로토콜 중 하나입니다. 주로 짧은 거리에서 고속 데이터 전송이 필요한 응용 프로그램에 사용되며, 마스터-슬레이브 구조를 기반으로 여러 슬레이브 장치가 하나의 마스터에 의해 제어될 수 있습니다.1. SPI의 특징1.1. 전이중(Full-Duplex) 통신SPI는 전이중 통신을 지원하며, 마스터와 슬레이브가 동시에 데이터를 주고받을 수 있습니다.1.2. 동기식(Synchronous) 통신마스터는 클럭을 제공하여 통신을 동기화합니다. 이 클럭은 SCLK(Serial Clock) 라인을 통해 전달됩니다.1.3. 데이터 라인:MOSI(Master Out Slave In): ..

nRF52 2024.09.03

nRF52840 TWI(I2C) Slave 드라이버 활용하기

nRF52840은 블루투스 5.0과 멀티프로토콜을 지원하는 고성능 SoC(System on Chip)로, 다양한 통신 인터페이스를 제공하며, 그중 TWI(Two-Wire Interface)는 I2C(Inter-Integrated Circuit)와 유사한 프로토콜로 두 개의 선(SCL, SDA)을 통해 데이터를 주고받는 통신 방식입니다. TWI Slave 장치는 TWI Master의 명령에 따라 데이터를 수신하거나 전송하는 역할을 수행합니다.이 글에서는 nRF52840에서 TWI Slave 드라이버를 설정하고 구현하는 방법에 대해 설명합니다. 이를 통해 TWI Master와 안정적으로 통신할 수 있는 소프트웨어를 개발할 수 있습니다.1. TWI Slave 드라이버 설정TWI Slave 드라이버를 설정하기 ..

nRF52 2024.09.02

nRF52840 TWI(I2C) Master 드라이버 활용하기

TWI(Two-Wire Interface)는 I2C(Inter-Integrated Circuit)로도 알려진 직렬 통신 프로토콜입니다. 이 글에서는 nRF52840에서 TWI Master를 구현하는 방법에 대해 설명합니다. TWI Master는 TWI 통신을 주도하며, Slave 장치에 Clock을 공급하고 명령을 보내거나 데이터를 수신합니다.1. TWI Master 드라이버 준비TWI Master 드라이버를 초기화하기 위해서는 nrf_drv_twi_config_t 구조체를 이용하여 SDA 및 SCL 핀, TWI 통신 속도를 설정하고, nrf_drv_twi_init() 함수를 호출하여 드라이버를 초기화해야 합니다. 이후, nrf_drv_twi_enable() 함수를 호출하여 TWI Master 드라이버를..

nRF52 2024.09.01

nRF52840 TWI I2C 설정 가이드

TWI(Two-Wire Interface)는 마이크로컨트롤러와 주변 장치 간의 데이터 통신을 위해 주로 사용되는 통신 프로토콜입니다. TWI는 I2C(Inter-Integrated Circuit)와 거의 동일한 특징을 가지며, 기능적으로도 유사합니다. 이 프로토콜은 여러 장치 간의 효율적이고 간단한 데이터 전송 방법을 제공하며, 주로 센서, 메모리 장치, 확장 모듈 등의 통신에 사용됩니다.TWI(I2C)는 전송 속도와 통신 규격에 따라 다양한 장치 간의 통신을 지원하며, 하드웨어 구성 또한 비교적 간단합니다. 표준화된 프로토콜을 사용하기 때문에, 여러 제조사의 장치들 간에도 상호 운용성이 높아, 이를 익혀두는 것은 유용할 것입니다.1. TWI 하드웨어 구조TWI는 단 두 개의 신호선을 사용하여 통신을 수..

nRF52 2024.08.31

nRF52840 UART 통신 가이드

UART(Universal Asynchronous Receiver/Transmitter)는 디바이스 간에 비동기적인 시리얼 통신을 제공하는 하드웨어 인터페이스와 프로토콜입니다. UART는 송신(TX)과 수신(RX) 핀을 통해 데이터를 주고받으며, 통신 속도는 Baud rate(초당 신호 요소의 수)로 설정됩니다. 일반적으로 UART는 저속 통신 방식으로 알려져 있지만, Flow Control을 활용해 데이터 흐름을 제어함으로써 고속 통신을 구현할 수 있습니다.이 가이드는 nRF52 SDK 환경에서 UART 모듈을 설정하고 사용하는 방법을 설명합니다.1. UART 모듈 준비1.1. SDK 설정 파일 수정 (sdk_config.h)UART 모듈을 사용하기 위해 sdk_config.h 파일에서 관련 설정을 활..

nRF52 2024.08.30

nRF52840 DK 보드 GPIO 기본 설정부터 인터럽트 활용까지

1. GPIO 입력/출력 제어 (nRF52840 DK 보드)nRF52840 DK 보드에는 4개의 버튼과 4개의 LED가 있으며, 이들은 모두 GPIO를 통해 제어할 수 있습니다. LED는 P0.13부터 P0.16까지 연결되어 있으며, 버튼은 P0.11, P0.12, P0.24, P0.25에 연결되어 있습니다. 이러한 GPIO 핀 번호는 소스 코드의 pca10056.h 헤더 파일에 정의되어 있습니다.1.1. GPIO 설정nrf_gpio.h 파일에는 GPIO 설정을 위한 함수들이 정의되어 있습니다. 이 함수들을 사용하면 GPIO를 입력 또는 출력으로 설정할 수 있으며, 추가적인 세부 설정도 가능합니다. 아래는 nrf_gpio_cfg 함수를 사용한 예시입니다.__STATIC_INLINE void nrf_gpi..

nRF52 2024.08.29
반응형