社区导航

 

搜索
查看: 181|回复: 0

[原创] 【 XMC4800 Relax EtherCAT Kit测评】+上手DAVE,ADC模块简单应用

[复制链接]

279

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-1-27 18:42 | 显示全部楼层 |阅读模式
本帖最后由 flyword 于 2019-1-27 18:46 编辑

今天继续分享xmc4800ADC学习应用,还是使用的DAVE APP,使用过程也非常简单,使用DAVE这个软件好多次了,对于APP模块的应用,我总结大概一般都分为3个步骤,有的可能会更少一点。娜三个步骤呢?
一、             APP模块的添加以及配置。这里面配置的内容主要包括一些配置参数、中断设置、以及工作状态,例如是否在初始化后就工作等等,目前应用过的APP主要有TIMER,UART,ADC,具体来说配置都是与应用相关的,配置很简单。
二、             HW 信号连接。这里主要是涉及到信号的连接,可以把事件和中断信号连接起来,如之前将timer中的定时事件和软中断连接起来的。
三、             引脚配置。将具体应用的引脚配置到xmc4800芯片上。可以图示配置也可以菜单配置。
综上所述,使用APP模块,始终离不开这3个步骤,熟悉各个APP模块,可以加快你的产品谁应用。
好了,继续今天的分享,如何使用ADC模块。按照上面的步骤,新建DAVE CE工程以后,添加两个模块ADCUART模块。这次简单应用是ADC模块获得数据后通过串口打印出来。相关的UART使用在这里不再描述了,可以参考之前的帖子。这里重点说说ADC的应用和配置。
1.      添加相关的ADC模块。这里有2个跟ADC相关的模块,选择第1个即可。
ADC_APP添加.png
2.      配置ADC模块。采用无触发信号,使能连续转换模式,在分辨率方面选择8位的测量模式,这里一般有8bit 10bit 12bit三种模式。
ADC-APP配置1.png
3.设置相关的中断配置需求。在测量结束后产生中中断,中断函数名可以自己定义。
ADC-APP配置2.png
4.      引脚配置。这里选择14.0.
ADC-APP引脚配置.png
5.      图纸里面对于ADC的定义标记有点问题,具体如下图,这里不影响使用,因为我们测试的引脚都未连接,测量值应该很小很小。
ADC引脚标注有问题1.png ADC引脚标注有问题2.png
6.      点击产生代码,后对main函数进行修改。具体参考代码如下:
  1. /*
  2. * main.c
  3. #include <DAVE.h>                 //Declarations from DAVE Code Generation (includes SFR declaration)

  4. /**

  5. * [url=home.php?mod=space&uid=159083]@brief[/url] main() - Application entry point
  6. *
  7. * <b>Details of function</b><br>
  8. * This routine is the application entry point. It is invoked by the device startup code. It is responsible for
  9. * invoking the APP initialization dispatcher routine - DAVE_Init() and hosting the place-holder for user application
  10. * code.
  11. */

  12. XMC_VADC_RESULT_SIZE_t result;

  13. uint8_t value[10];

  14. void Adc_Measurement_Handler()

  15. {
  16. #if(UC_SERIES != XMC11)
  17.    
  18. result = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_Channel_A);
  19.          
  20. //result=4096;

  21. #else
  22.      
  23. result = ADC_MEASUREMENT_GetGlobalResult();

  24. #endif
  25.      
  26. sprintf(value,"%d",result);
  27.      
  28. UART_Transmit(&UART_0,"value:",6);
  29.      
  30. UART_Transmit(&UART_0, value, sizeof(value));
  31.      
  32. UART_Transmit(&UART_0,"\r\n",2);
  33. }


  34. int main(void)
  35. {
  36.   DAVE_STATUS_t status;

  37.   status = DAVE_Init();           /* Initialization of DAVE APPs  */

  38.   if(status != DAVE_STATUS_SUCCESS)
  39.   {
  40.     /* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
  41.     XMC_DEBUG("DAVE APPs initialization failed\n");

  42.     while(1U)
  43.     {

  44.     }
  45.   }
  46.   ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
  47.   /* Placeholder for user application code. The while loop below can be replaced with user application code. */
  48.   while(1U)
  49.   {

  50.   }
  51. }
复制代码


7.      编译后运行,putty设置好后,可以看到ADC测量的结果:因为没有电压输入,所以测量的值应该很小,这里测出来的值8、6、7、14等可能是干扰噪声。
运行结果.png
好了今天的分享到此,明天计划分享DAC模块的简单应用。
之所以试用ADC模块,也是为了在后面EtherCAT从站设计中,加入模拟量的测量,简单实现数字量和模拟量都能操作的从站。


此内容由EEWORLD论坛网友flyword原创,如需转载或用于商业用途需征得作者同意并注明出处



此帖出自工控电子论坛


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-2-23 00:51 , Processed in 0.085748 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表