CC1021射频芯片SPI配置与三种通信模式深度解析
1. 项目概述与核心价值
如果你正在为一个嵌入式无线项目选型,或者手头恰好有一片德州仪器(TI)的CC1021射频收发芯片,那么你大概率会面临一个核心挑战:如何让这颗功能强大的射频芯片“听话”地工作起来。CC1021是一款经典的窄带、低中频(Low-IF)收发器,工作在402-470MHz和804-930MHz频段,以其出色的灵敏度和灵活的配置性在工业控制、无线传感等领域有着广泛的应用。但它的强大,也意味着其内部寄存器配置相当复杂,从频率合成、数据率设置到滤波器带宽、调制偏差,每一个环节都需要通过一个4线SPI接口进行精细的“编程”。
这份文档,正是为你深入解析CC1021的“控制中枢”——其SPI配置接口与三种核心数据通信模式。很多工程师拿到芯片手册,看到几十个寄存器、复杂的时序图和一堆公式就头疼,最终只能照搬参考设计,知其然而不知其所以然。一旦应用场景稍有变化,比如需要改变通信速率、切换编码方式或者优化接收灵敏度,就会束手无策。我将结合自己调试多款类似射频芯片的经验,不仅带你读懂手册里的时序和寄存器定义,更会拆解背后的设计逻辑,分享如何根据你的具体需求(比如通信距离、数据速率、抗干扰性)来选择和配置最合适的工作模式。无论是同步NRZ、曼彻斯特编码还是透明UART模式,每一种都有其最佳的应用场景和配置要点,理解它们,你才能真正驾驭这颗芯片,设计出稳定可靠的无线链路。
2. 微控制器接口与SPI配置接口深度解析
CC1021与微控制器(MCU)的交互是整个系统设计的基石。它清晰地划分了两个层面的通信:配置接口和信号接口。配置接口用于“写参数”,即初始化芯片的工作状态;信号接口用于“传数据”,即收发实际的无线数据包。这种分离的设计使得控制逻辑和数据流可以独立优化。
2.1 接口引脚功能与硬件连接
CC1021的配置接口是一个标准的4线SPI从机接口,包括:
- PSEL (Program SELect):片选信号,低电平有效。这是SPI通信的“开关”,只有在PSEL被拉低时,CC1021才会监听PDI和PCLK上的指令。
- PCLK (Program CLocK):串行时钟,由主设备(MCU)提供。数据在时钟边沿被采样。
- PDI (Program Data In):主设备输出、从设备输入的数据线,用于MCU向CC1021写入配置数据。
- PDO (Program Data Out):主设备输入、从设备输出的数据线,用于MCU从CC1021读取状态或配置数据。
在硬件连接上,手册给出了一个非常实用的节省IO口的方案:如果MCU的IO资源紧张,可以将PDI和PDO短接,并连接至MCU的一个双向IO口。在写操作时,MCU将该引脚配置为输出;在读操作前,MCU需将其切换为高阻输入模式。这需要MCU的GPIO支持快速的输入输出模式切换,并且在切换期间要确保时序满足要求,否则容易导致数据冲突。我个人的经验是,如果MCU的IO口足够,尽量使用独立的引脚连接PDI和PDO,这样软件驱动更简单、更可靠,避免了模式切换带来的潜在时序风险。
注意:PSEL引脚内部有一个上拉电阻。在CC1021进入掉电模式(Power Down)时,务必确保MCU将此引脚设置为高电平输出或设置为高阻态(内部上拉生效)。如果MCU将其意外拉低,即使芯片处于掉电模式,也会因为上拉电阻的电流通路而产生微小的漏电流,这对于电池供电的敏感应用是不可接受的。
信号接口则相对简单,主要涉及两个引脚:
- DIO (Data I/O):双向数据引脚。在大多数模式下,它既是发射时的数据输入,也是接收时的数据输出。
- DCLK (Data CLocK):数据时钟引脚。在同步模式下,由CC1021产生并提供给MCU,用于同步数据采样;在异步模式下,其功能可能变化。
此外,LOCK引脚是一个非常有用的状态指示引脚。它主要指示PLL(锁相环)是否锁定。在无线通信中,PLL锁定意味着本振频率已经稳定,此时进行发射或接收操作才是可靠的。你可以将MCU的一个输入引脚连接到LOCK,用于监控芯片状态,实现诸如“等待锁定后再发送”的稳健逻辑。它还可以被配置用于载波侦听(CS)或其他测试信号输出。
2.2 SPI读写操作时序与寄存器映射
CC1021的SPI协议帧格式非常规整。每一次通信(读或写)都传输一个16位的数据帧。这16位的结构如下:
- 位15-9 (7位):寄存器地址(A6:A0)。A6是最高位(MSB),最先发送。
- 位8:读/写控制位(R/W)。1表示写操作,0表示读操作。这一点需要特别注意,与某些器件的定义相反。
- 位7-0 (8位):数据字节(D7:D0)。D7先发送。
写操作流程:
- MCU将PSEL拉低,启动通信。
- MCU在PCLK的上升沿,依次将7位地址、R/W位(置1)、8位数据通过PDI线移出。
- 数据在PDI上的建立时间(TSD)和保持时间(THD)需满足手册要求(通常为25ns),分别对应PCLK上升沿前后数据必须稳定的时间。
- 当最后一位数据(D0)在PCLK上升沿被锁存后,CC1021内部会立即将这8位数据写入由地址指定的配置寄存器。
- MCU将PSEL拉高,结束本次操作。PSEL的高电平时间(TSH)需至少50ns。
读操作流程:
- MCU将PSEL拉低。
- MCU通过PDI发送7位目标寄存器地址,以及R/W位(置0)。
- 在发送完R/W位(即第9个PCLK上升沿)后,CC1021会接管PDO线。
- 在随后的8个PCLK周期内,CC1021会在PCLK的下降沿将寄存器数据放到PDO上。
- MCU需要在PCLK的上升沿对PDO线进行采样,以读取数据。
- 读操作完成后,MCU将PSEL拉高。
这里有一个关键时序细节:对于读操作,CC1021在PCLK下降沿更新PDO数据,MCU在上升沿采样。这意味着MCU的SPI模块如果配置为“时钟上升沿采样”,则正好匹配。但很多MCU的SPI主模式通常是在时钟边沿输出数据,在相反的边沿采样数据。因此,你可能需要将MCU的SPI时钟极性(CPOL)和相位(CPHA)配置为模式0(CPOL=0, CPHA=0)或模式3(CPOL=1, CPHA=1),以确保采样边沿正确。最稳妥的方法是使用GPIO模拟SPI时序,这样可以完全掌控。
CC1021共有33个8位配置寄存器,完成一次全寄存器配置需要发送33个这样的16位帧。手册提到,在PCLK为10MHz时,完整配置时间小于53ms。但在实际应用中,我们通常不会在每次通信前都配置所有寄存器。一般的做法是:上电后进行一次全寄存器初始化,之后在切换模式(如接收/发射切换)时,只修改必要的几个寄存器(如MAIN寄存器中的模式控制位),这可以大大缩短模式切换时间,对于需要快速跳频或时分双工(TDD)的系统至关重要。
3. 三种数据通信模式详解与应用场景
CC1021支持三种数据格式,通过MODEM寄存器中的DATA_FORMAT[1:0]位进行选择。这三种模式决定了数据在DIO/DCLK引脚上的呈现方式,以及芯片内部是否参与编码/解码和时钟恢复。
3.1 同步NRZ模式
这是最直接、最常用的模式。NRZ(Non-Return-to-Zero)即不归零码,逻辑1和0分别用固定的高、低电平表示。
- 发射模式 (TX):MCU需要提供数据(DIO)和时钟(DCLK)。CC1021在DCLK的上升沿从DIO引脚采样数据,然后直接将其用于FSK调制,不进行任何编码。这意味着MCU必须生成与期望波特率精确同步的DCLK时钟,并将数据在时钟上升沿准备好。
- 接收模式 (RX):CC1021负责从接收到的射频信号中恢复出时钟和数据。它会在DCLK引脚输出恢复出的时钟,并在DIO引脚输出同步的NRZ数据。MCU应在DCLK的上升沿对DIO数据进行采样。
优点:效率最高,因为数据没有经过冗余编码。在相同的符号速率(波特率)下,有效数据速率(比特率)最高。缺点:对收发双方的时钟同步要求很高。如果MCU的时钟与CC1021恢复的时钟有微小偏差,在长数据包传输中可能会累积误差导致错位。此外,NRZ码流中如果出现长串的连续0或1,会导致信号中没有电平跳变,不利于接收端进行时钟恢复。应用场景:适用于通信双方有稳定、精准时钟基准的系统,或者数据包较短、时钟漂移影响不大的场景。常用于对传输效率要求高、且有额外前导码(Preamble)用于时钟同步的定制协议。
3.2 同步曼彻斯特编码模式
曼彻斯特编码是一种自同步的编码方式,每个比特位中间都有一次电平跳变。
- 编码规则:在CC1021的语境下,“0”编码为低到高的跳变,“1”编码为高到低的跳变(请注意,这是定义之一,另一种定义可能相反,务必与通信对端统一)。
- 发射模式 (TX):MCU向CC1021提供NRZ格式的原始数据和DCLK。CC1021内部编码器会在DCLK上升沿采样数据,并自动将其转换为曼彻斯特编码后的波形再进行FSK调制。此时,有效的比特率是波特率的一半。例如,如果你需要9.6kbps的数据速率,则需要设置波特率为19.2 kBaud。
- 接收模式 (RX):CC1021接收信号,内部完成曼彻斯特解码和时钟恢复,然后在DCLK和DIO上输出同步的NRZ格式原始数据,供MCU读取。
优点:
- 强大的时钟恢复能力:每个比特位中间的固定跳变为接收端提供了丰富的时钟信息,即使在有噪声的信道中,也能很好地恢复出时钟,抗干扰能力强。
- 直流平衡:曼彻斯特编码保证了信号中的高电平和低电平时间各占50%,长期来看直流分量为零。这对于某些类型的FSK解调器(特别是需要直流平衡的)非常有利。
- 兼容性:手册特别提到,此模式确保了与TI更早期的CC400/CC900系列设计的兼容性。
缺点:编码效率低,有效数据速率只有波特率的一半,带宽利用率较低。应用场景:对通信可靠性要求高、时钟同步困难的场景,例如在电机、继电器等强干扰环境下的工业控制;或者需要与旧有曼彻斯特编码系统兼容的项目。
3.3 透明异步UART模式
此模式最为特殊,CC1021几乎不处理数据链路层的任何事务。
- 发射模式 (TX):CC1021仅仅将DIO引脚上的电平变化直接映射到射频载波的频率偏移上(FSK)或通断上(OOK)。它不提供DCLK,也不关心数据的起始位、停止位或波特率。这些全部由MCU的UART外设(或软件UART)来产生。数据格式是标准的异步串行格式(如8N1)。
- 接收模式 (RX):CC1021的 demodulator(解调器)将射频信号解调为基带信号后,直接送到DIO(或DCLK,取决于
SEP_DI_DO设置)引脚。芯片内部不进行位同步、不识别起始/停止位,也不进行曼彻斯特解码。MCU需要像接收一个普通的、未经整形的UART信号一样,用自己的UART外设(或软件)以正确的波特率去采样这个“Raw Data”(原始数据)。
引脚配置有一个关键选项SEP_DI_DO(位于INTERFACE寄存器):
SEP_DI_DO = 0:DIO引脚在发射时作为数据输入,接收时作为数据输出。DCLK引脚无效,可被DATA_FORMAT[0]位设置为固定高或低电平。SEP_DI_DO = 1:DIO引脚仅在发射时作为数据输入。在接收时,解调后的数据从DCLK引脚输出!此时,你需要将MCU的UART_RX连接到CC1021的DCLK引脚。这个设计主要是为了在同步模式下,将数据输出分离到LOCK引脚(当SEP_DI_DO=1时,同步模式的数据输出会改到LOCK脚),但在异步模式下,它改变了数据输出引脚。
优点:接口最简单,直接与MCU的UART对接,软件层面无需额外的时钟同步逻辑,开发速度快。缺点:性能最差。因为缺少芯片内部的时钟恢复和数据整形,抗噪声和抗频率漂移的能力完全依赖于MCU的UART接收逻辑和信号质量。在低信噪比或存在频率误差时,误码率会显著升高。应用场景:仅适用于通信环境极好、距离很近、对数据速率和可靠性要求不高的简易应用,或者用于快速原型验证。不推荐用于任何严肃的产品设计。
3.4 模式选择与实战建议
如何选择?我的经验是:
- 追求可靠,首选曼彻斯特编码:特别是对于新手或者环境复杂的应用。它用带宽换来了极高的鲁棒性。
- 追求速率和效率,选同步NRZ:但必须确保你的通信协议有足够长的、富含跳变的前导码(如
0xAA或0x55这样的0101交替模式),并在MCU端做好位同步处理。 - 除非万不得已,避免使用透明UART模式:它把最困难的时钟同步问题抛给了系统设计者,在无线环境中很难稳定工作。
无论选择哪种模式,一个良好的前导码(Preamble)和帧同步字(Sync Word)都是必不可少的。手册明确建议使用010101...的比特模式作为前导码。在曼彻斯特模式下,这个比特模式会产生01100110...的芯片(Chip)模式,能帮助内部位同步器快速锁定。
4. 关键参数配置原理与计算实践
理解了通信模式,下一步就是通过SPI配置寄存器,让CC1021按照你期望的频率、速率和性能工作。这部分涉及一些计算,但一旦掌握公式,就能灵活适配你的需求。
4.1 频率编程:设定通信频道
CC1021的频率由FREQ_A和FREQ_B两组24位寄存器控制,可以快速切换。发射载波频率(或接收本振频率)f_c的计算公式取决于频段:
- 402-470 MHz频段 (
BANDSELECT=0):f_c = (FREQ + 0.5 * DITHER) / 2^16 * f_ref * 4 - 804-930 MHz频段 (
BANDSELECT=1):f_c = (FREQ + 0.5 * DITHER) / 2^15 * f_ref * 4
其中:
FREQ: 是FREQ_2,FREQ_1,FREQ_0寄存器组成的23位整数值(FREQ_0的最低位是DITHER使能位)。DITHER: 高频小数分频的抖动使能位,用于抑制杂散,通常建议使能(设为1)。f_ref: 参考频率,由晶振频率f_xosc和参考分频比REF_DIV决定:f_ref = f_xosc / (REF_DIV + 1)。REF_DIV取值1-7。
实战计算示例: 假设我们在433MHz频段使用f_xosc = 14.7456 MHz的晶振,目标频率f_c = 433.92 MHz。
- 选择
REF_DIV。为了降低相位噪声,REF_DIV应尽可能小。我们先试REF_DIV=1,则f_ref = 14.7456 / (1+1) = 7.3728 MHz。 - 检查
f_ref是否满足手册要求:对于402-470MHz频段,要求f_ref >= f_xosc / 512。14.7456/512 ≈ 0.0288 MHz,远小于7.3728MHz,满足。 - 代入公式:
433.92e6 = (FREQ + 0.5) / 65536 * 7.3728e6 * 4 - 解得:
FREQ ≈ 433.92e6 * 65536 / (7.3728e6 * 4) - 0.5 ≈ 96469.5 - 取整
FREQ = 96469(0x17995)。将0x17995(23位)拆分写入FREQ_2A(高7位),FREQ_1A(中8位),FREQ_0A(低8位,且DITHER位设为1)。
FSK的两个实际发射频率为f0 = f_c - f_dev和f1 = f_c + f_dev,f_dev由DEVIATION寄存器设置。
4.2 数据率编程:设定通信速度
数据率(波特率B.R.)由晶振频率和CLOCK寄存器中的MCLK_DIV1、MCLK_DIV2分频器共同决定:B.R. = f_xosc / [8 * (REF_DIV + 1) * DIV1 * DIV2]
DIV1和DIV2的值分别由MCLK_DIV1[2:0]和MCLK_DIV2[1:0]查表获得。手册中的表5-4给出了常用晶振频率下可实现的典型数据率,非常实用。例如,使用14.7456MHz晶振,通过选择不同的REF_DIV、DIV1和DIV2,可以实现4.8k, 9.6k, 19.2k, 38.4k, 76.8k, 153.6k等标准波特率。
一个重要限制:在同步NRZ和曼彻斯特模式下,数据率必须严格按上述公式设置。而在透明异步UART模式下,理论上可以使用最高153.6 kBaud以下的任意速率,因为时钟恢复由MCU完成。但实际速率受限于芯片的调制/解调带宽。
4.3 接收机关键参数:滤波器带宽与灵敏度
接收机的性能很大程度上由中频(IF)滤波器带宽决定。CC1021的IF频率f_IF由ADC_DIV[2:0]设置:f_IF = f_xosc / [8 * (ADC_DIV + 1)],理想值是307.2kHz。
接收信道滤波器带宽(ChBW)则由FILTER寄存器中的DEC_DIV[2:0]控制:ChBW = 307.2 / (DEC_DIV + 1) kHz。可选带宽从38.4kHz到307.2kHz。
如何选择带宽?这需要权衡。带宽越窄,选择性越好(抗邻道干扰能力强),灵敏度通常也更高(因为通过的热噪声更少)。但带宽过窄,会导致信号失真,尤其是在存在频率误差时。手册给出了一个最小带宽的估算公式:ChBW > SBW + 2 * f_error其中:
SBW(信号带宽)≈ 波特率 + 频率偏移(对于FSK,频率偏移是2 * f_dev)。f_error(总频率误差)= ±2 * 晶体精度(ppm) * 射频频率。
实战举例:假设系统工作在433MHz,数据率19.2kbps,频率偏差±9.9kHz,使用±20ppm的晶体。
SBW = 19.2 + 2*9.9 = 39 kHz。f_error = 2 * 20e-6 * 433e6 ≈ 17.32 kHz。- 最小所需
ChBW > 39 + 2*17.32 ≈ 73.64 kHz。 - 查表5-5,比73.64kHz大的最接近的选项是76.8kHz(
DEC_DIV=3)。
因此,应选择76.8kHz的滤波器带宽。如果选择更窄的51.2kHz,信号可能会被严重衰减,导致接收灵敏度急剧下降甚至无法通信。如果晶体精度更差(如±40ppm),则可能需要选择102.4kHz的带宽。
4.4 RSSI读取与功率估算
CC1021提供了数字RSSI(接收信号强度指示)功能,值存储在RSSI寄存器(0-106)。这是一个对数测量的值:RSSI = 4 * log2(信号幅度)。因此,RSSI值每变化1,代表信号功率变化约1.5 dB。
要将其转换为实际的接收功率(dBm),需要进行校准。手册给出了公式:P = 1.5 * RSSI - 3 * VGA_SETTING - RSSI_Offset。其中VGA_SETTING是可变增益放大器的设置值,RSSI_Offset与信道带宽有关,通常需要在实际系统中通过测量确定。
一个更实用的方法是利用手册中的典型曲线图(Figure 5-11, 5-12)。例如,在433MHz、带宽76.8kHz时,从图中可查得,当输入功率为-100dBm时,RSSI读数约为50。那么,在你的实际系统中,读取到RSSI值为RSSI_meas时,对应的功率大致为:P_est = -100 + 1.5 * (RSSI_meas - 50) dBm。这可以用于实现简单的场强检测或链路质量评估。
5. 高级功能与调试技巧
5.1 镜像抑制校准
对于低中频接收机,镜像干扰是一个重要问题。CC1021提供了PHASE_COMP和GAIN_COMP寄存器,用于微调I/Q两路的相位和增益平衡,以抑制镜像频率信号。校准过程需要向芯片的镜像频率(f_desired - 614.4kHz)注入一个未调制的载波,然后执行手册第5.9.6节给出的一整套迭代算法,调整这两个寄存器值,使在目标信道上测得的RSSI值最小(即镜像泄漏最小)。
实操要点:
- 信号源:需要一个信号发生器。校准信号强度很关键,太强会因非线性失真影响结果,太弱则会被噪声淹没。手册建议比目标信道灵敏度高50-60dB,这通常意味着大约-50dBm到-40dBm的输入功率。你需要用衰减器精细调整。
- 设置:校准时,将
AGC_AVG[1:0]设为11,使RSSI读数基于16个样本的平均值,更稳定。RSSI读取间隔建议0.5ms。 - 耐心:整个算法包含多个循环,需要MCU进行大量的寄存器读写和计算。确保你的MCU有足够的处理能力,并且SPI通信稳定。校准结果(XP, XG)应存储在非易失性存储器中,每次上电后写入。
- 何时需要:对于大批量生产,可以在产线进行校准并将值固化。对于小批量或研发,如果对镜像抑制要求不高(例如干扰不强),可以跳过此步骤,使用寄存器默认值。
5.2 自动频率控制与数据切片器
在接收模式下,CC1021内部的自动数据切片器(Data Slicer)功能非常有用。它会自动测量接收到的两个FSK频率(代表0和1)的平均值,并将其作为判断比特是0还是1的阈值。这能自动补偿发射端和接收端之间的频率误差。
相关寄存器是AFC_CONTROL中的RXDEV_M、RXDEV_X(设置预期频偏)和SETTLING[1:0](设置平均时间常数)。SETTLING设为00将禁用自动平均,假设信号完全对称,这在频率误差很小时可用。对于存在一定频偏的系统,建议启用此功能(例如SETTLING=01或10),并确保前导码有足够的比特跳变(至少3次,即010模式)让切片器完成初始计算。
5.3 常见问题排查实录
在实际调试CC1021时,你可能会遇到以下典型问题:
无法通过SPI配置芯片,读回的寄存器值全是0xFF或0x00。
- 检查PSEL时序:确保PSEL在每帧16位数据开始前变低,结束后变高,并且高电平时间满足
TSH > 50ns。用逻辑分析仪抓取时序是最直接的方法。 - 检查时钟极性/相位:确认MCU的SPI模式与CC1021要求匹配。最保险的方法是先用GPIO模拟SPI时序,排除硬件SPI控制器配置问题。
- 检查电源和复位:确保CC1021的供电电压稳定且在额定范围内(典型2.3V-3.6V)。检查复位引脚(如果有)是否已释放。
- 检查PSEL时序:确保PSEL在每帧16位数据开始前变低,结束后变高,并且高电平时间满足
能配置,但收不到数据,或者收到全是乱码。
- 确认频率:用频谱仪或另一台接收机确认发射端确实在正确的频率上产生了信号。计算
FREQ寄存器值时务必仔细。 - 检查数据模式:确保发射和接收方设置的
DATA_FORMAT一致。一个设为NRZ,另一个设为曼彻斯特,必然无法通信。 - 检查波特率:在同步模式下,双方波特率必须严格一致。检查
CLOCK寄存器的MCLK_DIV1/2和REF_DIV设置。在UART模式下,MCU的UART波特率必须与无线波特率匹配。 - 检查滤波器带宽:这是最常见的问题之一。带宽设置过窄,会导致信号严重衰减。根据前面提到的公式重新计算并选择更宽的带宽尝试。
- 观察LOCK引脚:在接收和发射前,确保LOCK引脚为低电平(PLL已锁定)。如果LOCK一直为高,说明频率合成器未锁定,检查
FREQ寄存器配置和VCO相关寄存器(如VCO、CURRENT)的设置。
- 确认频率:用频谱仪或另一台接收机确认发射端确实在正确的频率上产生了信号。计算
通信距离短,灵敏度差。
- 优化滤波器带宽:在满足信号带宽和频率容限的前提下,尽量选择更窄的滤波器带宽以提高灵敏度。
- 检查天线匹配:射频性能对天线匹配网络极其敏感。务必使用网络分析仪调试并确保在目标频率上天线端口的回波损耗(S11)足够小(如<-10dB)。
- 启用镜像抑制校准:未校准的镜像抑制会降低实际灵敏度。
- 确认频率偏差:对于FSK,频率偏差
f_dev至少应为波特率的一半,以获得最佳解调性能。检查DEVIATION寄存器设置。
在曼彻斯特模式下,数据包开头部分容易出错。
- 加长前导码:曼彻斯特解码器需要几个比特的时间来同步。确保你的数据包有足够长的、0101交替的前导码(建议至少16-32位)。
- 调整SETTLING时间:增加
AFC_CONTROL寄存器中SETTLING[1:0]的值,让数据切片器有更长的平均时间,提高初始判决策略的准确性。
驾驭CC1021这样的射频收发芯片,是一个从数字配置到模拟性能深度理解的过程。从精准的SPI时序控制,到根据系统需求(速率、距离、环境)选择合适的数据模式和计算滤波器参数,每一步都需要理论和实践的结合。我最深刻的体会是,射频调试,仪器是关键。一台频谱分析仪能帮你直观看到发射频谱是否正常,一个矢量网络分析仪能确保你的天线匹配最佳,而一个逻辑分析仪则是破解SPI通信问题的利器。不要仅仅依赖软件仿真和计算,实际焊接好电路,用仪器去观察、去测量,遇到问题时,对照手册的时序图和参数公式逐一排查,这种实践积累的经验才是最宝贵的。
