2436|9

1585

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AT32WB415测评】ADC数据采集与波形绘制 [复制链接]

在AT32WB415片内配了1组2M采样速率12位A/D转换器,且有8个采集通道,通过相应的例程可供测试,其效果如图1所示。

图1 测试效果

在例程中,除了ADC的初始化处理,在使用中最为关注的则是函数adc_config (),其内容如下:

  • static void adc_config(void)
  • {
  •   adc_base_config_type adc_base_struct;
  •   crm_periph_clock_enable(CRM_ADC1_PERIPH_CLOCK, TRUE);
  •   crm_adc_clock_div_set(CRM_ADC_DIV_6);
  •   nvic_irq_enable(ADC1_IRQn, 0, 0);
  •   adc_base_default_para_init(&adc_base_struct);
  •   adc_base_struct.sequence_mode = TRUE;
  •   adc_base_struct.repeat_mode = FALSE;
  •   adc_base_struct.data_align = ADC_RIGHT_ALIGNMENT;
  •   adc_base_struct.ordinary_channel_length = 2;
  •   adc_base_config(ADC1, &adc_base_struct);
  •   adc_ordinary_channel_set(ADC1, ADC_CHANNEL_0, 1, ADC_SAMPLETIME_239_5);
  •   adc_ordinary_channel_set(ADC1, ADC_CHANNEL_1, 2, ADC_SAMPLETIME_239_5);
  •   adc_ordinary_conversion_trigger_set(ADC1, ADC12_ORDINARY_TRIG_SOFTWARE, TRUE);
  •   adc_dma_mode_enable(ADC1, TRUE);
  •   adc_voltage_monitor_enable(ADC1, ADC_VMONITOR_SINGLE_ORDINARY);
  •   adc_voltage_monitor_threshold_value_set(ADC1, 0xBBB, 0xAAA);
  •   adc_voltage_monitor_single_channel_select(ADC1, ADC_CHANNEL_1);
  •   adc_interrupt_enable(ADC1, ADC_VMOR_INT, TRUE);
  •   adc_enable(ADC1, TRUE);
  •   adc_calibration_init(ADC1);
  •   while(adc_calibration_init_status_get(ADC1));
  •   adc_calibration_start(ADC1);
  •   while(adc_calibration_status_get(ADC1));
  • }

因此可知,它配置了2个数据采集通道,即ADC0和ADC1。而实际使用的只是ADC1,即使用PA1来采集外部的模拟信号。

为实现检测数据的波形绘制功能,在TFT屏显示程序的基础上,略加修改即可实现图2和图3所示的运行效果。

值得指出的是,由于PA0和PA1被ADC所占用,故原TFT屏所使用的引脚改为PC0和PC1。

电位器被接到PA1上,见图3所示。

受屏幕尺寸的限制,数据波形被限定在指定的窗口内,其范围是(20, 120)~(220, 260)之内。每个数据的间隔为4个像素点,绘制曲线的比例1/30。

图2  VDD电压检测

图3 电位器调节曲线

