본문 바로가기
임베디드 개발/TMS320F2838x (C28x)

TMS320F28388D ] SPI high-speed mode

by eteo 2023. 11. 8.

 

 

TMS320F2838x에서 지원하는 최대 SPI Clock speed는 기본적으론 12.5MHz인데 High-speed mode를 사용하면 50MHz까지 가능하다.

 

 

 

 

High-speed mode를 사용하기 위한 제약사항과 사용 방법을 알아보자.

 

 

 

 

 

먼저 연결 시 특정 핀 구성을 따라야만한다.

 

manual

 

 

 

 


칩에 SPI 모듈이 4개있는데 각 SPI는 아래 GPIO핀 먹스 옵션을 사용해야만 High-speed SPI를 사용할 수 있다.

 

 

datasheet

 

 

 

 

 

 

 

그리고 capacitive load 때문에 High-speed mode는 single master에 single slave 연결만 지원한다.

 

 

Reference : https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/602774/tms320f28377d-high-speed-to-both-spi-a-and-spi-b

 

TMS320F28377D: High-speed to both SPI-A and SPI-B ? - C2000 microcontrollers forum - C2000™︎ microcontrollers - TI E2E supp

 

e2e.ti.com

 

 

 

 

 

소스코드상에서 해야할 일은?

 

SPI baud rate의 최대값은 LSPCLK/4 이다. 이건 바꿀 수 없다.

대신 LSPCLK는 defualt로는 SYSCLK/4 = 50MHz인데, SYSCLK/1 = 200MHz로 변경해주면 SPI baud rate를 최대로 50MHz로 설정할 수 있다.

 

// device.c
void Device_init(void)
{
	//...
    SysCtl_setLowSpeedClock(SYSCTL_LSPCLK_PRESCALE_1);
    //...
}

// device.h
#define DEVICE_LSPCLK_FREQ          (DEVICE_SYSCLK_FREQ / 1)

// 초기화 코드
SPI_setConfig(base, lspclkHz, protocol, mode, 50000000, dataWidth);
SPI_enableHighSpeedMode(base);