SemiDrive E3 SSDK driver_demo SPI 介紹

關鍵字 :SemiDriveE3SSDK driverSPI

一、前言

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 流程框圖

 

  1. 硬體原理圖部分,這裡使用默認的 SPI5。



圖 2.2 硬體連接

 

  1. sync transmit demo 流程說明:

啟動後完成基礎配置, 其中 sdrv_spi_init() 用來匹配 spi 總線與主設備控制器,

sdrv_spi_config_device() 用來匹配 spi 總線與從設備,最後由 master 發起傳輸。



圖 2.3 Demo 流程分析

 

  1. __attribute__ ((__aligned__ (23))) 介紹:

該聲明將強制編譯器確保 在為變量分配空間時 採用 32 字節對齊方式。


圖 2.4 Spi bus module handler type

  1. 從設備 ③ 和 spi 控制器 ②  的配置介紹:



圖 2.5 從設備和控制器配置

 

  1. 修改示例代碼,發送自定義數據 (0xac 對應二進制數 10101100)


圖 2.6 Demo 修改和串口輸出

 

  1. 使用邏輯分析儀可以採集到自定義數據對應的波形

注意事項:僅僅 master 發送,用戶需要關注發送波形。



圖 2.7 採集結果

  1. 控制器換用為 SPI7 ,再次測試

 

  1. 將 Demo 中控制器配置換用為 SPI7。


圖 2.8 修改 Spi controller configuration

 

  1. 注意使用 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 流程框圖

 

  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 硬體連接示意圖

  1. 這裡使用了 DMA 進行數據的搬移。需要將 config.h 中的 CONFIG_SPI_ENABLE_DMA 使能。


圖 3.3 使能 DMA

 

SPI 控制器 DMA 相關的通道配置:


圖 3.4 DMA 通道 ID

 

  1. Demo 流程說明

啟動後完成基礎配置後,slave 先調用接口 sdrv_spi_async_transmit() 配置傳輸,然後 master 發起異步傳輸。

 

圖 3.5 基礎配置

 

spi_device_config 結構體內的傳輸寬度配置:


圖 3.6 傳輸寬度

 

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


圖 3.7 DMA 模式下的異步傳輸

 

  1. 使用 JLINK 下載鏡像到 e3_gateway 開發板,並啟動調試。

運行結果顯示如下:


圖 3.8 運行顯示

 

  1. 注意
事項注意外部接線錯誤時,會導致Slave傳輸無法完成而異常。

  

四、參考文檔

《E3400_E3600_MCU_Datasheet_Rev00.16》

《SemiDrive_E3_SSDK_User_Guide》

《SD103_E3_REF_GATEWAY_ePOWERTRAIN產品用戶手冊》



歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com

作者:Alan Li / 李亞楠

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

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

評論