Nordic Nrf528xx를 사용해 보자 nrf52840(MDBT50Q)으로 커스텀 보드를 만들어 보자

nrf52840은 Arduino에 채택되었습니다.
앞으로도 다양한 보드가 나올 것 같지만,
이번, MDBT50Q로 비콘을 제작했기 때문에 자작 보드를 만들 때의 주의점 등을 소개합니다.



입수 정보



현재, 판매되고 있는 모듈은, 다방면에 걸쳐 있어, 세계적으로 보면, Raytec의 시리즈가 중심일까라고 생각됩니다.
ぅ t : ///b ㅅ와 th. 토키 /
일본에서는 주식회사 후쿠미가 상류를 담당하고 있었습니다만, 스위치 사이언스로 일반 판매하고 있습니다.
htps //w w. 슈 tch-s 시엔세. 코 m / 가타 g / ㎃ / 809 /
국내 메이커의 제품보다 저렴하게 개발을 할 수 있게 되었다고 말할 수 있습니다.

덧붙여 롯트 구입은, 주식회사 후쿠미로 대응해 받을 수 있다고 합니다.
htps : // 후쿠미. 이. jp/이런 ct

또, 국내 메이커가 좋다고 하는 분은, 가가 디바이스씨등에 상담하면 좋은 것 같습니다.

GPIO 설정



SDK의
\components\boards\pca10056.h
nrf52840:pca10056.h
nrf52832:pca10040.h

예를 들어, 다음과 같이 설명됩니다.
#define LED_1          NRF_GPIO_PIN_MAP(0,17)

핀 설정을 변경하려면 뒤의 (0,17)을 변경하십시오.

디버거



J-LINK EDU MINI 등을 사용하고 있습니다.
J-LINK EDU MINI는 Digikey로 2,354엔(2019년 8월 2일 현재)로 구입 가능합니다.
아키즈키 전자에서도 취급 해 주면 좋지만 ...

불행히도 ST 마이크로의 Nucleo에 관한 ST-Link를 J-LinkOB화해도
nrf52840에서는 사용할 수 없습니다.
이 때문에 큰 J-Link나 위를 사용하게 됩니다.
제 제작한 것은, 큰 J-Link와 접속 커넥터를 제작해 접속하고 있습니다.


또한 별도로 Cmcis-Dap이나 Daplink를 사용하면 쓰기 가능합니다.

여기도 참조하십시오.
htps : // 이 m / d 등 fts / 09c86에 01d37에 f1db9244 / 에 t

32.768 kHz 외부 크리스탈



nrf52xx 계열의 모듈에는 32.768 kHz의 크리스탈이 내장되어 있지 않은 것이 많이 있습니다.
사양으로는 XTAL SMD 2012, 32.768kHz, 9pF, ±20ppm입니다.
이 때문에 외부에 크리스탈을 준비해야 하지만,
정밀도가 엄격하기 때문에, 잘 움직이지 않는 것이 있는 것 같습니다.
* 크리스탈이 없으면 라디오를 발신할 수 없습니다.

아래 파일의 해당 부분을 수정하여 내장 클럭으로 동작하게 됩니다.
SDK의
\config\nrf52840\config\sdk_config.h

나는 다음을 변경했다.
#define NRF_SDH_CLOCK_LF_SRC 1
#define NRF_SDH_CLOCK_LF_RC_CTIV 0
#define NRF_SDH_CLOCK_LF_ACCURACY 7

참고 : nRF52 XTAL을 사용하지 않고 RC 클럭으로 BLE 통신
htp : // bg. 41. 이 m/? 예d=384

이하, 변경 후의 것입니다.
//==========================================================

// <h> Clock - SoftDevice clock configuration

//==========================================================
// <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.

// <0=> NRF_CLOCK_LF_SRC_RC 
// <1=> NRF_CLOCK_LF_SRC_XTAL 
// <2=> NRF_CLOCK_LF_SRC_SYNTH 

#ifndef NRF_SDH_CLOCK_LF_SRC
#define NRF_SDH_CLOCK_LF_SRC 0
//#define NRF_SDH_CLOCK_LF_SRC 1
#endif

// <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
#ifndef NRF_SDH_CLOCK_LF_RC_CTIV
#define NRF_SDH_CLOCK_LF_RC_CTIV 16
//#define NRF_SDH_CLOCK_LF_RC_CTIV 0
#endif

// <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
// <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
// <i>  if the temperature has not changed.

#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2
//#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0
#endif

// <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.

// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 

#ifndef NRF_SDH_CLOCK_LF_ACCURACY
#define NRF_SDH_CLOCK_LF_ACCURACY 0
//#define NRF_SDH_CLOCK_LF_ACCURACY 7
#endif

// </h> 
//==========================================================

좋은 웹페이지 즐겨찾기