pll 寄存器的配置分解成七步,照着顺序走就能让28335稳当地跑在150 mhz上

首先,咱们把那个 PLL 寄存器的配置分解成七步,照着顺序走就能让 28335 稳当地跑在 150 MHz 上。每一步的目的和代码咱们都得弄清楚。第一步,得先确认芯片是不是在软件模式里。只有当 PLL[MCLKSTS] 置 1 了,芯片才算是正常工作,这时候才能放心写寄存器。检测代码特别简单,要是状态位是 0,说明时钟丢了,得立马执行 ESTOP0 停机。第二步,把 DIVISEL 清成 0,为后面的分频做准备。写这个寄存器之前必须强制清零,不然会写不进去。用 EALLOW 和 EDIS 保护一下,防止误操作。第三步,关掉 MCLKOFF,这样才能安心写 PLLCR。要是不关这个检测电路,万一写错了马上就会触发停机。第四步是关闭看门狗,免得配置过程被它误判复位打断。第五步就是等 PLLLOCKS 变高了,说明 PLL 锁上了。这时候要一直轮询,直到这个位从 0 变 1。第六步把 MCLKOFF 重新打开,让系统恢复对时钟丢失的检测。第七步根据需求设置 DIVISEL 的值。如果是 1 或者 2 就直接写进去;要是 3 就分两步来:先写 2,延时 50 微秒,再写 3。因为芯片手册里说中间状态必须存在,这是为了防止抖动。代码写完了就完事了。这整个流程按图索骥、步步为营就能把主频锁死在 150 MHz,给后续的复杂算法提供可靠的时钟源。