PIC16F18324/18344:时钟切换与低功耗外设控制

需积分: 46 47 下载量 165 浏览量 更新于2024-08-08 收藏 5.02MB PDF 举报
在Microchip Technology的PIC16F18324/18344单片机中,时钟切换是一个关键功能,用于在不同类型的时钟源之间灵活切换,以适应不同的性能需求和功耗优化。这个功能主要通过OSCCON1寄存器的NOSC(新振荡器源)位和NDIV(新分频比选择请求)位来实现。系统时钟源可以来自以下几个选项: 1. **外部振荡器(EXTOSC)**:这是最基本的时钟源,可以通过4x或2x PLL(锁相环路)增强频率。 2. **高频内部振荡器(HFINTOSC)**:也支持2x PLL,提供较高的频率选择。 3. **低频内部振荡器(LFINTOSC)**:适用于低功耗场景,但频率较低。 4. **辅助振荡器(SOSC)**:可能用于特定的应用需求,如在某些低功耗模式下提供备用时钟。 在进行时钟切换时,系统首先会等待新的时钟源稳定并准备好。如果新时钟源已经就绪,它会立即生效,除非CSWHOLD位被设置,这时切换会被暂停。一旦NOSCR位变为1,表明新时钟已就绪,此时可以通过清除CSWHOLD位或者将COSC值写入NOSC位来完成切换。如果DOZE功能启用,切换会在下一个时钟周期自动发生,即使CPU不在运行状态。 为了确保切换过程中的稳定性,系统会使用OSCCON3寄存器的NOSCR就绪标志和PIR3中的CSWIF中断标志。允许时钟切换中断后,当新时钟就绪时会产生中断,用户可以通过查询ORDY位来确认切换完成。 时钟切换对于低功耗特别重要,因为例如在进入休眠模式时,可以将系统时钟切换到低频,以减小电流消耗。此外,该单片机还具有多种节能特性,如空闲模式、打盹模式和休眠模式,以及外围模块禁止(PMD)功能,可以帮助降低未使用的外设功耗。 在设计应用时,了解如何有效地管理这些时钟源和模式,结合C编译器优化的RISC架构,可以极大地提高单片机在各种通用和低功耗应用场景中的性能和能效。