MSSP波特率发生器详解:I2C与SPI通信的核心

需积分: 46 47 下载量 151 浏览量 更新于2024-08-08 收藏 5.02MB PDF 举报
"波特率发生器在微控制器中的应用" 在微控制器,如PIC16F18324中,波特率发生器(BRG)是一个关键组件,尤其在进行串行通信协议如I2C和SPI时。该发生器用于生成正确的时钟速率,以确保数据在这些总线上的正确传输。MSSP(多串行同步外围接口)模块包含了波特率发生器,它通过SSP1ADD寄存器设置重载值来控制计数器的递减。 当向SSP1BUF寄存器写入数据时,波特率发生器自动启动,按照预设的SSP1ADD值开始计数。计数结束后,内部时钟停止,时钟引脚保持其最后状态。这个过程由图30-40所示的内部“重载”信号触发,SSP1ADD的值被加载到BRG计数器中,每经过一个模块时钟周期,这个过程会发生两次。重载信号的有效时间取决于MSSP当前的工作模式。 表30-4列出了不同指令周期下的时钟速率和加载到SSPADD的BRG值。公式30-1则给出了计算波特率的公式,其中FCLOCK是系统时钟频率,FOSC是振荡器频率,SSP1ADD是设定的重载值。需要注意的是,当用作I2C的波特率发生器时,SSP1ADD的值0x00、0x01和0x02是无效的,这是由于实现的限制。 PIC16F18324是一款具备模拟和数字外设、低功耗特性的单片机,适用于多种应用。它具有C编译器优化的RISC架构,48条指令集,可在高达32MHz的时钟频率下工作。该芯片还包括中断系统、16级深度硬件堆栈、多个定时器以及各种复位功能,如低电流上电复位(POR)、上电延时定时器(PWRT)和欠压复位(BOR)。 此外,它还提供了7KB的闪存程序存储器、512字节的数据SRAM和256字节的EEPROM。工作电压范围从1.8V到3.6V(对于PIC16LF18324/18344),或2.3V到5.5V(对于PIC16F18324/18344)。超低功耗特性使得它在休眠模式下能实现极低的电流消耗,如40nA的空闲模式电流和8μA的工作电流(在32kHz、1.8V条件下)。 为了进一步降低功耗,该微控制器提供了空闲模式、打盹模式和休眠模式,以及外设模块禁止(PMD)功能,可以关闭未使用的外设电源,减少不必要的能耗。数字外设包括可配置逻辑单元(Configurable Logic Cell, CLC)、比较器、PWM和通信接口等,增强了设计的灵活性和功能多样性。 波特率发生器是微控制器中实现串行通信的关键部分,而在PIC16F18324这样的芯片中,它与一系列低功耗和高效能的特性相结合,为各种应用提供了强大的支持。