nRF52 SPI 

 

 

Features

 

SPI 수량 : nRF52840 의 경우 SPI master 로 사용시 4개, spi slave 로 사용시 3개. 

최대속도 : 32MHz  . 주의 : 32MHz 는 SPIM3 에서만 지원되는 사양. 그외 SPI Master. SPI Slave 모두  SPI 클럭 최대 8MHz임. 

 

 

 

 

 

Function Block 

 

 

 

 

 

 

 

from : http://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.0.pdf  page 367 

 

 

 


 

SPIS - SPI slave with EasyDMA

from : http://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.0.pdf  page 389 

 

- ultra low power 

- SPI mode0,1,2,3 지원. 레지스터 CONFIG 의 CPOL, CPHA 에서 설정. 

-- SPI Mode 0 : CPOL = 0 (Leading), CPHA = 0 (Active High)

-- SPI Mode 1 : CPOL = 0 (Leading), CPHA = 1 (Active Low) 

-- SPI Mode 2 : CPOL = 1 (Trailing), CPHA = 0 (Active High)

-- SPI Mode 3 : CPOL = 1 (Trailing), CPHA = 1 (Active Low)

 

 

 

 

 

 

 

SPIS Pin configuration 

1. SPI 의 핀 설정 레지스터. 

 

PSEL.CSN : CSN 

PSEL.SCK : SCK 

PSEL.MOSI : MOSI 

PSEL.MISO : MISO 

 

2. SPI slave 가 disabled 상태에서만 위 레지스터 설정해야한다. 

3. SPI slave 용으로 사용되는 핀의 입출력방향은 모두 Input 으로 설정(MISO 마저도 Input 으로 설정)한 이후에 SPI slave enable 시켜야한다. 

4. MISO 핀은 CSN 으로 선택되지 않은 상태에서는 high impedance 상태이다.  

 

 

 

Errata - SPI  

- 칩 출하 이후 발견된 오류 및 조치법들. 

- ERRATA 웹페이지: https://infocenter.nordicsemi.com/topic/errata_nRF52840_Rev2/ERR/nRF52840/Rev2/latest/err_840_new.html

 

Errta 214 SPIS : Incorrect data transferred. 

- 상황 : CSN low 인 상태에서 SPIS 를 disabled 시킨경우. 

- 오류 : 신규 SPI 전송시 첫바이트에 이전 전송시의 바이트가 전송되어 오류 발생함. 

- 조치 : After disabling the SPISn instance (writing SPISn->ENABLE = SPIS_ENABLE_ENABLE_Disable), apply the following code:

 

*(volatile uint32_t *) (NRF_SPISn_BASE + 0xA4ul) = 1ul;

*(volatile uint32_t *) (NRF_SPISn_BASE + 0xACul) = 1ul;

 

 

 

 

nRF52840 최고속도 얼마냐 는 질문에 답변 달린거 보면 SPIM Instance 3 는 34MHz 까지 된다는 답변. -2018년 .

 

nRF52840, 16 MHz or 32 MHz SPI? - Nordic DevZone

 

devzone.nordicsemi.com

 

SPIS 첫통신 1 비트 시프트 증상 있다는 질문. 

 

SPIS data shift on first transfer - Nordic DevZone

 

devzone.nordicsemi.com

위 링크의 질문자와 동일한 오류 증상 경험했었는데, 나의 경우엔 STM32 의 오류로 결론 났었음. 상세 아래 링크. 

 

STM32. 버그 해결. SPI 통신. 첫 SPI 송수신 데이터 비트 밀림 . 해결방법.

개요 버그 요점 : STM32 를 SPI Master 로 설정하여 SPI Slave 와 통신시 STM32 부팅후 첫 SPI 통신시 비트 밀림 오류 있음. 버그 상황 상세 환경. STM32 라이브러리 버전 : STM32Cube FW_L4 V1.14.0 (2020년 1월..

igotit.tistory.com

 

연관 

기초 지식  SPI Mode 이해 . https://igotit.tistory.com/2088

 

SPI mode 4종. CPOL, CPHA

SPI Mode 4종. SPI 통신 규격의 CPOL(0, 1) , CPHA(0, 1) 상태에 따라 4종의 SPI mode 가 있다. SPI mode 0 : CPOL = 0 , CPHA = 0 SPI mode 1 : CPOL = 0 , CPHA = 1 SPI mode 2 : CPOL = 1 , CPHA = 0 SPI mode..

igotit.tistory.com

 

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

상위 정리글

 

https://igotit.tistory.com/244 의 nRF52

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF5..

igotit.tistory.com

 


첫등록 : 2019년 1월 13일

최종수정 : 2019년 10월 25일

 

단축주소 : https://igotit.tistory.com/2048

 


 

 

 

Posted by 리치굿맨
TAG ,

댓글을 달아 주세요