TI C2000 f28388d SPI Tx and SPI Rx with multiple chip select GPIOs

조회 수: 15 (최근 30일)
Mohamed Shaheen
Mohamed Shaheen 2024년 7월 30일
댓글: Mohamed Shaheen 2024년 8월 2일
My application requires connecting SPI to multiple devices using multiple chip select GPIOs. I tried to make the "Chip select pin" as a variable but it didn't work. How can I implement this use case with multiple chip selects?

답변 (1개)

R
R 2024년 8월 2일
To implement SPI communication with multiple chip select (CS) lines using the C28x SPI Transmit block, you first need to configure GPIO pins as digital output pins using GPIO Digital Output blocks.
For each of your peripherals/sensors/devices, assign a unique SPI module (SPI_A, SPI_B, SPI_C, SPI_D) to each one. Then, use GPIO Write blocks to control the chip select lines before and after data transmission (e.g., GPIO11 for SPI_A, GPIO12 for SPI_B).
It's better to create subsystems for each SPI module (e.g., SPI_Transmit_A, SPI_Transmit_B). Inside each subsystem, add an input port for data, a GPIO Write block to set/unset the CS pin low/high, and an SPI Transmit block for the corresponding SPI module.
Using separate SPI modules and individual GPIO chip select pins simplifies the design by isolating channels, reducing complexity, and ensuring independent device control.
Refer to the example here to understand the working in more detail: https://www.mathworks.com/help/ti-c2000/ug/using-spi-to-read-write-example.html
Alternatively, you might want to use the C28x SPI Controller Transfer block as it combines both transmit and receive operations into a single block, facilitating full-duplex communication, which seems to align with the title of your question. The setup/configuration remains largely the same. Refer to the documentation to know more about the ports and parameters you need to set: https://www.mathworks.com/help/ti-c2000/ref/c28xspicontrollertransfer.html
  댓글 수: 1
Mohamed Shaheen
Mohamed Shaheen 2024년 8월 2일
Thank you @R. My question is about using the same SPI master to communicate with multiple SPI slave devices by selecting a different chip select GPIO for each device. In my use case I have more SPI devices than SPI masters.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by