0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于恩智浦MPC5744P的電機(jī)FOC控制中電流的采樣

CHANBAEK ? 來源:嵌入式程序猿 ? 作者:小猿 ? 2023-04-20 14:17 ? 次閱讀

摘要

本篇筆記主要記錄基于恩智浦MPC5744P的電機(jī)FOC控制中電流的采樣。

準(zhǔn)備工作

  1. 安裝S32DS for PA, 因?yàn)槲覀冊赟32DS下開發(fā)MPC5744P。
  2. 安裝S32DS 的SDK, 我們使用最新版3.0.3

ADC

恩智浦的MPC5744P,含有的ADC子模塊有四個(gè),我們使用ADC0的通道0,和ADC1的通道0來做電流的同步采樣,通過PWM觸發(fā)CTU,CTU事件觸發(fā)ADC電流采樣,在CTU的中斷中去獲取電流的ADC值,經(jīng)過濾波后就可以做電流算法的閉環(huán)控制,這個(gè)芯片的ADC 有兩種模式。

圖片

圖片

我們使用電機(jī)控制模式,使用內(nèi)部集成的CTU去觸發(fā)ADC轉(zhuǎn)換。也可以采用etimer去觸發(fā)ADC,這次我們采用CTU觸發(fā),配置ADC,CTU時(shí)鐘為80M.

圖片

CTU

CTU的利用可以減少CPU的負(fù)擔(dān),具體的描述可以參考手冊下面的描述

圖片

CTU框圖

圖片

圖片

因?yàn)樽鲭姍C(jī)控制,電流的同步采樣非常關(guān)鍵,根據(jù)這個(gè)框圖可以看到,PWM的重裝載可以作為觸發(fā)CTU,CTU產(chǎn)生ADC命令請求去ADC轉(zhuǎn)換。CTU操作的模式有觸發(fā)模式和順序模式。我們采用觸發(fā)模式。

這里需要注意的是CTU的FIFO是不同的,0和1用來做快速采樣,而2和3用來配置作為低速采樣。

圖片

配置和開發(fā)

在S32DS開發(fā)環(huán)境中配置CTU和ADC,

圖片

圖片

ADC配置

圖片

更多參數(shù)的配置請參考收據(jù)手冊,這個(gè)需要認(rèn)真閱讀手冊配置,可以參考例程。配置完成后,生成驅(qū)動,如果沒有錯(cuò)的話,我們這里需要完成CTU的中斷去獲取ADC值。

驅(qū)動添加

需要初始化ADC和CTU,添加相應(yīng)的代碼,使用生成的配置結(jié)構(gòu)體

圖片

然后還需要完成CTU的中斷,

圖片

轉(zhuǎn)換結(jié)果的獲取有兩種API, 可以根據(jù)自己需要選擇,第一種API

/ FUNCTION *********************************************************************

  • Function Name : CTU_DRV_GetConvData
  • Description : This function returns the conversion data result aligned according
  • to the alignment parameter.
  • Implements : CTU_DRV_GetConvData_Activity
  • END**************************************************************************/

uint16_t CTU_DRV_GetConvData (const uint32_t instance, const uint32_t fifoIdx, ctu_data_align_t alignment)

第二種API

/ FUNCTION *********************************************************************

  • Function Name : CTU_DRV_GetConvResult
  • Description : This function gets the full conversion result information, with
  • the conversion data aligned according to the alignment parameter.
  • Implements : CTU_DRV_GetConvResult_Activity
  • END**************************************************************************/

void CTU_DRV_GetConvResult (const uint32_t instance, const uint32_t fifoIdx, const ctu_data_align_t alignment, ctu_conv_result_t * const result)

兩種都可以正確獲取到ADC值,獲取到原始值以后還需要做一些濾波來處理,這些流給大家去實(shí)現(xiàn),因?yàn)槟愕膽?yīng)用不一樣,可能采取的濾波算法也不一樣。有時(shí)候還需要采用多種濾波算法實(shí)現(xiàn)對不同干擾的抗擾能力。

測試

添加完代碼,沒有問題后就可以編譯下載到板子上調(diào)試觀察,可以看到,正確實(shí)現(xiàn)了電流的多路采樣,可以采集多組值,測量下這里就給大家簡單觀察下打斷點(diǎn)采集到的結(jié)果。

圖片

同時(shí)CTU還有其他一些觸發(fā)源,大家也可以實(shí)驗(yàn)一下,也可以軟件觸發(fā)。但在電機(jī)控制中,為了達(dá)到同步和快速的電流采樣,都是用觸發(fā)同步采樣,提供給算法實(shí)施閉環(huán)控制。有興趣的可以多研究研究。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 恩智浦
    +關(guān)注

    關(guān)注

    14

    文章

    5817

    瀏覽量

    106322
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6391

    瀏覽量

    543762
  • 電機(jī)
    +關(guān)注

    關(guān)注

    142

    文章

    8874

    瀏覽量

    144850
  • FOC
    FOC
    +關(guān)注

    關(guān)注

    20

    文章

    316

    瀏覽量

    42567
  • MPC5744P
    +關(guān)注

    關(guān)注

    1

    文章

    9

    瀏覽量

    8140
