问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - ADC
  • AC7811如何读取片上温度

    想读取AC7811的片上温度,这个ADC中的T-sensor值怎么转换成温度呢?

    温度 AC ADC SENSOR se

    439浏览量 1回复量 关注量
  • 请教GD32F303RCT6ADC在1.5M下采集频偏为2K左右

    GD32F303RCT6在外部晶振为8M系统主频为120M时,ADC采样率配置为1.5M采集信号发生器150K信号,做FFT变换时频偏为2K左右

    ADC GD32F303 rc 信号 FFT变换

    387浏览量 2回复量 关注量
  • h88

    GD32E230的ADC可靠不? sos

    我想用 TIMER14 CH0 触发 ADC(扫描转换模式),就怎么触发不了。高手帮我看看哪错了 #include "gd32e23x_adc.h" #include "gd32e23x_dma.h" #include "gd32e23x_gpio.h" #include "gd32e23x_timer.h" static volatile uint16_t data[4]; static void rcuConfig(); static void adcConfig(); static void dmaConfig(); static void portConfig(); static void timerConfig(); void main() { rcuConfig(); timerConfig(); portConfig(); dmaConfig(); adcConfig(); timer_enable(TIMER14); gpio_bit_set(GPIOB, GPIO_PIN_4); while (1) ; } void rcuConfig() { rcu_periph_clock_enable(RCU_GPIOA); rcu_periph_clock_enable(RCU_GPIOB); rcu_periph_clock_enable(RCU_ADC); rcu_periph_clock_enable(RCU_DMA); rcu_periph_clock_enable(RCU_TIMER14); rcu_adc_clock_config(RCU_ADCCK_AHB_DIV3); } void adcConfig() { adc_special_function_config(ADC_SCAN_MODE, ENABLE); adc_dma_mode_enable(); adc_channel_length_config(ADC_REGULAR_CHANNEL, 4U); adc_regular_channel_config(1U, ADC_CHANNEL_3, ADC_SAMPLETIME_1POINT5); adc_regular_channel_config(2U, ADC_CHANNEL_4, ADC_SAMPLETIME_1POINT5); adc_regular_channel_config(3U, ADC_CHANNEL_8, ADC_SAMPLETIME_1POINT5); adc_regular_channel_config(4U, ADC_CHANNEL_9, ADC_SAMPLETIME_1POINT5); adc_external_trigger_config(ADC_REGULAR_CHANNEL, ENABLE); adc_external_trigger_source_config(ADC_REGULAR_CHANNEL, ADC_EXTTRIG_REGULAR_T14_CH0); adc_enable(); for (uint16_t i = 0; i < 1000; ++i) ; adc_calibration_enable(); } void dmaConfig() { dma_parameter_struct initParam; initParam.periph_addr = 0x4001244CU; // ADC_RDATA initParam.periph_inc = DMA_PERIPH_INCREASE_DISABLE; initParam.memory_addr = (uint32_t)data; initParam.memory_inc = DMA_MEMORY_INCREASE_ENABLE; initParam.periph_width = DMA_PERIPHERAL_WIDTH_16BIT; initParam.memory_width = DMA_MEMORY_WIDTH_16BIT; initParam.direction = DMA_PERIPHERAL_TO_MEMORY; initParam.number = 4U; initParam.priority = DMA_PRIORITY_HIGH; dma_init(DMA_CH0, &initParam); dma_circulation_enable(DMA_CH0); dma_interrupt_enable(DMA_CH0, DMA_INT_FTF); dma_interrupt_flag_clear(DMA_CH0, DMA_INT_FLAG_FTF); nvic_irq_enable(DMA_Channel0_IRQn, 1); dma_channel_enable(DMA_CH0); } void portConfig() { gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_3); gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_4); gpio_mode_set(GPIOB, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_0); gpio_mode_set(GPIOB, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_1); gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_4); // LED } void timerConfig() { timer_parameter_struct initParam; initParam.prescaler = 71; initParam.alignedmode = TIMER_COUNTER_EDGE; initParam.counterdirection = TIMER_COUNTER_UP; initParam.period = 99; initParam.clockdivision = TIMER_CKDIV_DIV1; initParam.repetitioncounter = 0U; timer_init(TIMER14, &initParam); timer_oc_parameter_struct ocParam; ocParam.outputstate = TIMER_CCX_ENABLE; ocParam.ocpolarity = TIMER_OC_POLARITY_HIGH; timer_channel_output_config(TIMER14, TIMER_CH_0, &ocParam); timer_channel_output_pulse_value_config(TIMER14, TIMER_CH_0, 2U); timer_channel_output_mode_config(TIMER14, TIMER_CH_0, TIMER_OC_MODE_PWM1); } void DMA_Channel0_IRQHandler() { static uint32_t i = 0; if (dma_interrupt_flag_get(DMA_CH0, DMA_INT_FLAG_FTF)) { dma_interrupt_flag_clear(DMA_CH0, DMA_INT_FLAG_FTF); ++i; if (i == 10000) { i = 0; gpio_bit_toggle(GPIOB, GPIO_PIN_4); } } }

    ADC GD32E230 TI IO pi

    1203浏览量 0回复量 关注量
  • AT32F403A 使用ADC时候出的问题。

    使用ADC 双模式时,程序卡在判断CAL 控制位为零的循环中,在使用ADC双模式时,由于硬件不会清除CAL控制位,可能导致程序会卡在ADC校准函数 while(ADC_GetCalibrationStatus(ADC1)); 我没有双使用ADC,还事卡住。 #define Channel_Num 2 #define Sample_Num 1 u16 ADC_ConvertedValue[Sample_Num][Channel_Num]; void ADC_DMA_Config(void) { DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = Sample_Num*Channel_Num; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址不变 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//内存地址递增 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); //DMA_Cmd(DMA1_Channel1,ENABLE); DMA_ClearITPendingBit(DMA1_IT_TC1);//清除DMA通道x中断待处理标志位 DMA_ITConfig(DMA1_Channel1,DMA_IT_TC, ENABLE); } //ADC配置函数 void ADC_Configuration(void) { u16 i; ADC_InitTypeDef ADC_InitStructure; RCC_ADCCLKConfig(RCC_PCLK2_Div6); //第二步:设置分频因子 ADC最大速率14M 72/6=12M ADC_DeInit(ADC1); //将外设 ADC1 的全部寄存器重设为默认值 //配置ADC1 ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; //独立模式 ADC_InitStructure.ADC_ScanConvMode=ENABLE; //扫描 ADC_InitStructure.ADC_ContinuousConvMode=ENABLE; //ADC_InitStructure.ADC_ContinuousConvMode=DISABLE; ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//无外部触发,即软件触发 ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel=Channel_Num;//规则转换通道数量 ADC_Init(ADC1,&ADC_InitStructure); //ADC1通道采样配置,使用规则通道1-3 //测试使用中断方式读数据,采样周期不能太小.实际使用时考虑加DMA处理 ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_41Cycles5);//ADC8配置为通道1,周期239.5+12.5 ADC_RegularChannelConfig(ADC1,ADC_Channel_3,2,ADC_SampleTime_41Cycles5);//ADC8配置为通道1,周期239.5+12.5 //初始化AD缓冲 for(i=0;i<4;i++) { AD_value[i]=0; } //使能ADC1的DMA模式 ADC_DMACmd(ADC1,ENABLE); /* Enable ADC1 */ ADC_Cmd(ADC1,ENABLE); DELAY_1ms();//14*ADCCLK ADC_ExternalTrigConvCmd(ADC1, DISABLE); //禁止外部出发ADC转换 //清除ADC1校准值 ADC_ResetCalibration(ADC1); //等待清除完成 while(ADC_GetResetCalibrationStatus(ADC1)); //开始ADC1校准 ADC_StartCalibration(ADC1); //等待校准完成 //while(ADC_GetCalibrationStatus(ADC1)); DELAY_10ms(); DELAY_10ms(); DMA_Cmd(DMA1_Channel1,ENABLE); //开始ADC1转换 ADC_SoftwareStartConvCmd(ADC1,ENABLE); // ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//清除中断标志 // ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE);//使能中断 }

    ADC DMA DM ni ST

    1151浏览量 2回复量 关注量
  • 请问1KHZ的方波怎么提取幅值

    我有一个0--2V 1KHZ的方波请问我怎么用ADC芯片去测他的正幅值,需要用什么电路才能把方波的正幅值给提取出来 我adc读取得频率为16.7hz

    kHz 方波 ADC dc AD

    2803浏览量 2回复量 关注量
  • 学生关于 adc 前置2阶低通滤波器的问题 sos

    [align=left][color=rgb(85, 85, 85)][backcolor=rgb(255, 255, 255)][font="]这是我的 低通滤波器的电路图 双电源供电 芯片采用的是[color=rgb(170, 102, 102)]LM358[/color]芯片 设置的截止频率是10khz[/font][/backcolor][/color][/align][align=left][color=rgb(85, 85, 85)][backcolor=rgb(255, 255, 255)][font="]当使用信号源给输入的频率达到6khz左右底部波形会出现失真 如图下所示[/font][/backcolor][/color][/align] [align=left][color=rgb(85, 85, 85)][backcolor=rgb(255, 255, 255)][font="]同时我也使用对应电路图 对偶电路图 做了200hz的高通滤波器[/font][/backcolor][/color][/align][align=left][color=rgb(85, 85, 85)][backcolor=rgb(255, 255, 255)][font="]顶部也就是对角线的方向也出现了类似的失真[/font][/backcolor][/color][/align]

    ADC 低通滤波器 电路图 电路 hz

    172浏览量 0回复量 关注量
  • 求裸片MCU推荐 16个12位/10位 ADC ,保守估计 20~80K.月

    [i=s] 本帖最后由 jrcsh 于 2020-11-29 18:53 编辑 [/i] 求裸片MCU推荐 3.3 ro 5V ,>IO18, 16个12位/10位 ADC ,保守估计 20~80K.月 广东交货, 下载视频 报价的请发邮箱 [email]jrcsh@qq.com[/email] 主题:JDS-LDC-20201128

    ADC MCU COM rcs rc

    597浏览量 10回复量 关注量
  • 有大侠可以发个HC32L110C6PA的ADC温度检测例程吗? sos

    [i=s] 本帖最后由 Intelligence 于 2020-11-16 15:32 编辑 [/i] 最近响应国家半导体国产化号召,准备尝试用华大半导体的芯片来做项目, 如果我想要用HC32L110C6PA内置的温度传感器来检测周围温度,具体应该怎么配置, ADC是开启的,单通道P2.6,希望有大侠可以发个HC32L110C6PA的ADC温度检测例程吗?

    ADC 温度检测 hc32l110 半导体 传感器

    410浏览量 0回复量 关注量
  • 谁能帮我看看n76e003可调电源的程序

    开机后oled上ADC电压值有变化,旋转编码器后,oled就显示一个值没有变化 #include #include "N76E003.h" #include "Common.h" #include "Delay.h" #include "SFR_Macro.h" #include "Function_Define.h" #include "oled.h" #include "bmp.h" UINT8 temp=0xD7; UINT8 temp1=0x02; void ADC_ISR (void) interrupt 11 { if(ADCF) { clr_ADCF; set_ADCS; //printf ("\n Value = 0x%bx",ADCRH); } } void show() { uint16_t BandGap_H, BandGap_L,BandGap_v; uint16_t voltage = 0; char aa[10]; float v; BandGap_H = ADCRH; BandGap_L = ADCRL; BandGap_v = BandGap_H << 4 | BandGap_L; v=(float)BandGap_v*(3.3/4096); v*=10; sprintf(aa,"%5.2f",v); OLED_ShowString(0,0,aa); } void main (void) { // unsigned char t; // uint16_t BandGap_H, BandGap_L,BandGap_v,temp; // uint16_t voltage = 0; // // char aa[10]; // float v; Set_All_GPIO_Quasi_Mode; // Define in Function_define.h P17_Input_Mode; P30_Input_Mode; set_EPI; clr_PIPS1; set_PIPS0; Enable_BIT7_RasingEdge_Trig; Enable_ADC_AIN2; // Enable AIN0 P1.7 as ADC input set_EADC; // Enable ADC interrupt (if use interrupt) set_EPWM;//?? PWM_INT_PWM4; PWM_FALLING_INT; PWM4_P01_OUTPUT_ENABLE; clr_PWMTYP;//?????? clr_PWMMOD0;//????????? clr_PWMMOD1; PWM_CLOCK_DIV_8;//8???? PWMPH = 0x07; //Setting PWM value PWMPL = 0xCF; set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1 PWM4H = 0x02;//500(Dec) PWM4L = 0xD7; clr_SFRPAGE; set_LOAD; // PWM run set_PWMRUN; set_EA; set_ADCS; InitialUART0_Timer3(115200); set_CLOEN; OLED_Init(); //³õʼ»¯OLED // t=' '; while(1) { show(); Timer0_Delay1ms(300); } } void PWMISR() interrupt 13 { if(PWMF)//???????? { clr_LOAD;//???????? clr_PWMF;//??PWM????? set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1 PWM4H=temp1; PWM4L=temp; clr_SFRPAGE; set_LOAD;//????,???? clr_PWMF; } } void PinInterrupt (void) interrupt 7 { if(PIF==0x80&&P17) { Timer0_Delay1ms(1); if(P17) { if(P30) { temp+=30; if(temp<30) { if(temp1==7){temp=0xc0;}else{temp1+=1;}} //Timer0_Delay1ms(500); } else{ temp-=30; if(temp<30){ if(temp1==0){temp=0x30;}else{temp1-=1;temp=0xff;}} //Timer0_Delay1ms(500); } } } PIF=0; PWMF=1; }

    N76E003 可调电源 include ADC dc

    231浏览量 4回复量 关注量
  • MM32自带的ADC精度如何

    还需要再外置不,需要12位ADC。

    ADC 精度 dc adc精度 AD

    416浏览量 7回复量 关注量
  • 16BIT 的 ADC 4.096 V 的参考电压 可以做到什么精度

    16BIT 的 ADC 4.096 V 的参考电压 可以做到什么精度

    ADC 电压 精度 ADC4

    305浏览量 10回复量 关注量
  • 通过按键实时改变采样保持时间

    在使用内部ad采样时,ADC12CTL0控制寄存器中的SHT0是决定采样保持时间的,,现在想通过按键实时改变采样保持时间

    AD ADC 寄存器 控制 AD采样

    353浏览量 32回复量 关注量
  • 川士微的隔离芯片性能怎么样?

    CA-IS3305,CA-IS3306 sigma-delta ADC芯片。CA-IS3222 5A的隔离驱动。有人用过吗?

    隔离芯片 ADC sigma Sigma-Delta dc

    363浏览量 1回复量 关注量
  • 大佬们,求一款汽车级单片机

    大佬们,求一款汽车级单片机,5V电压、8KB的RAM、至少6个ADC通道、要最便宜的!!!{:shy:}

    单片机 汽车 ADC RAM 电压

    436浏览量 5回复量 关注量
  • 求推荐带ADC和段码LCD的MCU sos

    ADC 12bit, 段码lcd 12x4点以上,有性价比高的MCU推荐一下,谢谢大家。

    ADC LCD MCU ADC1

    221浏览量 0回复量 关注量
123下一页