S32K144EVB를 이용하여 SPI 테스트를 하고, FreeMASTER로 모니터링하는 실습을 진행해보도록 하겠습니다.
우선 NXP에서 사용하는 SPI의 종류에 대해 설명드리겠습니다.
FlexIO SPI
- FlexIO (Flexible I/O): FlexIO는 다목적 입출력 프레임워크로서, 소프트웨어로 프로그램 가능한 퍼포먼스 및 플렉시블한 입출력 기능을 제공합니다.
- FlexIO SPI: FlexIO SPI는 FlexIO를 사용하여 SPI를 구현한 것입니다. 이는 특히 리소스가 제한된 시스템에서 소프트웨어로 SPI를 구현하고자 할 때 유용합니다. 마이크로컨트롤러의 FlexIO 모듈을 활용하여 다양한 입출력 기능을 구현할 수 있으며, SPI 통신이 가능한 장치와 통합하여 사용할 수 있습니다.
LPSPI (Low Power Serial Peripheral Interface)
- LPSPI (Low Power SPI): LPSPI는 저전력 환경에서 동작하는 SPI 통신 프로토콜을 제공합니다. 이는 전력 소모를 최소화하면서도 효율적인 데이터 전송을 가능하게 하는 것이 특징입니다.
- LPSPI의 주요 특징
- 저전력 운영: 저전력 모드에서 동작하여 배터리로 구동되는 장치 및 전력 소비에 민감한 응용프로그램에 적합합니다.
- 다양한 설정: 클럭 속도 및 데이터 전송 포맷과 같은 다양한 설정을 지원하여 다양한 장치와의 통신에 유연하게 대응할 수 있습니다.
- DMA (Direct Memory Access) 지원: 데이터 전송을 위한 DMA를 지원하여 프로세서의 부담을 줄여 더 효율적인 데이터 전송이 가능합니다.
- 다중 마스터 및 슬레이브 모드: 여러 개의 SPI 장치를 동시에 다룰 수 있도록 다중 마스터 및 슬레이브 모드를 지원합니다.
실습은 LPSPI를 사용해서 진행하겠습니다.
SPI 실습 구성도
위 그림과 같이 마스터와 슬레이브 LPSPI 인터페이스를 활용하여 ADC 데이터를 주고받고, 마스터는 받은 데이터를 활용하여 FlexTimer PWM을 제어하는 시스템을 구현하는 실습을 진행하겠습니다.
S32K144EVB를 이용한 SPI 실습
1-1. LPSPI0 포터 설정
위 표를 참조하여 포터 설정을 진행하도록 하겠습니다.
1-2. LPSPI0 설정 : CS
1-3. LPSPI0 설정 : SCK
1-4. LPSPI0 설정 : SIN
1-5. LPSPI0 설정 : SOUT
1-6. LPSPI0 설정 결과
위와 같은 과정을 통해 설정을 마쳤다면, LPSPI0 즉 Master의 설정이 완료되었습니다.
2-1. LPSPI1 포터 설정
위 사진을 참조하여 포터 설정을 진행하도록 하겠습니다.
2-2. LPSPI1 설정 : CS
2-3. LPSPI1 설정 : SCK
2-4. LPSPI1 설정 : SIN
2-5. LPSPI1 설정 : SOUT
2-6. LPSPI1 설정 결과
위와 같은 과정을 통해 설정을 마쳤다면, LPSPI1 즉 Slave의 설정이 완료되었습니다.
3-1. SPI Peripherals 설정 : LPSPI 1 추가
3-2. SPI Peripherals 설정 : LPSPI0 Master 설정
3-3. SPI Peripherals 설정 : LPSPI0 Slave 설정
3-4. SPI Peripherals 설정 : LPSPI2 추가
3-5. SPI Peripherals 설정 : LPSPI1 Master 설정
3-6. SPI Peripherals 설정 : LPSPI1 Slave 설정
4. Update Code하여 생성된 코드 확인
5. Build 하여 에러가 없는것을 확입합니다.
이제 SPI 실습을 위한 Setting이 마무리 되었습니다.
다음 포스팅에 이어서 실습 진행하겠습니다.
'Embedded > MCU' 카테고리의 다른 글
S32K144EVB를 이용한 SPI 실습(2) (0) | 2024.01.24 |
---|---|
S32K144EVB를 이용한 PWM 실습(1) (2) | 2024.01.24 |
S32K144EVB를 이용한 ADC 실습(2) (0) | 2024.01.24 |
S32K144EVB를 이용한 ADC 실습(1) (0) | 2024.01.24 |
S32K144EVB를 이용한 LED 실습 (0) | 2024.01.24 |