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

(2)配置 SPI 硬體實例
SPI0 主機模式,失能 DMA 傳輸支持

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
更多資訊,請掃碼關注我們!
評論