国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

jf_pJlTbmA9 ? 來源:武漢芯源半導體 ? 作者:武漢芯源半導體 ? 2023-10-25 15:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

一、概述

CW32L083 內部集成一個 12 位精度、最高 1M SPS 轉換速度的逐次逼近型模數轉換器 (SAR ADC),最多可將 16 路模擬信號轉換為數字信號。現實世界中的絕大多數信號都是模擬量,如光、電、聲、圖像信號等,都要由 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
    +關注

    關注

    100

    文章

    7511

    瀏覽量

    555912
  • 模數轉換器
    +關注

    關注

    26

    文章

    4013

    瀏覽量

    130100
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    模數轉換器ADC充電樁解決方案

    在新能源領域,類比半導體提供的芯片解決方案,旨在提高能源轉換效率和系統穩定性。充電樁是電動汽車普及的關鍵基礎設施,它需要提供快速、安全且可靠的充電服務。英尚設計的充電樁解決方案,采用了高效的模數轉換器ADC電源管理芯片和智能控制
    的頭像 發表于 01-14 17:00 ?1082次閱讀

    8 位、雙路 1.5GSPS 或單路 3.0GSPS 模數轉換器

    模數轉換器
    芯佰微電子
    發布于 :2026年01月07日 15:50:43

    模數轉換器最高使用頻段

    工作,甚至以1GHz以上的滿功率帶寬工作。四、具體案例ADC12C/DSxxx和ADC14C/DSxxx系列:這些系列模數轉換器內置高性能的
    發表于 12-16 09:58

    請問CW32系列ADC是否支持同步或異步轉換

    CW32系列ADC是否支持同步或異步轉換
    發表于 12-16 08:06

    請問CW32系列ADC是否支持差分輸入?

    CW32系列ADC是否支持差分輸入?
    發表于 12-16 07:25

    CW32系列模數轉換器CW32L083的特點和功能

    模數轉換器ADC)的主要功能是將模擬量轉換為數字量,方便MCU進行處理。下面以CW32L083為例介紹CW
    發表于 12-12 06:32

    深入剖析ADC080x系列8位模數轉換器

    深入剖析ADC080x系列8位模數轉換器 引言 在電子設計領域,模數轉換器ADC)是連接模擬世界和數字世界的關鍵橋梁。今天,我們將深入探討
    的頭像 發表于 12-10 10:35 ?1026次閱讀

    ADC121S101 模數轉換器技術規格與應用總結

    ADC121S101是一款低功耗、單通道CMOS 12位模數轉換器 具有高速串行接口。與在 僅單個采樣率,ADC121S101在 500 ksps 的采樣率范圍內完全指定 1 毫秒。該轉換器
    的頭像 發表于 11-17 09:18 ?559次閱讀
    <b class='flag-5'>ADC</b>121S101 <b class='flag-5'>模數轉換器</b>技術規格與應用總結

    分享Sigma Delta型模數轉換器(高精度ADC工作原理)

    Sigma Delta型模數轉換器又稱Σ-Δ型模數轉換器模數轉換器ADC)作為連接物理世界與數字系統的關鍵部件,廣泛應用于工業控制、汽車電子和物聯網設備中。其中,Σ-Δ型
    的頭像 發表于 11-10 17:25 ?1291次閱讀

    ADC3569 單通道高速模數轉換器ADC)產品文檔總結

    ADC3568和ADC3569 (ADC356x) 是 16 位、250MSPS 和 500MSPS、單通道模數轉換器ADC)。這些器件
    的頭像 發表于 10-23 15:30 ?959次閱讀
    <b class='flag-5'>ADC</b>3569 單通道高速<b class='flag-5'>模數轉換器</b>(<b class='flag-5'>ADC</b>)產品文檔總結

    ?高精度模數轉換器 CBM79AD60G ?18位、5 MSPS、SAR型差分 #ADC #國產芯片

    模數轉換器
    芯佰微電子
    發布于 :2025年09月29日 16:47:12

    Texas Instruments ADS868xW 16 位 SAR 模數轉換器數據手冊

    Texas Instruments ADS868xW 16位SAR模數轉換器 (ADC) 是基于逐次逼近 (SAR) 模數轉換器 (ADC) 拓撲的集成數據采集系統
    的頭像 發表于 07-24 16:45 ?1108次閱讀
    Texas Instruments ADS868xW 16 位 SAR <b class='flag-5'>模數轉換器</b>數據手冊

    Analog Devices Inc. AD9217射頻模數轉換器數據手冊

    Analog Devices Inc. AD9217射頻模數轉換器是一款單通道、12位、6GSPS/10.25GSPS射頻 (RF) 模數轉換器 (ADC),具有6.5GHz輸入帶寬。AD9217
    的頭像 發表于 07-01 14:19 ?933次閱讀
    Analog Devices Inc. AD9217射頻<b class='flag-5'>模數轉換器</b>數據手冊

    Analog Devices Inc. AD4116模數轉換器 (ADC)數據手冊

    Analog Devices Inc. AD4116模數轉換器ADC)是低功耗、低噪聲、24位Σ-Δ模數轉換器,集成了專有的iPassives^?^ 技術,可實現高精度性能。這些ADC
    的頭像 發表于 06-23 14:17 ?986次閱讀
    Analog Devices Inc. AD4116<b class='flag-5'>模數轉換器</b> (<b class='flag-5'>ADC</b>)數據手冊

    ad7760模數轉換器ADC)數據手冊

    電子發燒友網站提供《ad7760模數轉換器ADC)數據手冊.pdf》資料免費下載
    發表于 05-17 17:41 ?0次下載