色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談CW32系列模數轉換器(ADC)

jf_pJlTbmA9 ? 來源:武漢芯源半導體 ? 作者:武漢芯源半導體 ? 2023-10-25 15:43 ? 次閱讀

模數轉換器ADC)的主要功能是將模擬量轉換為數字量,方便MCU進行處理。下面以CW32L083為例介紹CW系列的模數轉換器的特點和功能,并提供演示實例。

一、概述

CW32L083 內部集成一個 12 位精度、最高 1M SPS 轉換速度的逐次逼近型模數轉換器 (SAR ADC),最多可將 16 路模擬信號轉換為數字信號?,F實世界中的絕大多數信號都是模擬量,如光、電、聲、圖像信號等,都要由 ADC 轉換成數字信號,才能由 MCU 進行數字化處理。

二、主要特性

? 12 位精度

? 可編程轉換速度,最高達 1M SPS

? 16 路輸入轉換通道:13 路外部引腳輸入 - 內置溫度傳感器 - 內置 BGR 1.2V 基準 - 1/3 VDDA 電源電壓

? 4 路參考電壓源(Vref):- VDDA 電源電壓 - ExRef(PB00)引腳電壓 - 內置 1.5V 參考電壓 - 內置 2.5V 參考電壓

? 采樣電壓輸入范圍:0 ~ Vref

多種轉換模式,全部支持轉換累加功能 - 單次轉換 - 多次轉換 - 連續轉換 - 序列掃描轉換 - 序列斷續轉換

? 支持單通道、序列通道兩種通道選擇,最大同時支持 8 個序列

? 支持輸入通道電壓閾值監測

? 內置信號跟隨器,可轉換高阻抗輸入信號

? 支持片內外設自動觸發 ADC 轉換

? 支持 ADC 轉換完成觸發 DMA

三、轉換時序

ADC 的轉換時序如下圖所示:

wKgZomUDxUWAZYCDAADC3UVV5Hc265.png

向 ADC 控制寄存器 ADC_CR0 的 EN 位域寫入 1,使能 ADC 模塊。

ADC_CR0.EN 由 0 變為 1 約 40μs 后 ADC_ISR.READY 標志位置 1,表示模擬電路初始化完成,可以開始進行 ADC 轉換。

向 ADC 啟動寄存器 ADC_START 的 START 位域寫入 1,啟動 ADC 轉換,轉換完成后硬件自動清零。

ADC 工作時鐘 ADCCLK,由系統時鐘 PCLK 經預分頻器分頻得到,通過控制寄存器 ADC_CR0 的 CLK 位域可選擇 1 ~ 128 分頻

四、工作模式

ADC 控制寄存器 ADC_CR0 的 MODE 位域配置 ADC 工作模式

啟動 ADC 轉換,可通過向 ADC 啟動寄存器 ADC_START 的 START 位域寫 1;也可通過其他外設來觸發。

wKgaomR4F26ATOmXAAEQE8ffK-g415.jpg

五、實際案例

GTIM1定時器定時1S,定時器1S中斷觸發啟動ADC轉換,采樣AIN1,并通過GTIM2以PWM方波輸出ADC采樣值:PWM占空比50%,周期為1Hz-5000Hz,對應ADC的0-4095采樣值。

1.配置ADC測試IO口

voidADC_PortInit(void)
{
REGBITS_SET(CW_SYSCTRL->AHBEN,SYSCTRL_AHBEN_GPIOA_Msk);//打開GPIO時鐘
REGBITS_SET(CW_SYSCTRL->APBEN2,SYSCTRL_APBEN2_ADC_Msk);//打開ADC時鐘
PA01_ANALOG_ENABLE();//setPA01asAIN1INPUT
}

2.LED初始化

voidLED_Init(void)
{
GPIO_InitTypeDefGPIO_InitStructure={0};
REGBITS_SET(CW_SYSCTRL->AHBEN,SYSCTRL_AHBEN_GPIOC_Msk);//打開GPIO時鐘
/*ConfiguretheGPIO_LEDpin*/
GPIO_InitStructure.Pins=GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_Init(CW_GPIOC, GPIO_InitStructure);
PC02_SETLOW();//LEDsareoff.PC03_SETLOW();
}

