精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

DSP28335的ADC模塊使用介紹

冬至子 ? 來(lái)源:龍一的編程life ? 作者:龍憨憨 ? 2023-11-08 10:37 ? 次閱讀

前言

DSP28335的ADC模塊使用介紹:

  • 12位ADC
  • 2個(gè)采樣保持器
  • 同步采樣或順序采樣,使用順序采樣
  • 輸入范圍0-3V
  • 時(shí)鐘配置為最高25MHz
  • 級(jí)聯(lián)模式或雙排序模式,采用級(jí)聯(lián)模式,8狀態(tài)排序器SEQ1和SEQ2構(gòu)成16狀態(tài)的SEQ
  • 選擇EPWMxSOCA作為觸發(fā)源啟動(dòng)ADC轉(zhuǎn)換,采樣頻率為10K

主要內(nèi)容:

1、ADC原理+DSP的ADC原理
2、具體程序

1、ADC轉(zhuǎn)換原理

ADC就是模數(shù)轉(zhuǎn)換器,將模擬量轉(zhuǎn)換為數(shù)字量,通常就是對(duì)電流、電壓等進(jìn)行采樣,然后進(jìn)行轉(zhuǎn)換,得到數(shù)字量,再在軟件中進(jìn)行編程換算得到實(shí)際的值。

A/D轉(zhuǎn)換一般要經(jīng)過(guò)取樣、保持、量化及編碼4個(gè)過(guò)程。28335的ADC模塊如Figure1-1所示。采樣數(shù)據(jù)通過(guò)通過(guò)傳輸至Analog MUX,然后送到EPWM SOCA處理,然后送至12位ADC轉(zhuǎn)換器模組進(jìn)行轉(zhuǎn)換,輸出到結(jié)果寄存器

轉(zhuǎn)換公式如下:

RealValue= SampleValue * 3.0f / 4096.0f

2、觸發(fā)方式

三種觸發(fā)方式可以開(kāi)始ADC轉(zhuǎn)換,具體如下:

  1. S/W軟件立即啟動(dòng)
  2. EPWM SOCA、SOCB轉(zhuǎn)換啟動(dòng)
  3. XINT2 ADC轉(zhuǎn)換開(kāi)始

采用EPWM SOCA啟動(dòng)方式

圖片

3、如何觸發(fā)ADC?

1、使用EPWM的SOCA觸發(fā);

AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Enable SOCA from ePWM to start SEQ1 
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;  // Enable SEQ1 interrupt (every EOS)

2、使能EPWMxSOCA信號(hào)的產(chǎn)生,以何種方式何時(shí)產(chǎn)生;

EPwm1Regs.ETSEL.bit.SOCAEN = 1;        // Enable SOC on A group
EPwm1Regs.ETSEL.bit.SOCASEL = 4;       // Select SOC from from CPMA on upcount CTR = CMPA且為向上計(jì)數(shù)是產(chǎn)生觸發(fā)事件
EPwm1Regs.ETPS.bit.SOCAPRD = 1;        // Generate pulse on 1st event  在第一個(gè)事件時(shí)產(chǎn)生SOCA信號(hào)
EPwm1Regs.CMPA.half.CMPA = 0x0080;    // Set compare A value

3、EPWM為up-down模式,觸發(fā)頻率為10K,時(shí)鐘為150MHz;

EPwm1Regs.TBPRD = 0x1D4C;              // Set period for ePWM1  7500  10K
EPwm1Regs.TBCTR = 0x0000U;        // 
EPwm1Regs.TBCTL.bit.CTRMODE = 2;      // up-down模式
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x00;  //   使用系統(tǒng)時(shí)鐘
EPwm1Regs.TBCTL.bit.CLKDIV = 0x00;

4、ADC初始化配置程序如下:

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
#include "DSP2833x_Adc.h"


#define ADC_usDELAY 5000L


Uint16 Sample_I = 0U;
float Real_I = 0.0f;
float Base_Current = 3.0f / 4096.0f;