收藏 人收藏

    評論

    相關(guān)推薦

    設(shè)計(jì)了一個(gè)關(guān)于mpc5744p板子,電路設(shè)計(jì)基本上都是按照mpc5744p電路,請問為什么燒寫程序燒不進(jìn)去?

    我有個(gè)問題,我設(shè)計(jì)了一個(gè)關(guān)于mpc5744p板子,電路設(shè)計(jì)基本上都是按照mpc5744p電路,為什么燒寫程序燒不進(jìn)去??
    發(fā)表于 06-29 11:45

    MPC5744P的Overlay RAM相關(guān)資料分享

    內(nèi)容提要引言1. MPC5744P的Overlay RAM工作原理介紹2 MPC5744P的Flash Overlay配置詳解2.1 平臺Flash標(biāo)定區(qū)域描述字寄存器配置字
    發(fā)表于 11-04 07:53

    如何學(xué)習(xí)MPC5744P CAN總線?

    如何學(xué)習(xí)MPC5744P CAN總線?
    發(fā)表于 02-07 08:58

    如何對MPC5744P進(jìn)行編程?

    目前我正在學(xué)習(xí)如何對 MPC5744P 進(jìn)行編程,但在嘗試創(chuàng)建簡單的 UART 應(yīng)用程序時(shí)目前無法解決此問題。當(dāng)我將 UART + CAN 示例用于 MPC5744P 時(shí),UART 和 CAN 在環(huán)
    發(fā)表于 03-16 08:36

    MPC5744P標(biāo)志如何保留在RAM

    我正在為 MPC5744P 編寫引導(dǎo)加載程序。當(dāng)在 APP 檢測到下載請求時(shí),看門狗復(fù)位用于從 APP 跳轉(zhuǎn)到引導(dǎo)加載程序。我想將此請求標(biāo)志保存在 RAM 。當(dāng)項(xiàng)目重置時(shí),標(biāo)志如何保留在 RAM
    發(fā)表于 03-27 09:10

    如何為MPC5744P配置內(nèi)存保護(hù)單元?

    我想知道更多關(guān)于如何為 MPC5744P 配置內(nèi)存保護(hù)單元,我需要知道如何使用這個(gè)配置器。
    發(fā)表于 04-04 09:03

    如何讀取或訪問MPC5744P控制的通用寄存器R1?

    大家好,如何讀取或訪問MPC5744P控制的通用寄存器R1?謝謝
    發(fā)表于 04-06 07:26

    求助,索取有關(guān)在帶有MPC5744P MCU的RD33771 EVB啟用鎖步功能的文檔

    關(guān)在 MPC5744P MCU 上啟用鎖步功能的詳細(xì)文檔,我將不勝感激。具體來說,我正在尋找有關(guān)在 S32 Design Studio IDE 為此特定微控制器啟用鎖步模式所需的配置步驟和選項(xiàng)的信息。 我在
    發(fā)表于 05-24 08:27

    MPC5744P_DataSheet

    最近(2015年1月)飛思卡爾MPC5744p芯片資料,需要的速來。
    發(fā)表于 02-24 16:30 ?36次下載

    NXP MPC5744P 32位200MHzMCU開發(fā)方案

    本文介紹了MPC5744P主要特性,框圖,以及三相PSMS馬達(dá)開發(fā)板MTRCKTSPS5744P主要特性,框圖和電路圖。
    的頭像 發(fā)表于 06-17 18:54 ?2.6w次閱讀
    NXP <b class='flag-5'>MPC5744P</b> 32位200MHzMCU開發(fā)方案

    基于MPC5744P的CAN驅(qū)動開發(fā)和測試

    S32DS下開發(fā)MPC5744P。 安裝S32DS 的SDK, ?我們使用最新版3.0.3 CAN MPC5744P控制器局域網(wǎng)絡(luò)C
    的頭像 發(fā)表于 09-03 11:35 ?4156次閱讀
    基于<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b><b class='flag-5'>MPC5744P</b>的CAN驅(qū)動開發(fā)和測試

    基于MPC5744P的SAE J1939協(xié)議棧開發(fā)

    和標(biāo)準(zhǔn),特別是J1939-21和J1939-81。 CAN MPC5744P控制器局域網(wǎng)絡(luò)CAN,跟我們之前使用的
    的頭像 發(fā)表于 09-24 16:15 ?8156次閱讀
    基于<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b><b class='flag-5'>MPC5744P</b>的SAE J1939協(xié)議棧開發(fā)

    MPC5744P控制器芯片手冊

    MPC5744P控制器芯片手冊免費(fèi)下載。
    發(fā)表于 03-04 16:06 ?23次下載

    MPC5744p的CAN通信波特率計(jì)算

    本篇筆記主要記錄MPC5744p的CAN通信波特率計(jì)算,以及需要注意的問題。
    的頭像 發(fā)表于 07-10 17:40 ?2583次閱讀

    MPC5744p的CAN通信波特率如何計(jì)算

    本篇筆記主要記錄MPC5744p的CAN通信波特率計(jì)算,以及需要注意的問題
    的頭像 發(fā)表于 01-20 14:58 ?1955次閱讀
    <b class='flag-5'>MPC5744p</b>的CAN通信波特率如何計(jì)算