본문 바로가기

SPI

(46)
#STM32G-SSM EVM - Arduino 코드로 SPI 테스트 [STM32G-SSM] 보드에서 SPI 핀맵은 아래 그림과 같이 할당되어 있다. #define PIN_SPI_MOSI PA_4 #define PIN_SPI_MISO PA_3 #define PIN_SPI_SCK PA_0 #define PIN_SPI_SS PC_14 Arduino 코드로 SPI출력 하면 멈춰 버린다. variant.h 파일에서 핀맵 맞추고 PinMap_SPI_MOSI[0] 에 SPI2가 디폴트가 되도록 수정 했다. #include unsigned char spixfer(unsigned char Data) { return SPI.transfer(Data); } int cnt = 0; void loop() { Serial.println(cnt++); digitalWrite(12, HIGH); d..
STM32G0 SSM - STM32CubeIDE SPI DMA 테스트 STM32CubeIDE 를 이용해서 STM32G031의 SPI DMA 테스트를 진행 해 보자. 우선 STM32CubeIDE에서 STM32G031용 프로젝트를 생성하고 기본 페리를 설정한다. SPI 클럭은 최대 32Mhz 까지 가능하다. SPI DMA 채널을 추가 SPI DMA 인터럽트 추가 GPIO 핀 스피드 설정 SPI클럭을 최대 주파수로 사용하기 때문에 GPIO 스피드 설정도 VeryHigh 로 설정해 주어야 한다. STM32G031 SPI DMA 처기 테스트 코드 일반 SPI통신과 DMA 통신의 차이를 확인하기 위해 두가지 방식이 가능하도록 코드를 작성 했다. #define _SPI_DMA_USE1 #define hSPIhspi2 #define SPIx_TIMEOUT_MAX ((uint32_t)0x..
#ESPArduinoEXP - ESP8266 SPI 테스트 (40Mhz) ESP8266의 SPI는 IO12(SO), IO13(SI), IO13(CLK) 에 HSPI으로 할당 되어 있다. 특징으로 ESP8266의 SPI 클럭속도는 80Mhz로 상당히 빠르다고 하니 한번 테스트 해 보았다. ESP8266 SPI 테스트 코드 #include void setup() { pinMode(15, OUTPUT); digitalWrite(15, 1); Serial.begin(115200); SPI.begin(); SPI.setFrequency(40000000); } int i = 0; void loop() { Serial.println(i); SPI.transfer(i++); delay(500); } 40Mhz로 설정하고 SPI.transfer() 함수를 호출 하면 SCLK 핀으로 출력되는 ..
ESP8266 SPI 테스트 - MAX31855 를 이용한 써모 커플 온도 읽기 ESP8266 SPI 테스트 - MAX31855 를 이용한 써모 커플 온도 읽기 [ESP8266-SSM EVM] 보드의 SPI포트는 IO12~IO14에 할당 되어 있다. Arduino Code 이므로 라이브러리 함수를 사용하면 쉽게 출력 할수 있다. SPI 방식의 MAX31855 온도 센서 모듈을 이용하여 온도 값을 읽어 오는 예제를 테스트 해 보았다. MAX31855 온도 센서 모듈은 SSM-EVM Type 핀맵에 호환되고 SSM-EVM 확장 테스트 보드에 연결하면 쉽게 테스트 가능하다. MAX31855를 테스트 하기 위해 기존 SPI 코드를 이용해도 되지만 Ardino 예제를 이용해 보고 싶어서 Arduino 라이브러리를 검색해서 추가 하였다. 기본 제공 예제를 이용하면 써모커플의 온도 값을 가져오는..
MSP432 EVM - SPI테스트 MSP432 EVM - SPI테스트 [MSP432 EVM] 보드의 SPI 포트는 UCB1 P6.2, P6.3, P6.4, P6.5에 할당되어 있다. SPI로 핀을 할당하기 위해 코드에서 아래와 같이 설정해 주면 된다. void PinMuxConfig(void){ // // Configure P6.3 for EUSCI_B1_SPI_I2C EUSCI_B1_SPI_I2C.CLK // MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P6, GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION); // // Configure P6.4 for EUSCI_B1_SPI_I2C EUSCI_B1_SPI_I2C.SIMO // MAP_GPIO_setAsP..
TM4C123 - SPI 테스트 (3축 가속도 센서) TM4C123 - SPI 테스트 (3축 가속도 센서) TM4C123 의 SPI 기능을 테스트 해 보았다.최대 SPI클럭이 25 MHz까지 동작 가능하고 FIFO를 내장하고 있다. 특이사항으로 4채널의 SPI블럭을 사용할 수 있어서 SPI블록이 많이 필요한 어플리케이션에 좋을것 같다. TM4C123 EVM 보드에서는 PA2, PA3, PA4, PA5 에 SPI를 할당해 두었다. TM4C123 의 SPI블록도 TM4C123 의 SPI 핀맵TM4C 는 최대 4채널의 SPI모듈을 제공한다. 핀맵을 아래와같이 설정 가능하다. TM4C123 의 SPI 초기화 함수TI의 기존 Cortex-M3 코어와 코드를 호환하도록 제작되어 있기 때문에 코드 변경없이 그대로 사용가능하다. 물론 초기화 코드는 약간의 수정이 필요하다..
M052LBN EVM - SPI 테스트 M052LBN EVM - SPI 테스트 M052LBN는 저렴한 MCU임에도 2채널의 SPI를 제공한다. FIFO있고 SPI속도도 빠르다. M052LBN SPI 블록도 M052LBN SPI 초기화 함수void SPI0_Init(void){SYS_UnlockReg(); CLK_EnableModuleClock(SPI0_MODULE); /* Set multi function pin for SPI1 */ //SYS->P0_MFP = SYS_MFP_P04_SPISS1 | SYS_MFP_P05_MOSI_1 | SYS_MFP_P06_MISO_1 | SYS_MFP_P07_SPICLK1; SYS->P1_MFP = SYS_MFP_P15_MOSI_0 | SYS_MFP_P16_MISO_0 | SYS_MFP_P17_SPICLK0..
LM3S101 SPI 테스트 LM3S101 SPI 테스트 LM3S101 SPI 초기화 함수//----------------------------------------------------------------// SPI 통신 초기화 함수void SPI0_Init(void) {SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5);GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); SSIConfigSetExpClk(SSI0_BASE, Sy..

반응형