void init_28335ADC_CLK(void)
{
  EALLOW;
  #define ADC_MODCLK 0x03
  SysCtrlRegs.HISPCP.all = ADC_MODCLK;
  EDIS;
}
// ADC初始化
void init_adc_config(void)
{
  extern void DSP28x_usDelay(Uint32 Count);


  EALLOW;
  SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
  ADC_cal();
  EDIS;
  AdcRegs.ADCTRL3.all = 0x00E0;  // Power up bandgap/reference/ADC circuits
  DELAY_US(ADC_usDELAY);         // Delay before converting ADC channels


  // Configure ADC
   AdcRegs.ADCMAXCONV.all = 0x000F;       // Setup 1 conv's on SEQ1  16個(gè)通道
   AdcRegs.ADCTRL1.bit.ACQ_PS = 0x1;


   AdcRegs.ADCTRL3.bit.SMODE_SEL = 0;  // 順序采樣
   AdcRegs.ADCTRL1.bit.CPS = 0;      // 對(duì)外設(shè)時(shí)鐘HSPCLK不分頻
   AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x0;  // ADC內(nèi)核時(shí)鐘不分頻 ADCCLK = HSPCLK / (CPS + 1) = 25MHz
   AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;  // 級(jí)聯(lián)排序模式
   AdcRegs.ADCTRL1.bit.CONT_RUN = 1;  // 連續(xù)模式
   AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1;  // 排序覆蓋


  // 轉(zhuǎn)換順序
   AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x00U; // Setup ADCINA0 as 1st SEQ1 conv.
   AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x01U;
   AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x02U;
   AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x03U;


   AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x04U;
   AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x05U;
   AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x06U;
   AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x07U;


   AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x08U;
   AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 0x09U;
   AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 0x0AU;
   AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0x0BU;


   AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0x0CU;
   AdcRegs.ADCCHSELSEQ4.bit.CONV13 = 0x0DU;
   AdcRegs.ADCCHSELSEQ4.bit.CONV14 = 0x0EU;
   AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0x0FU;


   AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Enable SOCA from ePWM to start SEQ1
   AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;  // Enable SEQ1 interrupt (every EOS)


   // Assumes ePWM1 clock is already enabled in InitSysCtrl();
   EPwm1Regs.ETSEL.bit.SOCAEN = 1;        // Enable SOC on A group
   EPwm1Regs.ETSEL.bit.SOCASEL = 4;       // Select SOC from from CPMA on upcount CTR = CMPA且為向上計(jì)數(shù)是產(chǎn)生觸發(fā)事件
   EPwm1Regs.ETPS.bit.SOCAPRD = 1;        // Generate pulse on 1st event  在第一個(gè)事件時(shí)產(chǎn)生SOCA信號(hào)
   EPwm1Regs.CMPA.half.CMPA = 0x0080;    // Set compare A value


   // 設(shè)置EPWM觸發(fā)源
   EPwm1Regs.TBPRD = 0x1D4C;              // Set period for ePWM1  7500  10K
   EPwm1Regs.TBCTR = 0x0000U;        // 
   EPwm1Regs.TBCTL.bit.CTRMODE = 2;      // up-down模式
   EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x00;  //   使用系統(tǒng)時(shí)鐘
   EPwm1Regs.TBCTL.bit.CLKDIV = 0x00;
}
// 轉(zhuǎn)換計(jì)算
interrupt void adc_isr(void)
{
  Sample_I = AdcRegs.ADCRESULT0 > >4;    // 采樣數(shù)據(jù)
  Real_I = (float)Sample_I * Base_Current;// 實(shí)際電流
}

注意


1、ADC通道、結(jié)果寄存器對(duì)應(yīng)關(guān)系:

AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x02U; // Setup ADCINA0 as 1st SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x03U;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x00U;
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x01U;


ADCINA2 - > AdcRegs.ADCRESULT0;
ADCINA3 - > AdcRegs.ADCRESULT1;
ADCINA0 - > AdcRegs.ADCRESULT2;
ADCINA1 - > AdcRegs.ADCRESULT3;

由上面的代碼可知,你的通道對(duì)應(yīng)哪個(gè)CONVxx,則結(jié)果就存在哪個(gè)結(jié)果寄存器AdcRegs.ADCRESULTxx:
CONV00------------------AdcRegs.ADCRESULT0
CONV01------------------AdcRegs.ADCRESULT1

CONV15------------------AdcRegs.ADCRESULT15

這個(gè)對(duì)應(yīng)關(guān)系是固定不變的,而A/D輸入通道,可以根據(jù)自己選擇排序控制寄存器的哪四位即CONVxx輸入,然后進(jìn)行轉(zhuǎn)換。

2、為什么結(jié)果寄存器的值由進(jìn)行右移4位

結(jié)果寄存器是16位的,而28335的ADC模塊是12位的,一般使用的是映射在外設(shè)幀2,左對(duì)齊方式,,故前4位是保留的,所以需要右移4位才能得到實(shí)際值。

圖片

ADC結(jié)果寄存器是雙映射。外設(shè)幀2(0x7108-0x7117)中的位置為2等待狀態(tài),且為左對(duì)齊。外設(shè)幀0空間(0x0B00-0x0B0F)的位置對(duì)CPU訪(fǎng)問(wèn)是1等待狀態(tài)和對(duì)于DMA訪(fǎng)問(wèn)是0等待狀態(tài),右對(duì)齊。在A(yíng)DC的高速/連續(xù)轉(zhuǎn)換使用期間,使用0等待狀態(tài)位置進(jìn)行ADC結(jié)果到用戶(hù)內(nèi)存的快速轉(zhuǎn)換。

