【SemiDrive G9 系列軟體開發】 PTG5.1.2 + MCAL_v1.3.0 adc hands on

關鍵字 :SemiDrive G9世平wpi軟體環境

一、測試環境

        SemiDrive 支持系統 G9 系列目錄中,PTG5.1.2 版本只適用於 G9H,其中 MCAL_v1.3.0 例程較為全面。最近進行了adc 模塊的例程測試,操作過程 hands on 如下:

註:此版本使用 eMMC Only 的啟動方式(撥碼:0001),不使用 OSPI Flash。

硬體:SemiDrive G9H ref A02 圖(1)

軟體:PTG5.1.2 + MCAL_v1.3.0

        搭建以及 G9H Ref A02 操作方法參考:《SD_G9_Quick_Start_Rev2.4.pdf》

圖(1)

 二、配置&Demo

  1. 引腳描述:

      參考《G9-H 處理器數據手冊》和《SD012_G9H_REF 硬體使用手冊》相關章節(表一和圖一),可以找到 ADC 的 4 個通道所在的引腳,後續可以單端輸入模擬量供 ADC 模塊轉換。

ADC 相關引腳的描述

表一 ADC 相關引腳的描述
硬體原理圖及引腳
圖一 硬體原理圖及引腳

  1. EB 配置

      該模塊在 EB 配置方面,相較於 E3 系列取消了部分 group 分配規則和限制,使用起來更加容易。

      下面依次進行說明:

       AdcUnit

       如下圖所示,AdcUnit 決定使用哪個 ADC(當前支持配置 ADC_0);

       該 ADC 的分頻係數為多少;ADC 工作時鐘 = ADC 的 root clock(400M) ÷ 分頻係數(AdcPrescale + 1),

       分頻係數會影響採樣率,分頻係數越大,實際 ADC 工作時鐘頻率越小,採樣率越低,反之亦然。

圖二 AdcUnit

圖二 AdcUnit

Group

進入 Group 配置界面,下面就所選項進行說明:

圖三 Group

圖三 Group

AdcGroupAccseeMode

選擇 ADC_ACCESS_MODE_SINGLE 時,後續的 AdcStreamingNumSamples 只能設置為 1,表示

該 Group 每次至多進行單輪採樣。

選擇 ADC_ACCESS_MODE_STREAMING 時,後續的 AdcStreamingNumSamples 可以設置 1~255,表示該 Group 每次可以進行 1~255 輪採樣。

AdcGroupConversionmode

       使用 SW 觸發的 Group 以上兩種模式都可選擇,需注意,若 SW 觸發的 Group 如果選擇 ADC_CONV_MODE_ONESHOT 模式,需配合使用 ADC_ACCESS_MODE_SINGLE。

AdcGroupId

       該參數決定了此 Group 在當前 ADC Unit 下的索引號,在單個 ADC Unit 下的 GroupId 應該具有唯一性。

AdcGroupTriggSrc

分別代表該 Group 是軟體觸發(SW)還是硬體觸發(HW)方式,硬體觸發暫不支持。

AdcStreamingBufferMode 有兩個狀態(循環 or  一次):

這個選項僅在 AdcGroupAccessMode 為 ADC_ACCESS_MODE_STREAMING 時,才會有意義。

AdcStreamingNumSamples

       該配置決定了 Group 採樣完成時,實際進行了多少輪的採樣,例如設置為3,實際每一次到達 ADC_STREAM_COMPLETED 狀態時(採樣完成),該 Group 所有通道實際進行了 3輪次採樣。Group 中所有通道的 3 輪採樣值會保存在 Adc_SetupResultBuffer(x, buffer)接口的 buffer 中。

        註:該參數只有在 ADC_ACCESS_MODE_STREAMING 下才可以設置大於 1,如果設置為 ADC_ACCESS_MODE_SINGLE 模式下,僅可以填寫 1。

AdcChannel

圖四 AdcChannel

圖四 AdcChannel

AdcPhysicalChannelId

       此配置主要用於生成關於 Channel 的唯一 ID 號,所有 Unit 下的此配置項應該具有唯一性。(當前硬體資源只支持配置 Ch0/1/2/3,其中 Ch0 為差分輸入,其餘為單端輸入)

AdcLogicalChannelId

       此配置項沒有實際作用,但是配置時需要注意,在單個 Unit 下,此 Id 不應該重複。

AdcChannelResolution

此選項決定 ADC 解析度,可選 12 位、10 位、8 位。

AdcSampleFrequency

       此項決定 ADC 通道採樣頻率,驅動初始化時會根據通道數及對應採樣頻率進行判斷是否超過 ADC 採樣頻率限制。

  1. 代碼和Log

       示例代碼流程如下:初始化完成後,綁定使能 adc 中斷(回調函數),調用以組為單位進行轉換的函數接口,每組轉換完成,讀出組的緩衝數組進行列印。

圖五 Demo代碼

圖五 Demo代碼

使用 ch0~3,其中 ch1 接地,ch3 連接電路中有分壓電阻,使之略低於 ch0 和 ch2。

Log 列印的各個通道的轉化值均能符合預期。

圖六 列印 log

圖六 列印 log

三、參考文獻

  1. 《SemiDrive_9Series_MCAL User Guide》
  2. 《G9 Series Processor Technical Reference Manual》

 

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



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

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

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

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

評論