完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
## ATMEL SAMC20J多通道ADC问题## 最近,在学习使用ATMEL单片机,用到的是SAMC20J18A,当调试多通道ADC时,遇到了一些问题,其中有关多通道ADC采样问题整了比较久。记录一下,备忘和留下记号,希望可以帮到有需要的有缘人。 在ATMEL IDE Atmel Studio 7,有一些相关的例程,但都是比较简单的应用例程,就像ADC的例程里,都只是提供单路ADC的,而多通道ADC采样功能基本上只字不提,并且在网上也找不到相关有效的解决方法(网上有人实现两路采样,但要每次都重新初始化,效率肯定不高也不合理,所以只能自己找方法)。
在相关文档中,我找到比较有用的资料有: 1、Pin Scan(ADC应用文档里) 2、 Automatic Sequences(芯片规格书里) 回到代码中,找到adc_enable_positive_input_sequence这个函数,里面有对SEQCTRL register进行设置 adc_module-》SEQCTRL.reg = positive_input_sequence_mask_enable; 最终修改configure_adc初始化函数。具体如下: void configure_adc(void) { struct adc_config config_adc; adc_get_config_defaults(&config_adc); #if (!SAML21) && (!SAML22) && (!SAMC21) //config_adc.gain_factor = ADC_GAIN_FACTOR_DIV2; #endif //config_adc.positive_input_sequence_mask_enable = 0x00c; config_adc.clock_prescaler = ADC_CLOCK_PRESCALER_DIV8; config_adc.reference = ADC_REFERENCE_INTVCC1; #if (SAMC21) config_adc.positive_input = ADC_POSITIVE_INPUT_PIN5; #else config_adc.positive_input = ADC_POSITIVE_INPUT_PIN10; #endif config_adc.resolution = ADC_RESOLUTION_12BIT; #if (SAMC21) adc_init(&adc_instance, ADC1, &config_adc); #else adc_init(&adc_instance, ADC0, &config_adc #endif adc_enable_positive_input_sequence(&adc_instance,0xC00); adc_enable(&adc_instance); } adc_enable_positive_input_sequence函数的参数0xC00,是根据应用改的,我用到是ADC_POSITIVE_INPUT_PIN10和ADC_POSITIVE_INPUT_PIN11两通道。config_adc.positive_input 的值对应起始通道ADC_POSITIVE_INPUT_PIN10。 这样就可以实现两通道采样。当设置adc_read_buffer_job(&adc_instance, adc_result_buffer, ADC_SAMPLES)后,采样 结果就存放在 adc_result_buffer中。是不是很简单??但这问题确实纠緾我整整一天时间!!! 另外我把上面 //config_adc.gain_factor = ADC_GAIN_FACTOR_DIV2;给注释了,原因是在SAMC20中无定义。 最后的采样结果是 adc_result0 = adc_result_buffer[0]/2; adc_result1 = adc_result_buffer[1]/2; |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1146浏览 2评论
745浏览 1评论
499浏览 0评论
265浏览 0评论
427浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:55 , Processed in 1.238545 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号