微芯片技术NCO1模块详解:工作原理与应用

需积分: 46 47 下载量 109 浏览量 更新于2024-08-08 收藏 5.02MB PDF 举报
"NCO1是微控制器中的一个重要模块,用于生成可调频率的输出信号。在PIC16F18324这款单片机中,NCO1(Numerically Controlled Oscillator)工作原理是通过不断累加一个固定的数值到累加器来实现的。这个固定值称为递增值,累加器是一个20位的寄存器。每当累加器达到其最大值(即溢出)时,会产生一个NCO Overflow信号,这个溢出事件可以被用作输出信号,也可以触发中断。 NCO1的时钟源可以选择HFINTOSC(高速内部振荡器)、FOSC(系统时钟)或者是LC1_out(可能是一个低速振荡器输出)。时钟源的选择通过配置NCO1CLK寄存器的N1CKS位来完成。NCO1的工作频率是由输入时钟频率和递增值决定的,具体计算公式为NCO时钟频率 = 递增量 × 2^(-20),这意味着通过调整递增值可以改变NCO1的输出频率。 累加器的访问由三个寄存器NCO1ACCL、NCO1ACCH和NCO1ACCU组成,它们分别对应累加器的低字节、高字节和最高字节。加法器是一个独立于系统时钟工作的全加器,它在每个输入时钟的上升沿更新累加器的值,将累加器的当前值与递增值相加。 递增寄存器包含三个部分:NCO1INCL、NCO1INCH和NCO1INCU,它们组合成一个20位的递增值。在启用NCO1模块时,必须按照特定顺序(先高字节后低字节)写入递增值。递增寄存器是双重缓冲的,允许在不关闭NCO1模块的情况下改变值。禁用NCO1时,写入递增寄存器的操作会立即生效。 NCO1的输出可以经过修正,例如通过延长脉冲或翻转触发器,然后分配给其他内部设备或输出到引脚。NCO1 Overflow和中断(NCO_interrupt)也可以根据需要进行配置。通过这种方式,NCO1可以在许多应用中用作灵活的频率合成器或定时器。 此外,PIC16F18324是一款具有模拟和独立外设的低功耗微控制器,适用于各种通用和低功耗应用。它有7KB的闪存、512字节数据SRAM和256字节EEPROM。内核是一个C编译器优化的RISC架构,支持中断、多个定时器以及多种工作和休眠模式,以适应不同的功率效率需求。该芯片的工作电压和温度范围广泛,且具备超低功耗特性,如在休眠模式下电流消耗仅为40nA(典型值)。其数字外设如可配置逻辑单元(CLC)、比较捕获PWM模块等提供了高度灵活的外设配置能力。"