개요. STM32L4x6 SPI | |
3개의 SPI : SPI1, SPI2, SPI3. SPI 최대 클럭 : fpclk / 2. 80MHz 시스템 클럭인경우 최대 40MHz.가능. 4bit~16bit data size NSS pulse mode 가능. Rx FIFO : 32bit. DMA 가능. Tx FIFO : 32bit. DMA 가능. Master or Slave / Multi master mode 가능. Function Block MOSI : Master out slave in. MISO : Master in slave out SCK : SPI clock out. NSS : Slave selection pin.설정에 따라 아래와 같은 3개중의 하나로 동작. 1. slave select. 2. synchronize the data frame. 3. detect conflict between multiple masters. SPI통신 기본 결선방법. from : RM0351 STM32L4x6 Reference Manual page 1290~ | |
|
상세. SPI NSS Pin. | |
핀의 입력/ 출력 설정 가능. slave mode 인 경우 : NSS 핀을 입력으로 설정하여 상적인 chip select기능으로 사용. master 측에서 CS 출력 신호로 제어. master mode 인 경우 : NSS 핀을 출력 혹은 입력으로 설정가능. 입력으로 사용하는 경우 : multimaster bus collisiion 방지 용도로 사용하기 위하여. 출력으로 사용하는 경우 : 통상적인 SPI Master 의 chip select 기능임. - 단 SPI slave 가 1개일때만 사용가능한것. - 복수개의 slave를 제어해야하는 경우엔 GPIO 핀 복수개를 chip select 용도로 사용해야함. Software NSS management - 레지스터 SPIx_CR1의 SSM bit 값을 1로 한 경우. - MCU의 SPI가 slave mode 일때만 유의하며, 레지스터 SPIx_CR1의 SSI bit 에 설정된 값으로 slave select 정보핸들링됨. 즉, 외부 SPI Master 의 SPI CS 출력핀을 STM32의 NSS에 연결하지 않고 사용하게 되므로 NSS핀은 다른 용도로 사용가능. Hardware NSS management - 레지스터 SPIx_CR1의 SSM bit 값을 0으로 한 경우. - 세부적으로 레지스터 SPIx_CR1의 SSOE bit 값에 따라 아래와 같이 2가지 다른 작동을 한다. (1) SSOE = 1 : NSS output enable. MCU SPI 가 master 일때만 사용되는 것이며, NSS 핀의 출력이 하드웨어적으로 1/0 제어된다. 레지스터 SPIx_CR2의 NSSP bit = 0인 경우, 레지스터 SPIx_CR1의 SPE bit = 1 이 되면 NSS 출력값이 0으로 되고, SPE bit 값이 0이되면 NSS pin 에 1출력한다. 즉, SPI enable 되어 있는 중에는 NSS pin 에 0 이출력되고, SPI eidable 되면 NSS pin 에 1 출력된다. 레지스터 SPIx_CR2의 NSSP bit = 1인 경우, NSS출력에는 매번의 통신마다 펄스타입으로 출력하게된다. (2) SSOE = 0 : NSS outpu disable. bus 상에 master가 여러개 있는 bus(즉, multimaster 환경) 에 stm32 spi가 연결되는 경우에 사용한다. | |
|
본 글 포함된 상위 정리장소 |
///814.
'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글
WiFi module. SN820X, BCM43362+STM32F2xx (0) | 2017.01.11 |
---|---|
STM32. ST-LINK Utility. (0) | 2016.08.19 |
STM32. SPI 인터럽트 방식. (0) | 2016.07.15 |
STM32. GPIO 속도 향상. (0) | 2016.07.15 |
STM32. UART 특성 시험. (0) | 2016.06.28 |
댓글