大家好, 我们用LM4F232的ADC0和ADC1采样两路正弦波信号,这两路信号闲时是1.8V的恒定值,我们希望在正弦波来到就开始采样。
请问这种情况应该怎样设计,可以设计成检测到上升沿或者下降沿来时就开始采样吗?
一般来讲这样的设计是不合理也很不好实现的, 如果只是小信号输入想根据信号强弱做ADC触发很不现实,虽然有可能用比较器来实现,但效果不会很好。如果你的正弦波是从零点开始的,比较器的阈值不好设计,而且还存在正向和反向问题。
给你提供一个思路,一般在做这类处理的时候,我们都是在小信号的处理上加上信号检测电路,然后用逻辑电平输入给MCU触发ADC采样。
另外一种处理方式是,ADC连续采样,采样的数据保存在内存中,然后软件来判断什么时候开始信号有效.
TI 的 Cortex M4 内部 ADC 带有 DAC 模块,可以设置你想要采样的数据的范围,如果数值在范围内,才会触发中断来处理;
非常适合你的应用。
具体可以看数据手册的13.3.7 Digital Comparator Unit。
下面是相关的API函数:
void ADCComparatorConfigure(unsigned long ulBase, unsigned long ulComp,unsigned long ulConfig);
void ADCComparatorRegionSet(unsigned long ulBase, unsigned long ulComp,unsigned long ulLowRef, unsigned long ulHighRef);
void ADCComparatorReset(unsigned long ulBase, unsigned long ulComp,tBoolean bTrigger, tBoolean bInterrupt);
void ADCComparatorIntDisable(unsigned long ulBase, unsigned long ulSequenceNum);
void ADCComparatorIntEnable(unsigned long ulBase, unsigned long ulSequenceNum);
unsigned long ADCComparatorIntStatus(unsigned long ulBase);
void ADCComparatorIntClear(unsigned long ulBase, unsigned long ulStatus);