实现波形曲线绘制功能的主程序为:

  • int main(void)
  • {
  •     __IO uint32_t index = 0;
  •     uint16_t u= 0,x,y,yp;
  •     nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  •     system_clock_config();
  •     gpio_config();
  •     dma_config();
  •     adc_config();
  •     app_tft_init();
  •     tft_Init();
  •     LCD_Clear(RED);
  •     LCD_Fill(0,0,239,50,WHITE);
  •     show_tb(60,0,0);
  •     delay_ms(1000);
  •     BACK_COLOR=WHITE;
  •     POINT_COLOR=RED;
  •     LCD_ShowChar(80,16,'A',1);
  •     LCD_ShowChar(90,16,'D',1);
  •     LCD_ShowChar(100,16,'C',1);
  •     LCD_Fill(0,287,239,319,WHITE);
  •     BACK_COLOR=WHITE;
  •     POINT_COLOR=RED;
  •     LCD_ShowString(60,294,"BY: jinglixixi");
  •     BACK_COLOR=RED;
  •     POINT_COLOR=YELLOW;
  •     LCD_ShowString(40,70,"ADC=");
  •     LCD_ShowString(40,90,"U=    .   V");
  •     LCD_DrawRectangle(20, 120, 220, 260);
  •     x=20;
  •     y=260;
  •     while(1)
  •     {
  •        delay_sec(1);
  •        if(vmor_flag_index == 1)
  •        {
  •               vmor_flag_index = 0;
  •               u=adc1_ordinary_valuetab[1];
  •               LCD_Show2Num(80,70,u,4);
  •               u=3.3*u/4.095;
  •               LCD_Show2Num(80,90,u/1000,1);
  •               LCD_Show2Num(96,90,u%1000,3);
  •               yp=260-u/30;
  •               LCD_DrawLine(x, y, x+4, yp);
  •               y=yp;
  •               x=x+4;
  •               if(x>210)
  •               {
  •                     x=20;
  •                     y=260;
  •                     LCD_Fill(21,121,219,259,RED);
  •               }
  •        }
  •        adc_ordinary_software_trigger_enable(ADC1, TRUE);
  •     }
  • }

 

查看本帖全部内容,请登录或者注册
此帖出自无线连接论坛

最新回复

高精度的ADC都限制出口  详情 回复 发表于 2022-8-23 15:39
点赞 关注
 

回复
举报

7502

帖子

2

TA的资源

版主

沙发
 

AT32WB415 的ADC精度和采样率如何?

此帖出自无线连接论坛

点评

12位分辨率,基本就那样了,一般应用  详情 回复 发表于 2022-8-22 20:19
精确的需要专业设备,一般的要求还可以,能达到满量程能随动。  详情 回复 发表于 2022-8-22 18:44
 
 

回复

1585

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
wangerxian 发表于 2022-8-22 17:52 AT32WB415 的ADC精度和采样率如何?

精确的需要专业设备,一般的要求还可以,能达到满量程能随动。

此帖出自无线连接论坛
 
 
 

回复

6876

帖子

10

TA的资源

版主

4
 
wangerxian 发表于 2022-8-22 17:52 AT32WB415 的ADC精度和采样率如何?

12位分辨率,基本就那样了,一般应用

此帖出自无线连接论坛

点评

是的没错,最近见到有一块24位的开发板,只是没拿到手,有点遗憾了。  详情 回复 发表于 2022-8-23 09:34
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

7190

帖子

11

TA的资源

版主

5
 

楼主的帖子讲解详细,特别是有好多很美元件,象电位器、LED灯,那是相当的美。

此帖出自无线连接论坛

点评

哈哈,有点儿小积累。  详情 回复 发表于 2022-8-23 09:32
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

6
 

楼主厉害啊,帖子讲解详细,特别是有好多精美器件

 

此帖出自无线连接论坛

点评

感谢支持  详情 回复 发表于 2022-8-23 09:31
 
 
 

回复

1585

帖子

1

TA的资源

五彩晶圆(初级)

7
 
你记忆中的那个人 发表于 2022-8-22 21:37 楼主厉害啊,帖子讲解详细,特别是有好多精美器件  

感谢支持

此帖出自无线连接论坛
 
 
 

回复

1585

帖子

1

TA的资源

五彩晶圆(初级)

8
 
lugl4313820 发表于 2022-8-22 20:20 楼主的帖子讲解详细,特别是有好多很美元件,象电位器、LED灯,那是相当的美。

哈哈,有点儿小积累。

此帖出自无线连接论坛
 
 
 

回复

1585

帖子

1

TA的资源

五彩晶圆(初级)

9
 
秦天qintian0303 发表于 2022-8-22 20:19 12位分辨率,基本就那样了,一般应用

是的没错,最近见到有一块24位的开发板,只是没拿到手,有点遗憾了。

此帖出自无线连接论坛
 
 
 

回复

6876

帖子

10

TA的资源

版主

10
 

高精度的ADC都限制出口

此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
      快速回复 返回顶部 返回列表