MSPM0L带有模拟比较器功能,可以用于模拟信号的比较,用于中断MCU或者触发MCU其他外设。 比较器有快速模式和低功耗模式两种,快速模式下传输延迟是40ns,低功耗模式下功耗为1.5uA。 比较器内置一个8位DAC可以用于内部比较电压的生成,DAC的参考电压来自于VDDA。 这里通过一个使用内部DAC作为参考电压的比较器,检测正端输入的电压,通过通用事件路由翻转IO的例子来讲下比较器的配置,这里需要配置一个用于输出的GPIO,方法之前教程有讲,就不在重复。 首先这里需要注意的是,COMP的工作电压来自于参考电压VREF,其他的模拟外设,包括ADC,运放(OPA)也是需要使用VREF。 所以在配置COMP的时候,确认在SYSCONFIG中配置了VREF外设,并勾选了等待VREF稳定的选项。 然后添加一个比较器(COMP)外设 这里选择的是快速模式,添加了一个正端的输入,DAC使用的是VDDA作为参考源,接在了比较器的负端,DAC输入控制选择使用DACCODE0的值,这里填入0x74,也就是1.5V,比较器将在正端输入电压超过1.5V的时候输出1。 在高级选中,需要注意的是通用事件路由的触发条件是根据中断触发条件选择的,这里选择的是上升沿置位COMPIFG,下降沿置位COMPINVIFG。 在事件配置中,发布者这里选择1通道,事件触发选择如下,域高级选项中的上升沿COMPIFG置位一致,比较器会在输出上升沿的时候,发送事件用来触发IO; 最后在GPIO的事件配置中配置好事件路由,以及输出策略就可以了,这选择的是翻转IO。 由于是使用了通用事件路由,所以程序不需要任何修改,直接编译下载即可。 这个例程会在每次比较器的正端输入电压超过1.5V的时候,翻转PA14 |