一、前言
E3 是芯馳半導體推出的高等級高功能安全的 MCU 產品。產品性能具有以下特點:
高認證等級
- 支持高達 ISO26262 ASIL-D 的安全功能開發
- 支持 125 攝氏度環溫應用場景
高性能
- 高實時算力滿足未來電子電氣架構需求
- 片內大容量 SRAM 滿足複雜應用開發需求
強大接口
- 通信接口豐富便於系統集成及降低 BOM 成本
- 具備面向未來汽車電子電氣架構的通信外設
- 多種不同類型接口輕鬆實現通信冗餘備份
存儲可擴展
- 支持通過串行和並行接口擴展 RAM
- 支持 eMMC、SD、NOR Flash、NAND Flash 等多種非易失性存儲
E3 SSDK PTG2.1 支持 Gateway 參考板,採用常見的 MCU SDK 架構:

圖 1.1 SDK 架構
與和 PTG1.0 的主要區別包括:
默認不依賴 RTOS:FreeRTOS 作為單獨的組件集成在 SDK 中(而不是一個層次),Driver demo 默認不啟動 FreeRTOS,應用可以根據需要,在自己的 main() 函數裡啟動 FreeRTOS 調度器。
不定義驅動抽象層,每個 IP 的 driver 直接向應用層提供接口。為每個驅動提供多個單獨的 demo 工程,本文主要介紹了 driver_demo 的 GPIO 模塊測試代碼,完成 GPIO 進入中斷後的輸入輸出。
本文主要介紹了 E3 SSDK PTG2.1 版本 boards\e3_gateway\driver_demo\spi 目錄下 sync 和 async_dma_two_spi_loopback 兩個例程代碼的分析。
硬體平台:芯馳 E3640 E3_GATEWAY_A03 開發板
軟體平台:SemiDrive_E3 SSDK PTG2.1
二、sync
本章介紹了 sync transmit demo流程,並完成了 自定義發送緩衝區 和 更換 SPI 控制器的測試。

圖 2.1 sync 流程框圖
- 硬體原理圖部分,這裡使用默認的 SPI5。

圖 2.2 硬體連接
- sync transmit demo 流程說明:
啟動後完成基礎配置, 其中 sdrv_spi_init() 用來匹配 spi 總線與主設備控制器,
sdrv_spi_config_device() 用來匹配 spi 總線與從設備,最後由 master 發起傳輸。

圖 2.3 Demo 流程分析
- __attribute__ ((__aligned__ (23))) 介紹:
該聲明將強制編譯器確保 在為變量分配空間時 採用 32 字節對齊方式。

圖 2.4 Spi bus module handler type
- 從設備 ③ 和 spi 控制器 ② 的配置介紹:

圖 2.5 從設備和控制器配置
- 修改示例代碼,發送自定義數據 (0xac 對應二進制數 10101100)

圖 2.6 Demo 修改和串口輸出
- 使用邏輯分析儀可以採集到自定義數據對應的波形
注意事項:僅僅 master 發送,用戶需要關注發送波形。

圖 2.7 採集結果
- 控制器換用為 SPI7 ,再次測試
- 將 Demo 中控制器配置換用為 SPI7。

圖 2.8 修改 Spi controller configuration
- 注意使用 SDConfigTool 配置 SPI7 的相關引腳,對應修改 c 中的相關代碼。

圖 2.9 修改對應引腳配置
- 運行後的串口顯示和邏輯分析儀採集結果:

圖 2.10 運行現象
三、async_dma_two_spi_loopback
本章節 Demo 使用 E3 晶片 SPI 控制器,兩路 SPI 一路(SPI5)作為 master 軟體 CS 另一路(SPI7)作為 slave,通過外部接線對接在一起進行數據交換(CS 腳都選擇 SS0)。
圖 3.1 流程框圖
- 硬體連接
- SPI5_SS0 GPIO_F2
- SPI5_SCLK GPIO_F5
- SPI5_MISO GPIO_F3
- SPI5_MOSI GPIO_F4
- SPI7_SS0 GPIO_S10
- SPI7_SCLK GPIO_S11
- SPI7_MISO GPIO_S12
- SPI7_MOSI GPIO_S13

圖 3.2 硬體連接示意圖
- 這裡使用了 DMA 進行數據的搬移。需要將 config.h 中的 CONFIG_SPI_ENABLE_DMA 使能。

圖 3.3 使能 DMA
SPI 控制器 DMA 相關的通道配置:

圖 3.4 DMA 通道 ID
- Demo 流程說明
啟動後完成基礎配置後,slave 先調用接口 sdrv_spi_async_transmit() 配置傳輸,然後 master 發起異步傳輸。

圖 3.5 基礎配置
spi_device_config 結構體內的傳輸寬度配置:

圖 3.6 傳輸寬度
slave 先調用接口配置傳輸,然後 master 發起傳輸。

圖 3.7 DMA 模式下的異步傳輸
- 使用 JLINK 下載鏡像到 e3_gateway 開發板,並啟動調試。
運行結果顯示如下:

圖 3.8 運行顯示
- 注意
四、參考文檔
《E3400_E3600_MCU_Datasheet_Rev00.16》
《SemiDrive_E3_SSDK_User_Guide》
《SD103_E3_REF_GATEWAY_ePOWERTRAIN產品用戶手冊》
歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Alan Li / 李亞楠
評論