PIC触发ADC唤醒

时间:2014-01-30 05:36:58

标签: microcontroller comparator microchip adc

我使用PIC24F16KA101读取ADC。 Adc信号将随机出现,因此我将Mcu置于睡眠模式。     当信号超过阈值时,我喜欢唤醒mcu。     当我用Google搜索时,我发现了许多与此相关的主题,但我想在这个问题上得到澄清。     我找到了解决这个问题的方法,但我想要一个功耗最低的解决方案。

  1. 以最大频率采样ADC(因为信号是随机的,高频脉冲)。根据系统时钟使用Adc时钟     (我正在使用32MHz FRCPLL)当Mcu处于唤醒状态并在进入休眠状态之前更改为ADRC内部时钟,因此adc将在休眠模式下进行采样。     通过这种方式,我希望,当阈值更高时,我可以唤醒模块(通过设置ADC中断优先级大于CPU优先级)。     但为此,我将继续使用adc进行抽样。

  2. 向比较器模块提供相同的Adc输入,并在不处理时将Mcu置于睡眠模式并关闭adc。模块可以唤醒     当输入高于比较器阈值并启动adc时。我想,在这种情况下,比较器将在睡眠模式下工作。     但我担心我可能会遗漏一些重要的信号信息(因为在比较器中断后需要时间来打开adc)。

  3. 另一种方法是使用计时器以指定的时间间隔对adc进行采样,但由于信号是随机的,因此可能会错过信号。

  4. 哪个会更好,还是有其他解决方案?请帮我.... 另外,我想知道内部ADRC振荡器的频率。

1 个答案:

答案 0 :(得分:0)

第二种方法可能会起作用,具体取决于转换所需信号的长度。您可以查看数据表中的转换时间。

关于ADRC振荡器的频率,这取决于您。 AD1CON3的第15位允许您选择内部振荡器或外部振荡器。如果选择内部,则可以通过设置位5:0来使其成为CPU频率的倍数。