高速电路设计实践学习笔记(1)——如何区分高速和低速电路

        先说结论,高速电路与低速电路的区分,不仅取决于信号频率还取决于信号传输路径的长度,仅仅依据信号频率,并不能做出信号属于高速还是低速的结论。

对于高速信号,常有以下两个误区:

        误区1:信号周期频率F_{clock} 高的才属于高速设计。事实上,设计中需要考虑的最高频率往往取决于信号的有效频率(或称转折频率)F_{knee}

        误区2:在低速领域,电容、电感的工作频段比较低,可以认为它们都是理想的器件。但在高速领域,电路板上的电容、电感等已经不能被简单地视为纯粹的电容、电感。例如,当电路的两端用一个电容C相连时,在低速电路中,这两端被视为断路,而在高速电路中,假定其工作频率为F,则电容C表现出的电抗值为1/(2FXC),在工作频率很高的情况下,该电容的电抗值变得很小,表现为短路。同理,在低速电路中表现为短路的电感,在高速电路中将表现为断路。

        对低速信号而言,由于传输路径上各点电平近似相同,因此,可采用集总式的思维来看待传输路径,即传输路径上各点的状态相同,在分析时,可被集中成一点;对高速信号而言,传输路径上各点的电平不同,需采用分布式的思维来看待传输路径,即不能将传输路径集中成一点来看待,而应视为多个状态不同的点。

        以此为前提,区分高速和低速信号的的步骤如下:

        第一步,获得信号的有效频率F_{knee}和走线长度L

        第二步,利用F_{knee}计算出信号的有效波长\lambda _{knee}

        第三步,判断L与1/6\lambda _{knee} 之间的关系,若L>1/6x\lambda _{knee},则信号为高速信号,反之,则为低速信号。
        如何获得信号的有效频率F_{knee}呢?在有测试板等现成电路的情况下,可直接测量信号的 10%~90%上升时间,再利用式(1.2)即可计算得到P的值。而在没有现成电路的情况下,可假设信号的上升沿时间为信号周期的 7%,此时,信号有效频率约为信号周期频率F_{clock}的7倍,例如,周期频率为100MHz的时钟信号,可估计其有效频率约为700MHz。

         以上方法对极高频信号(如频率在1GHz以上的信号)并不成立,极高频信号的上升沿很缓,上升时间甚至可能达到信号周期的20%,因此,再利用F_{knee}的计算公式已经没有意义,同时,判断极高频信号属于高速还是低速,本身也是一件没有意义的事情。

### 关于STM32F103 RTC 32.768K晶振并联1M欧电阻的必要性 对于STM32F103系列单片机中的RTC模块使用的32.768kHz晶振设计,是否需要外接一个1M欧姆的电阻是一个常见的讨论话题。以下是对此问题的具体分析: #### 官方应用笔记的观点 根据官方应用笔记的内容,在某些情况下确实提到了关于外部电阻的作用及其重要性的描述[^2]。然而需要注意的是,该电阻的主要功能在于保护晶振免受过热的影响,而非直接影响其起振能力。 #### 实际电路设计考量 在实际硬件设计过程中,针对不同型号的STM32F103器件(如STM32F103xC、STM32F103xD以及STM32F103xE),由于这些版本已经内置了相应的反馈电阻Rf[^1],因此理论上无需再额外增加外部的1M欧姆电阻来辅助起振过程。如果强行加入这样的元件,则可能会干扰正常的信号传输路径或者降低整体系统的稳定性。 另外值得注意的一点是,围绕着晶体两侧所放置的小容量电容器(通常范围为20pF至30pF)[^3],它们主要承担的任务是对抗由线路本身带来的寄生效应——具体表现为抵消那些不可避免存在的杂散电感成分;从而构建出理想的LC串联/并联回路结构形式下的共振条件环境条件下实现稳定的工作频率输出表现效果最佳化处理方案之一。 综上所述,基于当前已知的技术资料表明:当选用具备内部集成RF特性的特定子类别产品时(例如前述提及到的一些高配置选项),则完全可以省略掉那个传统意义上的所谓“必需品”— 即所谓的‘1兆欧’级别数值规格大小类型的限流组件部分环节设置安排计划执行情况说明如下所示代码片段可用于验证此结论正确与否: ```c #include "stm32f1xx_hal.h" void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; // Enable HSE as clock source without additional resistor for LSE RCC_OscInitStruct.LSIState = RCC_LSI_ON; HAL_RCC_OscConfig(&RCC_OscInitStruct); ... } ``` 通过以上C语言程序段可以看出,在初始化低速外部时钟源(LSE)的时候并没有涉及到任何有关附加电阻参数设定方面的操作指令命令行语句表达方式呈现出来供参考学习借鉴之用。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值