单片机pic24ad问题

单片机pic24ad问题,第1张

我没有用过PIC24系列的,而且只会汇编语言,只好说说PIC16的。

1、ADC控制寄存器是从0-1的(也就是说PIC24也许可能是ADCON0~ADCON2)。

2、ADON、无、GO/-DONE、CHS0、CHS1、CHS2、ADCS0、ADCS1是位寻址,其实就是对应于ADCON0的bit0~7;PCFG0、PCFG1、PCFG2、PCFG3、无、无、无、ADFM也是位寻址,对应于ADCON1的bit0~7。

3、RA0/AN0~RA7/AN7同样是位寻址(AN5~AN7只有40脚封装的才有),对应于PORTA的bit0~7。

4、ADRESL、ADRESH分别存放转换结果的低字节和高字节:当ADFM=0时,ADRESL放低2位(bit2~7为0),ADRESH放高8位;当ADFM=1时,ADRESL放低8位,ADRESH放高2位(bit2~7为0)。

5、CHS2~0用于选择模拟输入通道

000=选择通道0(RA0/AN0)

001=选择通道1(RA1/AN1)

111=选择通道7(RA7/AN7)

6、ADON为A/D转换器开关位:

1=启用ADC

0=关闭ADC(省电)

7、GO/-DONE为状态位(ADON=1的前提下)

1=正在转换

0=转换完成

你要使用AN6首先要40条引脚以上,然后让CHS2~0=110,用ADCS0~1设置好时钟,用ADFM设置好需要的格式(一般我习惯设置为1),GO=1,ADON=1,然后查询GO,当GO=0,读取ADRESL和ADRESH的数值。

ADCON0 里有一个 GO_nDONE 位,这是 个 开始AD转换的位,初始化的时候,你赋值了1 ,就开始了 转换,转换完成后,AD模块自动 清该位,然后你就没有再 对该位 *** 作了,就是说,后面就没有 开始 AD转换了

程序中使用ADC1采样一个外部输入,一个内部参考电压

电压,其中出现了两通道的数据错位问题,即有时数组第

一个数与该数组第二个数据交换了,在网上找了很久=都

没神马结果,最后只能将ADC的连续转换模式设置成单次转换

即ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_1);改成

ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit, ADC_Prescaler_1);

在每次一组数据传 输完成产生一次DMA中断的时候再启动下

一次adc转换。这样数据才不至于错位。

最后,如果读者有一些在adc连续转换模式解决数据错位的办法,请指教

你的pic 应该是16位的吧

ADxPCFGL:端口配置寄存器的低位字 bit 15-0 PCFG<15:0>

是选择端口是否为模拟输入

1 = 端口引脚处于数字模式,使能端口读输入, ADC 输入多路开关连接到AVSS(也就是作为普通I/O口)

0 = 端口引脚处于模拟模式,禁止端口读输入, ADC 采样引脚电压(用于模拟输入)

1: 对于没有 16 路模拟输入的器件,所有 PCFG位都由用户读 / 写。但是,如果器件上不含相应的输入,则PCFG位被忽略。

2: 对于具有 2个模数转换模块的器件, AD1PCFGL 和 AD2PCFGL 都会影响与 AN0-AN15复用的端口引脚的配置。

1 AD7888是美国模拟器件AD公司推出的一款高速低功耗12位模数转换器

2 ad1672是美国adi公司最近推向市场的一种新型单片式模数转换器(adc)。片上含有4个高性能采样保持放大器(sha)和4个闪烁式adc及电压基准。它采用4级流水线结构,输出带有误差修正逻辑电路,并采用bicmos工艺,从而保证在3msps采样速度下12位精度,在整个工作温度范围内不失码。由于ad1672输入sha具有快速建立特性,所以它既适合从负满度到正满度电压逐次切换多通道系统,又适合输入频率高达奈奎斯特速率的单通道采样。 ad1672具有宽频带输入、单电源供电、低功耗和低价格等特点,非常适用于通信、图象处理和医疗设备新电路设计。

3 AD7892BR-1┃12位串行ADC模数转换器

4 AD7893 LC2 MOS 12位,串行6us模数转换器具有6us转换时问的快速l2位模数转换器;8引脚SOIC封装;单电源 *** 作;高速,易用,串行接口;片上跟踪/保持放大器;低功率:25mW

5 AD9637是一款8通道、12位、40 MSPS/80 MSPS模数转换器(ADC),内置片内采样保持电路,专门针对低成本、低功耗、小尺寸和易用性而设计。该产品的转换速率最高可达80 MSPS,具有杰出的动态性能与低功耗特性,对小封装尺寸的应用很有意义 该ADC要求采用18 V单电源供电以及LVPECL/CMOS/LVDS兼容型采样速率时钟信号,以便充分发挥其工作性能。对于大多数应用来说,无需外部基准电压源或驱动器件

为获得合适的LVDS串行数据速率,该ADC会自动倍乘采样速率时钟。它提供一个数据时钟输出(DCO)用于在输出端捕获数据,以及一个帧时钟输出(FCO)用于发送新输出字节信号。它还支持各通道单独进入省电状态;禁用所有通道时,典型功耗低于2mW

可以检测16处电压。。但是。。但是……不能同时检测。。。

比如如果只是采用adc1的话,要一个一个按顺序来,用库写程序的话有一句

ADC_RegularChannelConfig(ADC1,ADC_Channel_2, 1,ADC_SampleTime_1Cycles5);

里面那个1表示在这一次周期的采样顺序,采样3个点就是

ADC_RegularChannelConfig(ADC1,ADC_Channel_3, 1,ADC_SampleTime_1Cycles5);

ADC_RegularChannelConfig(ADC1,ADC_Channel_2, 2,ADC_SampleTime_1Cycles5);

ADC_RegularChannelConfig(ADC1,ADC_Channel_5, 3,ADC_SampleTime_1Cycles5);

其中的那个1,2,3就是顺序

如果用adc1和adc2的话是可以同时采样的……

但是只用1个adc的话16处采样的返回值只写在对应的ADC_DR里面,需要分时读取;

同样,adc1和adc2是有各自不同的adc_dr;

读取,可以通过dma传出来读取。在dma的设置里有关于adc的……

或者在库函数里也有直接读取的。。

或者。。直接去读寄存器也可以……

不晓得你要做什么。

是要做采集回放么。这个程序的复杂度和你的策略有关。

另外pic16好像没有DAC 要使用其他外围元件么,这个要看接口,好像有3总线 有SPI的。

保证数据一致 直接赋值就好,不过基准的选择要相同。当然转换是会丢失精度的啦。

就想到这些。应用问题还是要具体到硬件环境的。可以共同探讨。

个人意见仅供参考,如若有误欢迎批评指正。

今天刚好在网上看到有自带ADC和DAC的PIC单片机——PIC16F753。自带8路10位ADC和DAC。更多资料可参见电子发骚友网,单片机专题第二页。

希望我的回答能帮助到你。

以上就是关于单片机pic24 ad问题全部的内容,包括:单片机pic24 ad问题、求助PIC16F676单片机,无法进入ADC中断,仿真正常,有源码、求助,关于STM8L051F3芯片,多路ADC采集DMA传输遇到的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10212101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存