完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我正在使用一个DSIC33 EP32 GS202数字信号控制器,我试图描述ADC。我已经编写了代码来用数据填充两个缓冲区,然后如果两个缓冲区都满了,并且缓冲区中的值(或者至少有一个缓冲区)高于用户定义的阈值,则使用UART接口将两个缓冲区写入PC。我使用早期中断将ADC值读入缓冲区。我的芯片是在MICROStiCK II开发板上编程/操作的。我使用VREF=AVDD(我相信这个MCU的唯一选择)。我正在采样核心1,使用AN1/PIN 3作为ADC输入。我以8位模式操作ADC,以FoSc/2作为时钟源。我用普通的软件触发器触发转换。我一直在玩ADCORE1L寄存器中的SAMC位以调整采样时间。我遇到的问题是我从ADC读取的值不准确。我可以读0 V和VDD相当好(分别为8和248),但任何其他电压似乎是小康。我得到了.31V和.56V的ADC值184。我已经通过测量ADC输入引脚上的输入电压验证了我施加的直流电压是准确的。我也试过用APLL作为ADC时钟源来大大减少转换时间,同时把SAMC位设置为)0X0FF来尝试增加采样时间。我附上了我的主文件和adc1文件。我肯定遗漏了一些东西。我就是想不出来。任何建议将不胜感激!谢谢!
MX.TXT(7.65 KB)-下载115次 |
|
相关推荐
8个回答
|
|
看来,8位ADC并没有存储你所期望的数据。您不能只复制ADCBUF1。在8位ADC上,16位ADCBUF1看起来像:0 0 0 d07 d06 d05 d04 d03 d02 d01 d00 1 0 0 0,因此,如果您的ADC读取0V,ADCBUF1看起来像:0 0 0 0 0 0 0 0 0 0 0 0 0,并且在复制到8位寄存器:0 0 0 0 0 0 0 0 0 1 0之后,对于AVdd,ADCBUF1看起来像小数8。比如:0 0 0 1 1 1 1 1 1 1 1 0 0,然后复制到8位寄存器:1 1 1 0 0,即小数点248。所以,位移位应该有帮助。你检查过DS70005213,第47页吗?
|
|
|
|
嗨,有很多文档fordsPIC33EP32GS202。你需要使用数据表和专用的家庭参考手册到每个外围设备。对于高速ADC,请阅读文档dsPIC33/PIC24 FRM、12位高速、多SARS A/D转换器(ADC)。模数转换器。特别地,这一个对于initializee来说非常强大并且非常棘手,因为这是针对所有16位设备的通用手册,所以可能与数据表有一些不同。
|
|
|
|
谢谢你们的回复!我把建议的位移了一下,确定了DC的精度问题。我想看看我能多快地获得ADC的样本。在8位模式下,我的代码似乎只在大约500KSPS下采样(我为已知频率的符号波在1个周期内计数了数据点的数量),但我希望采样速率在1-2MHz范围内(数据表表明ADC在12位模式下可以采样到3.25KSPS)。我使用的是普通软件触发器和一个早期中断,在数据准备好之前触发4个时钟周期。我确实有一些其他代码必须在中断中执行(主要是如果语句正确地存储我的数据)。但是,我的系统时钟速度仍然是ADC时钟速度的两倍。我可以用不同的方式配置ADC来运行得更快吗?使用定时器触发转换?还是使用并行运行的2个内核来处理数据?我很感激任何人提供的建议。谢谢!
|
|
|
|
我意识到我忘了提及:我把ADC时钟设置为60MHz,我相信它非常接近我所使用的MCU的最大值(我认为最大值是70MHz)。我已经尝试用Fosc设置高达120 MHz的代码,但是它没有提高采样率。谢谢!
|
|
|
|
我已经对您的PIC和稍微更新的PIC做了一些测试,比如在http://www.micro..com/for./m1006250.aspxand中,在这个测试中,我可以使用Timer作为触发器在大约1.5MSamples/sec处进行采样:但是在我的例子中,关键是如果没有DMA,就不能充分利用那些AMUPES(中断将不允许超过500 KSt/秒)。
|
|
|
|
您好,我使用的是DSPIC33 FJ256MC710A和Explorer 16/32。当ADC通道(12,13,16,17)工作时,ADC通道12,13的电压从3.33v下降到1.65v,但是通道16,17正在工作.这条线路我用来配置ADC.void Adc_Init(void){AD1CON2bits.VCFG=0b100;AD1CON3bits.ADCS=0x2F; //AD1CON1bits.SSRC=0x0;AD1CON3bits.SAMC=0b10.000;AD1CON1BITS。表单=0B00;AD1CON2BITS。SMPI= 0x0;AD1CON1BIT.ADON=1;}可以帮助任何一个。
|
|
|
|
不要劫持邮件。创建你自己的。
|
|
|
|
我用pic32mx220设计了一个USB示波器。我用和声设置了ADC,但是速度结果很糟糕。我必须进去把adccon3设置为零,以便每秒得到1兆个采样。我只是在下一个循环中将数据从adc快速地输入到存储器中。这样我在1MHz时得到2k个采样。
|
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2230 浏览 5 评论
739浏览 1评论
626浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
511浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
637浏览 0评论
535浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 11:16 , Processed in 1.476735 second(s), Total 94, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号