首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算单片机上ADC的最大物理速率(Nyquist性能极限)

计算单片机上ADC的最大物理速率(Nyquist性能极限)
EN

Stack Overflow用户
提问于 2010-05-01 07:42:26
回答 2查看 773关注 0票数 1

我试图评估集成在各种PIC微控制器上的A/Ds的最大物理速率(Nyquist性能极限)。

但是,要进行计算,需要我没有在数据表中显式说明的参数,特别是Tacq、Fosc、TAD和除数参数。

我先做了一些假设,但如果能进行一次健康检查会很有帮助--我是否正确地进行了最大物理速率的计算?

仅为说明起见,我采取了最简单的PIC10F220,有一个模数转换器。这是为了特别关注Tacq、Fosc、TAD和除数参数的解释,而不是建议在这个非常基本的芯片上实现任何实际的功能。(以下是Clifford在评论中的观点。)

计算

代码语言:javascript
复制
Nyquist Performance Analysis of PIC10F220
- Runs at clock speed of 8MHz.
- Has an instruction cycle of 0.5us  [4 clock steps per instruction]

所以:

代码语言:javascript
复制
- Get Tacq = 6.06 us  [acquisition time for ADC, assuming chip temp. = 50*C]
                      [from datasheet p34]

- Set Fosc := 8MHz     [? should this be internal clock speed ?]
- Set divisor := 4     [? assuming this is 4 from 4 clock steps per CPU instruction ?]
- This gives TAD = 0.5us          [TAD = 1/(Fosc/divisor) ]
- Get conversion time is 13*TAD   [from datasheet p31]
- This gives conversion time 6.5 us
- So ADC duration is 12.56 us   [? Tacq + 13*TAD]

假设在下一个示例之前实时完成了一个简单的加载/存储/阈值的10个指令(这只是一个存根--重点是计算的其余部分):

代码语言:javascript
复制
- This adds another 5 us   [0.5 us per instruction]
- To give total ADC and handling time of 17.56 us    [ 12.56us + 1us + 4us ]
- before the sampling loop repeats  [? Again Tacq ? + 13*TAD + handling ]

- If this is correct, then the max sampling rate is 56.9 ksps   [ 1/ total time ]
- So the Nyquist frequency for this sampling rate is 28 kHz.    [1/2 sampling rate]

这意味着这个系统的(理论)性能--芯片的A/D和假想的实时处理代码--适用于带宽限制在28 kHz的信号。

这是在获取Tacq、Fosc、TAD和除数参数并使用它们获得该芯片的最大物理速率或Nyquist性能极限时对数据表的正确分配/解释吗?

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-01 08:15:38

您将无法在8条指令中完成很多处理,但是假设您只是在做一些简单的事情,比如将传入的样本存储到缓冲区,或者检测到阈值,那么您的分析就会看起来很好。

票数 2
EN

Stack Overflow用户

发布于 2010-05-01 12:09:04

我正在考虑的实际芯片是dsPIC33FJ128MC804 (16 b A/D)或dsPIC30F3014 (12 b A/D)。

这是一个重要的区别;dsPIC ADC同时支持多通道的ping pong传输,因此可以将每个示例的有效软件开销降到最低。这使得计算结果有点不同。您需要根据采样速率和DMA缓冲区大小确定采样缓冲区中断之间的时间;即处理每个缓冲区所需的处理时间。如果你使用的是微芯片的DSP库,它给出了每种算法的精确循环时间公式,而块处理比逐个样本处理要有效得多。

我的最后一个项目是在一个dsPIC33上,在48 two和32字采样缓冲器上采样两个通道(给667 of处理每对缓冲器)。因此,软件处理完全独立于采样,因为通过使用DMA,它们是同时进行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2749217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档