NXP S32K312 RTD SPI 通訊

關鍵字 :s32k312nxpipled開發板世平wpi

SPI 在一些高速通訊中能用到,特別是用於存放韌體,不妨來試試看 SPI 通訊。

一、引腳分佈

 

S32K312 的 SPI 分為 Flexio_SPI 和 LPSPI,前者通常用於 IO 模擬,本次使用 LPSPI 進行通信。查看原理圖可以看到 J26 有 LPSPI1 的引腳。


 

LPSPI1輸入/輸出MSCR
SCKPTB1446
PTB1547
南方PTB1648
PCS3PTB1749

 
二、模組配置


同樣新建專案後,雙擊 .mex 進入模組配置,比生成相應的初始配置程式碼更方便。進入後,首先添加 Port 和 DIO 模組,在 Port 模組中配置 4 條線的第 1 功能。



同時按照上一章的 IO 分布依序配置晶片引腳。



我們以中斷方式觸發,所以IntCtrl_IP也要加入進來,



配置完 IO 引腳後,接著添加第 2 復用功能,也就是 LPSPI 功能,切換到 SpiDriver 頁面,此處的 LPSPI1_PCS3 需要切換成 PCS3,其他可以保持預設值。



SpiGeneral頁同樣要確保是LPSPI1和SpiMaster,


 

配完後同樣是生成初始程式碼。

三、工程編輯

 

我們操作SpiMaster的主要介面在Lpspi_Ip.h、Lpspi_Ip.c裡,具體有Lpspi_Init/Lpspi_SyncTransmit/Lpspi_AsyncTransmit/Lpspi_Ip_UpdateTransferMode函數。在主函數中添加以下程式碼:

#include "Clock_Ip.h"

#include "Siul2_Port_Ip.h"

#include "Siul2_Dio_Ip.h"

#include "IntCtrl_Ip.h"

#include "Lpspi_Ip.h"

#include "Lpspi_Ip_Types.h"

uint8_t txBuff[]={0x11,0x22,0x33,0x44};
uint8_t rxBuff[4];

void LPSPI_SPI_IP_1_IRQHandler()
{

}

int main(void)
{
    /* 在這裡撰寫您的程式碼 */
    Clock_Ip_Init(Clock_Ip_aClockConfig);

Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals,g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals);
    IntCtrl_Ip_Init(&IntCtrlConfig_0);

Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_1);
   
    IntCtrl_Ip_InstallHandler(LPSPI1_IRQn, LPSPI_SPI_IP_1_IRQHandler, NULL_PTR);
    IntCtrl_Ip_EnableIrq(LPSPI1_IRQn);

Lpspi_Ip_UpdateTransferMode(Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_Instance_1.Instance,LPSPI_IP_INTERRUPT);

    while(1)
    {
    Lpspi_Ip_SyncTransmit(&Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_Instance_1,txBuff,rxBuff,4,0xff);
        Siul2_Dio_Ip_TogglePins(LED_BLUE_PORT, (1 << LED_BLUE_PIN));
       TestDelay(5000000);
    //Lpspi_Ip_AsyncTransmit(&Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_Instance_1,txBuff,rxBuff,4,NULL_PTR);
    //while(LPSPI_IP_IDLE==Lpspi_Ip_GetStatus(Lpspi_Ip_DeviceAttributes_SpiExternalDevice_0_Instance_1.Instance)){}
    }
    return exit_code;

}

 

同樣的操作編譯、模擬,這裡波形有問題:

 

 



此文章來自「S32K312 開發板評測活動」測評者:明祥軍



歡迎在博文下方留言評論,我們會及時回覆您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   作者:WPIg

更多資訊,請掃描 QR 碼關注我們!

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

:

評論