3.PWM IO初始化

voidPWM_PortInit(void)
{
GPIO_InitTypeDefGPIO_InitStructure={0};
/*PA5PWM輸出*/
__RCC_GPIOA_CLK_ENABLE();
/*ConfigurethePWMoutputpin*/
GPIO_InitStructure.Pins=GPIO_PIN_5;
GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_Init(CW_GPIOA, GPIO_InitStructure);
PA05_AFx_GTIM2CH1();
}

4.GTIM初始化

voidGTIM_Init(void)
{
GTIM_InitTypeDefGTIM_InitStruct={0};

//REGBITS_SET(CW_SYSCTRL->APBEN1,SYSCTRL_APBEN1_GTIM1_Msk);//打開GTIM1
__RCC_GTIM1_CLK_ENABLE();//打開GTIM1時鐘GTIM_InitStruct.Mode=GTIM_MODE_TIME;
GTIM_InitStruct.OneShotMode=GTIM_COUNT_CONTINUE;
GTIM_InitStruct.Prescaler=GTIM_PRESCALER_DIV1024;
GTIM_InitStruct.ReloadValue=62499ul;//T=1s.
GTIM_InitStruct.ToggleOutState=DISABLE;
GTIM_TimeBaseInit(CW_GTIM1, GTIM_InitStruct);
GTIM_ITConfig(CW_GTIM1,GTIM_IT_OV,ENABLE);
NVIC_ClearPendingIRQ(GTIM1_IRQn);
NVIC_EnableIRQ(GTIM1_IRQn);
NVIC_SetPriority(GTIM1_IRQn,0x03);

__RCC_GTIM2_CLK_ENABLE();//打開GTIM2時鐘
GTIM_InitStruct.ReloadValue=0xFFFFu;
GTIM_InitStruct.ToggleOutState=ENABLE;
GTIM_TimeBaseInit(CW_GTIM2, GTIM_InitStruct);
valuePeriod=GTIM_InitStruct.ReloadValue;
valuePosWidth=valuePeriod>>1u;
GTIM_OCInit(CW_GTIM2,GTIM_CHANNEL1,GTIM_OC_OUTPUT_PWM_HIGH);
GTIM_SetCompare1(CW_GTIM2,valuePosWidth);
GTIM_Cmd(CW_GTIM2,ENABLE);
}

5.主程序main

uint16_tvalueAdc;
uint32_tvalueAdcAcc;
volatileuint8_tgFlagIrq;
uint16_tgCntEoc=0;
uint8_tcntSample;
floatfTsDegree;
uint32_tvaluePeriod;
uint32_tvaluePosWidth;
uint32_tvalueReload=0xFFFFu;
intmain(void)
{
uint8_tres;
ADC_InitTypeDefADC_InitStructure={0};
ADC_WdtTypeDefADC_WdtStructure={0};
ADC_SingleChTypeDefADC_SingleChStructure={0};
RCC_HSI_Enable(RCC_HSIOSC_DIV6);//以下從HSI切換到PLL
RCC_PLL_Enable(RCC_PLLSOURCE_HSI,8000000UL,RCC_PLL_MUL_8);
//開啟PLL,PLL源為HSI
__RCC_FLASH_CLK_ENABLE();//打開FLASH時鐘
FLASH_SetLatency(FLASH_Latency_3);
res=RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL);//切換系統時鐘到PLL:64MHz。
ADC_PortInit();//配置ADC測試IO口
LED_Init();//LED初始化
PWM_PortInit();
GTIM_Init();
ADC_StructInit( ADC_InitStructure);//ADC默認值初始化
ADC_WdtInit( ADC_WdtStructure);//ADC模擬看門狗通道初始化
ADC_InitStructure.ADC_ClkDiv=ADC_Clk_Div128;//ADCCLK:500KHz.
ADC_InitStructure.ADC_InBufEn=ADC_BufEnable;
ADC_InitStructure.ADC_SampleTime=ADC_SampTime10Clk;
ADC_SingleChStructure.ADC_DiscardEn=ADC_DiscardNull;//配置單通道轉換模式
ADC_SingleChStructure.ADC_Chmux=ADC_ExInputCH1;//選擇ADC轉換通道
ADC_SingleChStructure.ADC_InitStruct=ADC_InitStructure;
ADC_SingleChStructure.ADC_WdtStruct=ADC_WdtStructure;
ADC_SingleChOneModeCfg( ADC_SingleChStructure);
ADC_ITConfig(ADC_IT_EOC,ENABLE);
ADC_EnableIrq(ADC_INT_PRIORITY);
ADC_ClearITPendingAll();
ADC_Enable();//ADC使能
ADC_ExtTrigCfg(ADC_TRIG_GTIM1,ENABLE);//ADC外部中斷觸發源配置
GTIM_Cmd(CW_GTIM1,ENABLE);
while(1)
{
while(!(gFlagIrq ADC_ISR_EOC_Msk));
gFlagIrq=0u;PC03_TOG();
valueAdc=ADC_GetConversionValue();
valueReload=((4095u*125000ul)/(4999u*valueAdc+4095u)+1)>>1;
GTIM_SetCounterValue(CW_GTIM2,0u);//reset.
GTIM_SetReloadValue(CW_GTIM2,valueReload);
GTIM_SetCompare1(CW_GTIM2,valuePosWidth);//等待ADC外部中斷觸發源啟動下一次ADC轉換
}
}

