MSSPx 波特率发生器原理与应用

需积分: 50 12 下载量 104 浏览量 更新于2024-08-09 收藏 6.49MB PDF 举报
"这篇教程介绍了如何在DOS 6.22系统中安装波特率发生器,重点关注在PIC16F1826微控制器上的应用。内容涉及到微控制器中的SSPx模块,该模块包含一个波特率发生器,用于在I2C和SPI主模式下生成时钟信号。波特率发生器的重载值存储在SSPxADD寄存器中,当写入SSPxBUF时,计数器开始递减计数。在完成操作后,内部时钟会自动停止,时钟引脚保持新状态。" 在PIC16F1826微控制器中,波特率发生器(BRG)是一个关键组件,它负责在通信协议如I2C和SPI中产生必要的时钟频率。SSPxADD寄存器用于设置BRG的重载值,这个值决定了时钟的频率。当写入SSPxBUF时,BRG开始计数,其内部逻辑会在每个模块时钟周期的两个振荡周期内加载SSPxADD的值。图25-39和表25-4展示了不同指令周期下时钟速率与SSPxADD值之间的关系。 公式25-1可能涉及了计算BRG计数器频率的数学表达式,但由于没有提供具体公式,我们无法详细解释。图25-40是一个波特率发生器的框图,它描绘了BRG计数器、SSPxCLK时钟信号和重载控制之间的关系。 表25-4列出了在不同FOSC(系统时钟频率)和FCY(时钟周期)条件下,设定不同的SSPxADD值所能得到的MSSPx时钟速率。需要注意的是,在I2C模式下,SSPxADD的值0x00、0x01和0x02是无效的,这是由于I2C协议的限制。 当使用I2C模式时,必须注意其不符合400 kHz I2C规范,这意味着在需要高速率的应用中应谨慎使用。此外,SSPxM<3:0>位用于控制BRG递减计数器,而SCLx是I2C接口的时钟线。 总结来说,这个教程涵盖了PIC16F1826微控制器中波特率发生器的工作原理、配置方法以及与通信协议的关系,对于理解和使用DOS 6.22环境下的波特率发生器是很有帮助的。同时,也提醒了用户在处理Microchip的设备时,要参考最新的英文文档,并了解其知识产权政策。