ZHCU032K December 2004 – August 2022 MSP430AFE221 , MSP430AFE222 , MSP430AFE223 , MSP430AFE231 , MSP430AFE232 , MSP430AFE233 , MSP430AFE251 , MSP430AFE252 , MSP430AFE253 , MSP430F2001 , MSP430F2002 , MSP430F2003 , MSP430F2011 , MSP430F2012 , MSP430F2013 , MSP430F2101 , MSP430F2111 , MSP430F2112 , MSP430F2121 , MSP430F2122 , MSP430F2131 , MSP430F2132 , MSP430F2132-EP , MSP430F2232 , MSP430F2234 , MSP430F2252 , MSP430F2252-Q1 , MSP430F2254 , MSP430F2272 , MSP430F2272-Q1 , MSP430F2274 , MSP430F2274-EP , MSP430F233 , MSP430F2330 , MSP430F235 , MSP430F2350 , MSP430F2370 , MSP430F2410 , MSP430F2416 , MSP430F2417 , MSP430F2418 , MSP430F2419 , MSP430F247 , MSP430F2471 , MSP430F248 , MSP430F2481 , MSP430F249 , MSP430F2491 , MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619 , MSP430G2001 , MSP430G2101 , MSP430G2102 , MSP430G2111 , MSP430G2112 , MSP430G2121 , MSP430G2131 , MSP430G2132 , MSP430G2152 , MSP430G2153 , MSP430G2201 , MSP430G2201-Q1 , MSP430G2202 , MSP430G2203 , MSP430G2210 , MSP430G2211 , MSP430G2212 , MSP430G2213 , MSP430G2221 , MSP430G2230 , MSP430G2231 , MSP430G2231-Q1 , MSP430G2232 , MSP430G2233 , MSP430G2252 , MSP430G2253 , MSP430G2302 , MSP430G2303 , MSP430G2312 , MSP430G2313 , MSP430G2332 , MSP430G2333 , MSP430G2352 , MSP430G2353 , MSP430G2402 , MSP430G2403 , MSP430G2412 , MSP430G2413 , MSP430G2432 , MSP430G2433 , MSP430G2444 , MSP430G2452 , MSP430G2453 , MSP430G2513 , MSP430G2533 , MSP430G2544 , MSP430G2553 , MSP430G2744 , MSP430G2755 , MSP430G2855 , MSP430G2955 , MSP430TCH5E
波特率发生器的第一阶段是 16 位的计数器和比较器。在发送或接收的每一位的开始,计数器都用 INT (N/2) 装载,其中 N 是存储的在 UxBR0 和 UxBR1 中的结合值。为每个位周期的半周期计数器重新加载 INT (N/2),给出 N BRCLKs 的一个总位周期。对于一个给定的 BRCLK 时钟源,使用的波特率决定了需要的分频系数 N:
分频系数 N 通常是一个非整数的值,它的整数部分可以由预分频器/除法器实现。波特率发生器的第二阶段,调制器,被用于尽可能地满足小数部分。因此系数 N 被定义为:
其中,
N = 目标分频系数
UxBR = 寄存器 UxBR0 和 UxBR1 的16 位表示
i = 字符中的比特位置
n = 字符中的总位数
mi= 每个对应的调制位的数据(1 或 0)
当需要一个非整数分频时,BITCLK 可以通过调制器进行位到位的调整,以此来满足时序要求。如果调制器位 mi被置位,那么每个位的时序都将由一个 BRCLK 时钟周期进行扩展。每当一个位被接收或发送时,在调制控制寄存器中的下一个位将决定该位的时序。一个置位的调制位通过 1 来增加分频系数,而一个清除的调制位通过给定的 UxBR 来保持分频系数。
起始位的时序由 UxBR 加上 m0 来确定,下一位由UxBR 加上 m1 来确定,等等。调制序列开始于最低有效位 (LSB)。当字符大于 8 位时,调制序列用 m0 重新开始并继续进行直到所有的位都被处理。