我正在使用 PIC24F16KA101 读取 ADC。Adc 信号将随机出现,因此我将 MCU 置于睡眠模式。我喜欢在信号超过阈值时唤醒单片机。当我用谷歌搜索这个时,我发现了很多与此相关的主题,但我想在这个问题上得到澄清。我找到了一些解决这个问题的方法,但我想要一个功耗最小的解决方案。
以最大频率采样 ADC(因为信号是随机的高频脉冲)。在 MCU 唤醒时使用基于系统时钟的 Adc 时钟(我使用 32MHz FRCPLL),并在它进入睡眠状态之前更改为 ADRC 内部时钟,以便 adc 将在睡眠模式下进行采样。这样,我希望,当阈值较高时,我可以唤醒模块(通过设置 ADC 中断优先级大于 CPU 优先级)。但为此,我必须使用 adc 不断采样。
向比较器模块提供相同的 Adc 输入,并使 MCU 在不处理时进入睡眠模式并关闭 adc。当输入高于比较器阈值时,模块可以唤醒并启动 adc。我认为,在这种情况下,比较器将在睡眠模式下工作。但我担心我可能会错过一些重要的信号信息(因为在比较器中断后打开 adc 需要时间)。
另一种是使用定时器以指定的时间间隔对 adc 进行采样,但由于信号是随机的,因此可能会错过信号。
哪个会更好,或者有其他解决方案吗?请帮助我.... 另外,我想知道内部 ADRC 振荡器的频率。