基於 S32K344 之 FS26 寄存器操作

關鍵字 :SBCS32K344FS26 寄存器mcus32k3傳感器

一、FS26 簡介

        FS26 是 NXP 生產的系列汽車安全系統基礎晶片(SBC),提供多種電源選擇,具有多個開關模式穩壓器和低壓差穩壓器 (LDO) 來支持微控制器,傳感器,外設 IC 和通信接口。它能為系統和跟蹤調節器提供高精度的參考電壓,還能提供多種系統控制和診斷功能,包括模擬多路復用器、通用 I/O 引腳。本文主要介紹 FS26 的 SPI 通信方式下的寄存器讀寫操作。FS26 內部框圖如下:

FS26 內部框圖

二、開發板方案功能框圖 

開發板方案功能框圖 

FS26 與 MCU S32K344 使用的通信方式是 SPI。

三、S32K344 SPI 接口介紹

  • S32K3 系列 MCU 具有 6 個獨立的 SPI 模塊,序號為 SPI0-5,其特性為:
  • 傳輸速率
    • 高性能的 SPI0 在 loopback 模式時最高支持 20MHz 傳輸速率,普通模式下支持 15MHz;
    • 其他SPI 在選擇增強型引腳 (GPIO-STANDARD-PLUS) 的條件下,支持最高 15 MHz,GPIO-STANDARD 引腳支持 5MHz
  • Word size = 32 bits;Frame Size min = 4bit,一幀數據可以是一或多個 Word
  • 具有 4 words FIFO 緩存 TX 和 RX 數據,提高傳輸可靠性
  • SCK 時鐘信號的極性和相位均可配置,還可以配置時序延遲
  • 可在 master 模式下精細化調整 SPI 同步時鐘脈衝的時頻特徵,如 SCK 頻率,duty cycle,delays
  • 支持半雙工並行發送或接收,每個 Clock edge 可傳輸 1/2/4/8bit 數據
  • 下圖顯示了 S32K3 各型號支持 LPSPI 的個數,所有 SPI 的 Tx 和 Rx 都支持 DMA 請求
  • 每個 SPI 具有多根外設片選信號線,對應多個外設

S32K344 SPI 由其內部 LPSPI 模塊控制,主要由控制邏輯、移位寄存器、FIFO、外部 SPI 接口組成。

四、S32K344 SPI 配置

        1. 管腳配置

         通過 S32DS3.5 開發平台配置管腳配置工具根據原理圖 SPI 接口的對應 GPIO 管腳信號連接配置如下

管腳配置

        2. 時鐘配置

        使用的 S32K344 SPI 模塊是 LPSPI0 因此與此有關的時鐘是 LLPSPI0_CLK 此處配置為 24MHz ,如下圖所示:

時鐘配置 

時鐘配置

3. S32K344 外設 LPSPI 模塊參數配置

(1)添加 Lpspi 組件

S32K344 外設 LPSPI 模塊參數配置

(2)配置 SPI 硬體實例

SPI0 主機模式,失能 DMA 傳輸支持

配置 SPI 硬體實例
CPHA=1,CPOL=0,MSB 傳輸開始

CPHA=1,CPOL=0,MSB 傳輸開始

五、程序代碼介紹

1、SPI 初始化

Siul2_Port_Ip_Init (NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0) GPIO 初始化。

Lpspi_Ip_Init (&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_1_Instance_0_VS_0) 初始化LPSPI。

SPI 參數設置:  

        xSpiSetup.Spi = pSbcFs26ConfigPtr->pSpi->u32Spi;

        xSpiSetup.SyncTransmit = TRUE;

       xSpiSetup.Extension = pSbcFs26ConfigPtr->pSpi->pExt;

       xSpiSetup.NumberOfBytes =  SBC_FS26_COMM_FRAME_SIZE;

       xSpiSetup.Timeout = 10000U;

2、SPI 數據傳輸

       設置 SPI 參數完成後可調用 Sbc_Ip_SpiTransferExternal (&xSpiSetup, &au8SpiTxFrame[0], &au8SpiRxFrame[0]) 進行數據傳輸。

3、SPI 讀寄存器



Std_ReturnType Sbc_fs26_ReadRegister(boolean bIsFailSafe,

                                     uint8 u8Address,

                                     Sbc_fs26_RxFrameType* pRxData)

{

    Sbc_fs26_TxFrameType txData =

       {

        bIsFailSafe,

        u8Address,

        SBC_FS26_COM_READ,

        0U

    };

    Std_ReturnType eReturnValue = (Std_ReturnType)E_NOT_OK; /* Status. */

 

 

        eReturnValue = Sbc_fs26_TransferData(&txData, pRxData);

 

 

    return eReturnValue;

}


調用函數 Sbc_fs26_ReadRegister 
(boolean bIsFailSafe,uint8 u8Address,

Sbc_fs26_RxFrameType* pRxData) 可讀取寄存器數據。

函數參數

uint8 u8Address 寄存器地址,Sbc_fs26_RxFrameType* pRxData 存放讀取的寄存器數據。

4、SPI 寫寄存器

Std_ReturnType Sbc_fs26_WriteRegister (boolean bIsFailSafe,

                                      uint8 u8Address,

                                      uint16 u16WriteData)

{

    Sbc_fs26_TxFrameType txData =

    {

        bIsFailSafe,

        u8Address,

        SBC_FS26_COM_WRITE,

        u16WriteData

    };

    Std_ReturnType eReturnValue = (Std_ReturnType)E_NOT_OK; /* Status. */

        eReturnValue = Sbc_fs26_TransferData(&txData, NULL_PTR);

  

    return eReturnValue;

}

 

調用函數 Std_ReturnType Sbc_fs26_WriteRegister (boolean bIsFailSafe,

uint8 u8Address,uint16 u16WriteData)可讀取寄存器數據。

函數參數

uint8 u8Address 寄存器地址,uint16 u16WriteData 寫入寄存器的數據。

六、參考文獻

PB_FS26.pdf

S32K3XXRM.pdf





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

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


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


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

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

評論