MC68SZ328时钟与电源管理:从PLL配置到低功耗模式实战
1. 项目概述与核心价值
在嵌入式系统开发,尤其是基于MCU(微控制器)的设计中,时钟和功耗是决定系统稳定性、性能与电池寿命的两大基石。时钟如同系统的心跳,为CPU指令执行、外设数据交换提供精准的节拍;而功耗管理则像是系统的“呼吸调节”,在任务间隙降低能耗,实现性能与续航的平衡。Motorola(后为Freescale,现属NXP)的MC68SZ328处理器,作为早期PDA和手持设备中的明星芯片,其时钟生成模块(CGM)与电源控制模块(PCM)的设计堪称经典,将灵活性与控制力做到了极致。
这套方案的核心价值在于其“可编程性”与“集成度”。它不像一些简单MCU那样,时钟树是固定或选项有限的。MC68SZ328允许开发者通过软件,精细地调整从32.768kHz基准到高达200MHz系统主频的每一个环节,甚至能为USB模块独立生成一个精准的48MHz时钟。这种灵活性意味着,你可以为不同的应用场景“量身定制”时钟方案:在需要高速运算时拉高主频,在待机或执行简单任务时大幅降低频率,甚至关闭部分时钟域,从而在芯片级别实现动态功耗管理(DPM)。对于当年依赖电池供电的移动设备而言,这种能力是延长续航的关键。
更深入一层看,CGM和PCM的紧密耦合设计,体现了硬件层面的系统级优化思维。电源控制不是简单粗暴地关闭整个芯片,而是通过与时钟生成电路的联动,实现从“全速运行”到“深度睡眠”的多个梯度化功耗状态。理解这套机制,不仅能让你更好地驾驭MC68SZ328这类经典芯片,其设计思想——如独立时钟域、可编程PLL、时钟门控与电源模式——在当今许多先进的低功耗MCU(如ARM Cortex-M系列)中依然能看到清晰的影子。因此,剖析MC68SZ328的CGM与PCM,是一次绝佳的“透过经典看本质”的硬件学习之旅。
2. 时钟生成模块(CGM)深度解析
MC68SZ328的时钟生成模块是一个高度集成的系统,它并非简单地使用单一振荡源,而是构建了一个多级、可配置的时钟生成链,以满足CPU、DMA、USB、LCD等不同外设对时钟频率和精度的差异化需求。
2.1 整体架构与双振荡器设计
CGM的基石是两个独立的晶体振荡器电路:
- 32.768 kHz振荡器(OSC32K):这是系统的“心跳”和“守时者”。其频率低、功耗小,主要作用有两个:一是作为实时时钟(RTC)的基准,保证系统在低功耗模式下依然能维持时间信息;二是作为主PLL(MCUPLL)的初始参考时钟源。这个频率在数字系统中也很特殊,是2的15次方,便于进行二进制分频得到1Hz信号,因此广泛用于计时。
- 16 MHz振荡器(OSC16M):这是为高速USB模块专门准备的“专用通道”。USB 1.1全速协议要求精确的48MHz时钟。使用一个独立的16MHz晶振,可以直接通过一个x3的PLL(USBPLL)得到48MHz,避免了从32.768kHz低频源倍频到48MHz所带来的巨大倍频系数和潜在的抖动问题,保证了USB通信时钟的纯净与稳定。
这种双振荡器架构是兼顾低功耗基础运行与高性能专用外设的典型设计。系统在深度睡眠时,可以仅保留32.768kHz振荡器工作,将功耗降至极低;而当需要USB功能时,再独立启动16MHz振荡器及USBPLL。
2.2 核心引擎:MCUPLL与USBPLL详解
PLL(锁相环)是CGM的核心频率合成引擎。MC68SZ328包含两个PLL:为主系统服务的MCUPLL和为USB服务的USBPLL。
MCUPLL时钟生成路径:
- 预倍频器(Pre-Multiplier):32.768 kHz的
OSC_32K_CLK首先进入一个固定x512的预倍频器,输出一个16.777 MHz的中频信号(PRE_MULT_CLK)。这一步将低频信号提升到一个更适合后续PLL处理的频率点。 - 可编程MCUPLL:16.777 MHz的信号作为输入(
Fmcupllin)送入MCUPLL。MCUPLL的输出频率Fmcupll由一组可编程参数决定,计算公式为:Fmcupll = 2 * Fmcupllin * (MMFI + MMFN/MMFD) / MPDFMMFI:乘法因子整数部分(4位,范围5-15,实际值需写入寄存器)。MMFN:乘法因子分数部分的分子(10位,0-1023)。MMFD:乘法因子分数部分的分母(10位,实际值=寄存器值+1,范围1-1024)。MPDF:预分频因子(4位,实际值=寄存器值+1,范围1-16)。 通过配置这四个参数,MCUPLL可以生成最高200MHz的MCUPLL_CLK。这是CPU、DMA、系统总线等绝大多数模块的终极时钟源。
USBPLL时钟生成路径:
- 时钟源选择:USBPLL的输入
Fusbpllin可以是外部16MHz晶振产生的OSC_16M_CLK,也可以是来自MCUPLL路径的预倍频器输出PRE_MULT_CLK(16.777 MHz)。通过配置时钟源控制寄存器(CSCR)的USBSEL位进行选择。通常为了获得更纯净的48MHz USB时钟,推荐使用独立的16MHz晶振。 - 可编程USBPLL:USBPLL的输出频率
Fusbpll计算公式为:Fusbpll = 2 * Fusbpllin * (UMFI + UMFN/UMFD) / UPDF参数定义与MCUPLL类似(UMFI,UMFN,UMFD,UPDF)。为了得到精确的48MHz,通常设置UMFI=3,UMFN=0,UMFD=1,UPDF=1(当输入为16MHz时),即48 = 2 * 16 * (3 + 0/1) / 1。
关键细节与避坑指南:
- PLL锁定时间:无论是MCUPLL还是USBPLL,在频率改变(通过设置
MPRS或UPRS位)或从关闭中唤醒后,都需要一个锁定时间(典型值>100µs)。在这期间,PLL输出是不稳定或没有的。软件必须等待锁定完成后再将此时钟分配给关键模块,否则会导致系统运行异常。数据手册中提到的“旧时钟停止3个VCO周期”到“新时钟锁定”之间的空窗期,是系统的不稳定期。- 参数范围与约束:
MMFI和UMFI的最小值是5。如果软件错误地配置了一个小于5的值,PLL内部会将其当作5来处理。这可能导致实际输出频率远高于预期,引发过频风险。- BRM Order选择:
MBRMO和UBRMO位用于选择PLL中Delta-Sigma调制器(用于小数分频)的阶数。其选择规则基于分数值MPF = MMFN/MMFD(或UMFN/UMFD):
- 当
0.1 < MPF < 0.9时,使用一阶调制(MBRMO/UBRMO = 0),此时频谱特性较好。- 当
MPF ≤ 0.1或MPF ≥ 0.9时,使用二阶调制(MBRMO/UBRMO = 1),此时能获得更好的相位噪声性能。 错误设置此位可能轻微影响时钟的抖动性能。
2.3 时钟分配与输出
生成了高频的MCUPLL_CLK和USBPLL_CLK后,CGM通过一系列分频器,为各个模块提供最终的工作时钟:
- DMA_CLK:直接来源于
MCUPLL_CLK,是许多高速外设(如DRAM控制器、DMA控制器、LCD控制器)的基准时钟。 - CPU_CLK:由
MCUPLL_CLK经过CPU时钟分频器得到。其频率和开关受电源控制模块(PCM)的精细管理。 - SYS_CLK:系统时钟,由
DMA_CLK通过一个可编程分频器(SYSCLK SEL字段控制,分频比可为1, 2, 4, 8, 16)产生,用于UART、PWM、定时器等对频率要求不极端苛刻的外设。 - LCD_CLK:LCD显示时钟,同样由
DMA_CLK通过另一个可编程分频器(LCDCLK SEL字段控制)产生,用于驱动LCD面板的像素时钟。 - USB_CLK:由
USBPLL_CLK(通常为48MHz)直接提供或再分频后得到。
一个非常实用的调试功能是时钟输出。通过配置PFSEL[2]和CSCR寄存器的CLKOSEL字段,可以将8种内部时钟(如PRE_MULT_CLK,MCUPLL_CLK,SYS_CLK,CPU_CLK等)之一从CLKO/PF2引脚输出。这在用示波器测量实际时钟频率、验证PLL锁定状态或为外部电路��供时钟源时极其有用。
2.4 旁路模式与外部时钟输入
为了增加设计的灵活性并方便测试,CGM支持旁路模式。通过将测试引脚TP1接地,可以绕过内部的预倍频器和MCUPLL。此时,MCUPLL_CLK将由外部直接输入的高频时钟信号驱动(例如一个66.32MHz的有源晶振),而32.768kHz的时钟仍需通过PE3/UCLK引脚提供。
在这种模式下,所有内部时钟分频器依然有效,因此你需要重新计算并设置各个分频比,以使CPU_CLK、SYS_CLK等达到目标频率。特别需要注意的是USB时钟,因为外部输入频率可能不是48MHz的整数倍关系,此时就需要利用USB时钟分频器(通过CSCR配置)来将USBPLL_CLK(此时实际是外部输入时钟或分频后的时钟)调整到48MHz。
3. 电源控制模块(PCM)与功耗管理实战
如果说CGM是系统的动力源泉,那么PCM就是一位精明的能源管家。它的核心思想不是简单地“开”或“关”,而是根据CPU的工作负荷,动态地调整“供能”的节奏和强度,从而实现功耗的精细化管理。
3.1 四大电源模式详解
MC68SZ328定义了四种渐进的电源模式,功耗依次降低:
正常模式(Normal Mode):
- 状态:上电复位后的默认模式。PCM未启用,
CPU_CLK持续运行,所有外设时钟根据其使能状态运行。 - 功耗:最高。CPU全速执行指令。
- 进入/退出:上电即进入。通过使能PCM可进入其他模式;从其他模式被唤醒后也回到此模式。
- 状态:上电复位后的默认模式。PCM未启用,
突发模式(Burst Mode):
- 状态:通过设置电源控制寄存器(
PCTLR)的PCEN位使能PCM,并设置WIDTH为一个非零值(1-31)后进入。CPU_CLK不再连续,而是以“突发”的形式出现。 - 工作原理:系统以一个固定的周期(31个
CLK_32K周期,约0.946ms)运行。在每个周期内,CPU_CLK只开启WIDTH个CLK_32K周期,其余时间则被门控关闭。例如,WIDTH=5,则每31个低频周期里,CPU只工作5个周期,休息26个周期。等效的CPU平均频率 =(WIDTH / 31) * CPU_CLK频率。 - 应用场景:CPU负载较轻,但需要保持一定响应能力的场合。如处理低速串口数据、等待按键事件等。通过调整
WIDTH值,可以在响应速度和功耗之间取得平衡。
- 状态:通过设置电源控制寄存器(
打盹模式(Doze Mode):
- 状态:PCM使能(
PCEN=1)且WIDTH设置为0时进入。此时CPU_CLK被完全关闭,CPU核心停止执行指令。 - 功耗:显著低于突发模式。CPU核心功耗几乎为零,但其他外设(如DMA、定时器、RTC)若其时钟未关闭,则仍在运行。
- 唤醒:只能由特定的唤醒事件(如外部中断、RTC闹钟、DMA完成中断等)触发。唤醒后,CPU立即恢复全速时钟,进入正常模式。
- 状态:PCM使能(
睡眠模式(Sleep Mode):
- 状态:功耗最低的模式。通过同时(或按顺序先
DISUPLL后DISPLL)设置PLLCR寄存器的DISUPLL和DISPLL位来关闭两个PLL。此时,MCUPLL_CLK和USBPLL_CLK停止,导致CPU_CLK、DMA_CLK、SYS_CLK、LCD_CLK、USB_CLK全部停止。只有32.768 kHz的振荡器和时钟网络仍在运行,以维持RTC的基本功能。 - 功耗:极低,仅维持最低限度的唤醒逻辑和RTC电路工作。
- 唤醒:同样需要唤醒事件。唤醒过程较慢,因为需要重新使能PLL并等待其锁定(>100µs + 300µs唤醒延迟)。
- 状态:功耗最低的模式。通过同时(或按顺序先
实操心得:模式切换的软件序列进入低功耗模式不是简单地写一个寄存器位。一个健壮的序列是:
- 保存现场:保存必要的CPU状态、外设配置。
- 配置唤醒源:确保所需的中断源已使能,并且其对应的模块时钟在目标模式下不会被关闭(例如,打算用外部中断唤醒,则需确保该GPIO模块的时钟在Doze/Sleep模式下仍有效,通常32.768kHz时钟会为其供电)。
- 停止活动:确保没有正在进行的、不可中断的DMA操作或关键时序操作。
- 执行STOP指令:对于需要关闭MCUPLL进入睡眠的模式,必须在设置
DISPLL位后,立即执行一条STOP汇编指令。这条指令会让CPU进入低功耗状态,并等待唤醒事件。数据手册强调,时钟模块本身无法停止CPU核心,STOP指令是必要的。- 配置PCM/PLL:最后才设置
PCEN、WIDTH或DISPLL等位。对于睡眠模式,顺序应是:DISUPLL=1->DISPLL=1->STOP。- 唤醒处理:在中断服务程序(ISR)中,首先要判断唤醒源,然后恢复PLL和时钟设置(睡眠模式),最后恢复CPU现场并返回。注意,从突发/打盹模式被唤醒后,PCM会自动禁用(
PCEN被硬件清零),CPU回到正常模式。如果你希望事件处理后继续回到低功耗模式,需要在ISR末尾重新配置PCM。
3.2 CPU时钟控制与DMA的协同
PCM对CPU_CLK的控制非常智能,它考虑了系统总线的协同工作。当PCM准备关闭CPU_CLK(进入Doze或Burst模式的关闭期)时,会先检查系统总线状态。如果DMA控制器正在请求或使用总线,PCM会等待,直到DMA操作完成、总线被释放后,才真正门控CPU_CLK。这保证了DMA操作(例如从内存向LCD帧缓冲区传输数据)不会因CPU时钟的间歇性停止而被打断,确保了屏幕刷新等关键任务的连续性。
反之,当CPU处于低功耗模式且CPU_CLK被关闭时,如果发生唤醒事件,PCM会立即恢复CPU_CLK。但如果此时DMA控制器正占用总线,CPU会耐心等待DMA操作结束,然后再去执行唤醒中断服务程序。这种硬件级的互斥机制,避免了总线竞争和数据一致性问题。
4. 寄存器编程指南与配置实例
理解了原理,最终要落实到寄存器配置上。MC68SZ328的CGM和PCM由一组内存映射寄存器控制,地址位于0xFFFFF200附近。
4.1 关键寄存器功能速查
| 寄存器名称 | 地址 | 核心功能 | 关键位域 |
|---|---|---|---|
| PLLCR | 0xFFFFF200 | PLL与时钟全局控制 | MPRS/UPRS(重启PLL),LCDCLK SEL/SYSCLK SEL(分频选择),DISPLL/DISUPLL(关闭PLL) |
| MPFSR0 | 0xFFFFF202 | MCUPLL频率选择0 | MMFI(整数部分),MBRMO(调制器阶数),MMFN(分数分子) |
| MPFSR1 | 0xFFFFF204 | MCUPLL频率选择1 | MPDF(预分频),MMFD(分数分母) |
| UPFSR0 | 0xFFFFF208 | USBPLL频率选择0 | UMFI,UBRMO,UMFN |
| UPFSR1 | 0xFFFFF20A | USBPLL频率选择1 | UPDF,UMFD |
| CSCR | 0xFFFFF206 | 时钟源控制 | USBSEL(USB时钟源选择),CLKOSEL(测试时钟输出选择) |
| PCTLR | 0xFFFFF207 | CPU电源控制 | PCEN(使能PCM),WIDTH(突发模式宽度) |
4.2 典型配置流程与代码示例
假设我们需要配置一个常见的场景:系统主频66MHz,USB时钟48MHz,并进入突发模式以节省功耗。
步骤1:配置MCUPLL产生66MHz时钟已知输入Fmcupllin = 16.777 MHz,目标Fmcupll = 66 MHz。 根据公式:66 = 2 * 16.777 * (MMFI + MMFN/MMFD) / MPDF为了简化,尽量让分数部分为0。试算:令MPDF=1,则(MMFI + MMFN/MMFD) = 66 / (2*16.777) ≈ 1.966。 取MMFI=1,则MMFN/MMFD ≈ 0.966。为了精确,选择接近的分数。例如,取MMFD=1024,MMFN=989,则0.966 ≈ 989/1024 ≈ 0.9658。代���验证:2*16.777*(1+989/1024)/1 ≈ 65.99 MHz,误差可接受。 检查MPF=989/1024≈0.966,介于0.1和0.9之间,因此设置MBRMO=0(一阶调制)。 寄存器配置:
MPFSR0:MMFI=1(二进制0001),MBRMO=0,MMFN=989。MPFSR1:MPDF=1(对应寄存器值0),MMFD=1024(对应寄存器值1023)。
步骤2:配置USBPLL产生48MHz时钟使用外部16MHz晶振,Fusbpllin = 16 MHz。 目标Fusbpll = 48 MHz。公式:48 = 2 * 16 * (UMFI + UMFN/UMFD) / UPDF令UPDF=1,UMFD=1(分数部分为0),则UMFI = 48 / (2*16) = 1.5。但UMFI是整数部分,此路不通。 正确配置:令UMFI=3,UMFN=0,UMFD=1,UPDF=1。验证:2*16*(3+0/1)/1 = 96 MHz?不对。这里需要注意,公式中的Fusbpll是PLL的输出频率,而USB模块可能需要的是经过分频后的时钟。实际上,为了得到精确的48MHz,通常设置UMFI=2,UMFN=0,UMFD=1,UPDF=1,此时Fusbpll=2*16*(2+0/1)/1=64MHz,然后通过USB时钟分频器(在CSCR或相关寄存器中,文档未明确给出,需查更完整手册)进行分频(例如除以1.333?)。更常见的做法是利用PLL的小数分频功能直接产生48MHz。假设我们通过计算得到一组参数:UMFI=3,UMFN=0,UMFD=1,UPDF=2。则Fusbpll=2*16*(3+0/1)/2=48MHz。这个参数更合理。 检查MPF=0/1=0,小于0.1,因此设置UBRMO=1(二阶调制)。 寄存器配置:
UPFSR0:UMFI=3,UBRMO=1,UMFN=0。UPFSR1:UPDF=2(对应寄存器值1),UMFD=1(对应寄存器值0)。
步骤3:设置系统时钟和LCD时钟分频假设DMA_CLK直接使用66MHz的MCUPLL_CLK。
- 设置
PLLCR的SYSCLK SEL=010,表示SYS_CLK = DMA_CLK / 8 = 8.25MHz,供UART等外设使用。 - 设置
PLLCR的LCDCLK SEL=001,表示LCD_CLK = DMA_CLK / 4 = 16.5MHz,用于驱动LCD。
步骤4:应用PLL新频率并等待锁定
// 假设寄存器已定义为volatile指针 #define PLLCR (*(volatile uint16_t *)0xFFFFF200) #define MPFSR0 (*(volatile uint16_t *)0xFFFFF202) #define MPFSR1 (*(volatile uint16_t *)0xFFFFF204) #define UPFSR0 (*(volatile uint16_t *)0xFFFFF208) #define UPFSR1 (*(volatile uint16_t *)0xFFFFF20A) void configure_clocks(void) { // 1. 配置MCUPLL参数 (示例值,需根据实际计算调整) MPFSR0 = (1 << 11) | (0 << 10) | 989; // MMFI=1, MBRMO=0, MMFN=989 MPFSR1 = (0 << 11) | (1023 << 0); // MPDF=1(0), MMFD=1024(1023) // 2. 配置USBPLL参数 (示例值) UPFSR0 = (3 << 11) | (1 << 10) | 0; // UMFI=3, UBRMO=1, UMFN=0 UPFSR1 = (1 << 11) | (0 << 0); // UPDF=2(1), UMFD=1(0) // 3. 设置分频 PLLCR = (PLLCR & ~0x7800) | (0x2 << 11); // 设置SYSCLK SEL=010 (8分频) PLLCR = (PLLCR & ~0x0700) | (0x1 << 8); // 设置LCDCLK SEL=001 (4分频) // 4. 重启PLL以使新频率生效 PLLCR |= (1 << 15); // 设置MPRS位,重启MCUPLL PLLCR |= (1 << 14); // 设置UPRS位,重启USBPLL // 5. 关键:等待PLL锁定(至少100µs,通常用延时循环) delay_us(150); // 实现一个微秒级延时函数 }步骤5:配置并进入突发模式
#define PCTLR (*(volatile uint8_t *)0xFFFFF207) void enter_burst_mode(uint8_t width) { if (width > 31) width = 31; // WIDTH字段只有5位 PCTLR = (1 << 7) | width; // 设置PCEN=1,并配置WIDTH // 此后,CPU时钟将按照设定的突发模式运行 } // 例如,让CPU大约以1/6的全速运行(宽度=5) enter_burst_mode(5);5. 常见问题排查与调试技巧
在实际开发中,时钟和电源配置出错会导致系统无法启动、运行不稳定或功耗异常。以下是一些典型问题及排查思路:
问题1:系统上电后无反应,或程序跑飞。
- 排查PLL锁定:最可能的原因是PLL未成功锁定或配置参数错误导致输出频率超范围。首先检查
TP1引脚是否意外接地(导致进入旁路模式而外部无时钟)。然后,用示波器测量CLKO引脚输出的时钟(配置为MCUPLL_CLK),看是否有信号以及频率是否正确。如果没有示波器,可以在代码中配置PLL后,增加一个较长的软件延时(几毫秒)再初始化其他外设,确保锁定时间充足。 - 检查参数计算:仔细核对
MMFI/UMFI是否大于等于5,MMFD/UMFD是否在1-1024范围内,计算出的频率是否超过200MHz限制。使用一个简单的Excel表格或脚本进行公式验算是好习惯。 - 验证启动代码:确认在初始化CGM之前,没有过早地访问依赖高速时钟的外设(如SDRAM)。
问题2:USB通信不稳定或无法枚举。
- 时钟精度:USB对时钟精度要求很高(通常误差需在±0.25%以内)。确保使用的是质量合格的16MHz晶振,并且负载电容匹配。测量
USB_CLK或从CLKO输出的USBPLL_CLK频率是否精确为48.000MHz。 - 时钟源选择:检查
CSCR寄存器的USBSEL位。如果使用外部16MHz晶振,应设置为1。如果错误地选择了预倍频器输出的16.777MHz,会导致USB时钟频率偏差约4.8%,超出容限。 - 电源噪声:PLL对电源噪声敏感。检查USB和PLL模拟电源引脚(
VDDA,VSSA)的滤波是否良好,建议使用磁珠和去耦电容隔离数字电源噪声。
问题3:进入睡眠模式后无法唤醒。
- 唤醒源配置:确认用于唤醒的中断源(如GPIO中断、RTC闹钟)已在进入睡眠前正确使能,并且其对应的模块在睡眠模式下仍有时钟(通常连接到32.768kHz时钟域)。有些外设模块在
MCUPLL关闭后也会失能,不能作为唤醒源。 - 中断引脚状态:检查唤醒中断引脚的外部电路,确保在睡眠模式下能产生有效的边沿或电平变化。注意有些MCU要求唤醒信号保持一定宽度。
- 软件序列:严格遵循“配置唤醒源 -> 设置
DISUPLL-> 设置DISPLL-> 执行STOP指令”的序列。遗漏STOP指令是常见错误。 - 唤醒后初始化:从睡眠模式唤醒后,MCUPLL和USBPLL需要重新锁定。唤醒中断服务程序(ISR)的前几条指令不能依赖高速时钟操作,应先等待一段时间(例如300µs以上),或查询PLL锁定状态位(如果提供),然后再恢复正常的系统操作。
问题4:功耗测量值高于预期。
- 外设时钟门控:进入低功耗模式前,是否关闭了所有不必要外设的时钟?检查各模块的时钟使能寄存器(如GPIO、定时器、UART等),在不使用时将其禁用。
- 未使用的引脚:将未使用的GPIO引脚设置为输出低或带上拉/下拉输入,避免浮空引脚产生漏电流。
- 测量方法:确保测量的是MCU核心的电流,而不是整个板卡的电流。断开不必要的负载。使用突发模式时,平均功耗与
WIDTH值直接相关,理论计算值应与测量值趋势相符。
调试技巧:利用CLKO引脚CLKO/PF2引脚是调试时钟系统的利器。在系统启动初期,可以将其配置为输出PRE_MULT_CLK(16.777MHz),验证32.768kHz晶振和预倍频器是否工作。然后切换为输出MCUPLL_CLK,验证PLL是否锁定及频率是否正确。在调试功耗模式时,可以输出CPU_CLK,直观地看到在突发模式下时钟的启停波形,确认WIDTH设置是否生效。