6.實驗展示

通用定時器GTIM1定時1s自動觸發ADC模塊進行轉換,ADC通道為AIN1:PA01。

通用定時器GTIM2將AIN1的ADC采樣值轉換成頻率可變的PWM方波,占空比50%,使用PA05作為PWM輸出。ADC采樣值為0時,PWM方波頻率為1Hz;ADC采樣值為4095時,PWM方波頻率為5KHz。

wKgZomR4F26AI9RnAABLqfkip4g331.jpg

來源:武漢芯源半導體

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • adc
    adc
    +關注

    關注

    98

    文章

    6495

    瀏覽量

    544461
  • 模數轉換器
    +關注

    關注

    26

    文章

    3200

    瀏覽量

    126810
收藏 人收藏

    評論

    相關推薦

    ADC10DV200單芯片模數轉換器數據表

    電子發燒友網站提供《ADC10DV200單芯片模數轉換器數據表.pdf》資料免費下載
    發表于 07-31 10:39 ?0次下載
    <b class='flag-5'>ADC</b>10DV200單芯片<b class='flag-5'>模數轉換器</b>數據表

    THS1009低功耗模數轉換器(ADC)數據表

    電子發燒友網站提供《THS1009低功耗模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-30 14:18 ?1次下載
    THS1009低功耗<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    ADS5421流水線式模數轉換器(ADC)數據表

    電子發燒友網站提供《ADS5421流水線式模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-30 11:16 ?0次下載
    ADS5421流水線式<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    ADS61JB23模數轉換器(ADC)數據表

    電子發燒友網站提供《ADS61JB23模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-30 09:51 ?0次下載
    ADS61JB23<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    ADC141S628-Q偽差分模數轉換器(ADC)數據表

    電子發燒友網站提供《ADC141S628-Q偽差分模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-25 11:29 ?0次下載
    <b class='flag-5'>ADC</b>141S628-Q偽差分<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    ADC122S625模數轉換器(ADC)數據表

    電子發燒友網站提供《ADC122S625模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-25 10:09 ?0次下載
    <b class='flag-5'>ADC</b>122S625<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    ADC12130、ADC12132和ADC12138模數轉換器數據表

    電子發燒友網站提供《ADC12130、ADC12132和ADC12138模數轉換器數據表.pdf》資料免費下載
    發表于 07-25 10:08 ?0次下載
    <b class='flag-5'>ADC</b>12130、<b class='flag-5'>ADC</b>12132和<b class='flag-5'>ADC</b>12138<b class='flag-5'>模數轉換器</b>數據表

    ADC10731/ADC10732/ADC10734/ADC10738模數轉換器數據表

    電子發燒友網站提供《ADC10731/ADC10732/ADC10734/ADC10738模數轉換器數據表.pdf》資料免費下載
    發表于 07-25 09:40 ?0次下載
    <b class='flag-5'>ADC</b>10731/<b class='flag-5'>ADC</b>10732/<b class='flag-5'>ADC</b>10734/<b class='flag-5'>ADC</b>10738<b class='flag-5'>模數轉換器</b>數據表

    ADC0808/ADC0809模數轉換器數據表

    電子發燒友網站提供《ADC0808/ADC0809模數轉換器數據表.pdf》資料免費下載
    發表于 07-19 10:42 ?2次下載
    <b class='flag-5'>ADC</b>0808/<b class='flag-5'>ADC</b>0809<b class='flag-5'>模數轉換器</b>數據表

    TLC4541和TLC4545微型CMOS模數轉換器(ADC)系列數據表

    電子發燒友網站提供《TLC4541和TLC4545微型CMOS模數轉換器(ADC)系列數據表.pdf》資料免費下載
    發表于 07-18 09:24 ?0次下載
    TLC4541和TLC4545微型CMOS<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)<b class='flag-5'>系列</b>數據表

    ADC09xJ800-Q1模數轉換器(ADC)數據表

    電子發燒友網站提供《ADC09xJ800-Q1模數轉換器(ADC)數據表.pdf》資料免費下載
    發表于 07-15 10:59 ?0次下載
    <b class='flag-5'>ADC</b>09xJ800-Q1<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)數據表

    CW32數字電壓電流表軟件教程-實驗五:ADC采樣及顯示

    的數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。 6.1.2.
    的頭像 發表于 05-31 15:28 ?548次閱讀
    <b class='flag-5'>CW32</b>數字電壓電流表軟件教程-實驗五:<b class='flag-5'>ADC</b>采樣及顯示

    模數轉換器的技術參數詳解

    模數轉換器ADC,Analog-to-Digital Converter)作為電子系統中的重要組成部分,負責將連續的模擬信號轉換為離散的數字信號,以供數字系統進行處理和分析。模數轉換器
    的頭像 發表于 05-21 16:06 ?1371次閱讀

    低噪聲模數轉換器 (ADC)SC1642,可用于溫度測量系統

    為了供應市場所需,市面上已有多種類型的溫度傳感來測量溫度,而溫度測量系統的精度取決于傳感以及傳感所接口的模數轉換器(ADC)的性能。許
    的頭像 發表于 04-15 09:43 ?639次閱讀
    低噪聲<b class='flag-5'>模數轉換器</b> (<b class='flag-5'>ADC</b>)SC1642,可用于溫度測量系統

    【有那么點詳細的CW32學習筆記】模數轉換器

    本章為大家帶來模數轉換器ADC)的使用教學,按照慣例,我們先來說一下模數轉換器本身。 首先是功能,模數轉換器接收電壓信號并輸出一個數字信號,該數字信號是一個數字,這個數字指示了電壓信
    的頭像 發表于 02-29 09:41 ?767次閱讀
    【有那么點詳細的<b class='flag-5'>CW32</b>學習筆記】<b class='flag-5'>模數轉換器</b>
    主站蜘蛛池模板: 久久re热在线视频精99| 97视频在线观看免费播放| 国产97视频在线观看| 中文字幕精品在线视频| 亚洲综合色五月久久婷婷| 亚洲精品伊人久久久久| 麻豆一二三四区乱码| 久草视频在线观看免费4| 国产在线观看99| 国产人妻久久久精品麻豆| 中文字幕无码亚洲视频| 影音先锋av电影| 在线观看免费av网| 制服丝袜第一页| 24小时日本在线| 午夜福利体检| 无罩看奶禁18| 小雪奶水涨翁工帮吸的推荐语录 | china年轻小帅脸直播飞机| 中文字幕人成人乱码亚洲影视S| 伊人久久国产免费观看视频| 中国人泡妞www免费| 中文字幕s级优女区| 94vvv男人的天堂| qvod电影网| 国产AV天堂一区二区三区| 国产精品久久久久影院| 果冻传媒完整免费网站在线观看 | WWW亚洲精品久久久乳| 成人在线视频网站| 国产精品.XX视频.XXTV| 韩剧甜性涩爱| 久久中文字幕综合不卡一二区 | 国产日韩精品一区二区三区在线| 果冻传媒9CM在线观看| 久久精品久精品99热| 嗯啊快停下我是你老师啊H| 三级中国免费的| 亚洲精品沙发午睡系列| 最近中文字幕MV免费看| 苍井空a 集在线观看网站|