DSP2833x_Headers_nonBIOS.cmd中
ADC_MIRROR : origin = 0x000B00, length = 0x000010 /* ADC Results register mirror /
ADC : origin = 0x007100, length = 0x000020 /
ADC registers */

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

    關(guān)注

    31

    文章

    5317

    瀏覽量

    120008
  • DSP28335
    +關(guān)注

    關(guān)注

    22

    文章

    58

    瀏覽量

    40589
  • 采樣保持器
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    8971
  • ADC模塊
    +關(guān)注

    關(guān)注

    1

    文章

    19

    瀏覽量

    11060
  • EPWM模塊
    +關(guān)注

    關(guān)注

    1

    文章

    4

    瀏覽量

    1869
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP28335外部中斷的使用

    處理器的外部中斷主要用于捕抓外部輸入的高低電平。本篇文章將介紹DSP28335的外部中斷的使用。
    的頭像 發(fā)表于 07-07 16:41 ?4354次閱讀
    <b class='flag-5'>DSP28335</b>外部中斷的使用

    DSP28335的EPWM模塊

    DSP28335的EPWM模塊周期最長(zhǎng)可為多少
    發(fā)表于 08-22 15:37

    dsp28335引腳圖ADc引腳如何連接

    dsp28335引腳圖ADc引腳如何連接
    發(fā)表于 03-09 15:51

    基于DSP28335的電能質(zhì)量監(jiān)測(cè)儀器設(shè)計(jì)

    基于DSP28335的電能質(zhì)量監(jiān)測(cè)儀器設(shè)計(jì)
    發(fā)表于 11-02 11:22 ?50次下載

    Dsp28335中斷的方法

    Dsp28335中斷的方法Dsp28335中斷的方法
    發(fā)表于 01-08 14:17 ?14次下載

    基于DSP28335的三電平SVPWM算法研究

    基于DSP28335的三電平SVPWM算法研究
    發(fā)表于 04-15 18:29 ?55次下載

    DSP28335中文手冊(cè)

    TI公司 DSP28335中文資料數(shù)據(jù)手冊(cè)
    發(fā)表于 05-19 11:17 ?161次下載

    DSP28335研發(fā)筆記_ccs5.2

    DSP28335研發(fā)筆記
    發(fā)表于 12-30 15:04 ?29次下載

    DSP28335串口通信(SCI)的理論,介紹和應(yīng)用

    DSP28335串口通信(SCI)的理論,介紹和應(yīng)用
    發(fā)表于 09-04 09:28 ?37次下載
    <b class='flag-5'>DSP28335</b>串口通信(SCI)的理論,<b class='flag-5'>介紹</b>和應(yīng)用

    基于DSP28335串口通信(SCI)的理論,介紹和應(yīng)用

    基于DSP28335串口通信(SCI)的理論,介紹和應(yīng)用
    發(fā)表于 09-04 14:07 ?29次下載
    基于<b class='flag-5'>DSP28335</b>串口通信(SCI)的理論,<b class='flag-5'>介紹</b>和應(yīng)用

    dsp28335如何入門(mén):程序設(shè)計(jì)步驟

    本文首先介紹dsp28335的概念,其次介紹dsp28335電氣特性及特點(diǎn),最后詳細(xì)闡述了關(guān)于dsp28335的程序設(shè)計(jì)步驟。
    發(fā)表于 05-23 17:09 ?2w次閱讀

    dsp28335開(kāi)發(fā)板中文資料匯總(dsp28335最小系統(tǒng)_引腳圖_封裝_初始化程序)

    本文主要介紹dsp28335開(kāi)發(fā)板最小應(yīng)用系統(tǒng)設(shè)計(jì)、dsp28335引腳圖功能和dsp28335封裝及dsp28335初始化程序。
    發(fā)表于 05-24 17:25 ?6.4w次閱讀
    <b class='flag-5'>dsp28335</b>開(kāi)發(fā)板中文資料匯總(<b class='flag-5'>dsp28335</b>最小系統(tǒng)_引腳圖_封裝_初始化程序)

    使用DSP28335控制電機(jī)的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用DSP28335控制電機(jī)的資料合集免費(fèi)下載包括了:電機(jī)控制原理圖,硬件手冊(cè),H橋直流電刷電機(jī)控制,DSP28335使用程序,DSP28335電機(jī)控制開(kāi)發(fā)
    發(fā)表于 05-18 08:00 ?165次下載
    使用<b class='flag-5'>DSP28335</b>控制電機(jī)的資料合集免費(fèi)下載

    DSP28335學(xué)習(xí)筆記(5):GPIO介紹及使用

    在前面的章節(jié)中,我們對(duì)DSP28335系統(tǒng)初始化過(guò)程有了一個(gè)初步的了解,下面的章節(jié)我們開(kāi)始外設(shè)的應(yīng)用。
    的頭像 發(fā)表于 07-02 15:52 ?8880次閱讀
    <b class='flag-5'>DSP28335</b>學(xué)習(xí)筆記(5):GPIO<b class='flag-5'>介紹</b>及使用

    研旭DSP28335實(shí)用版-硬件測(cè)評(píng)

    電子發(fā)燒友網(wǎng)站提供《研旭DSP28335實(shí)用版-硬件測(cè)評(píng).pdf》資料免費(fèi)下載
    發(fā)表于 10-09 15:19 ?3次下載
    研旭<b class='flag-5'>DSP28335</b>實(shí)用版-硬件測(cè)評(píng)