news 2026/9/28 16:57:54

Cadence Allegro差分对设置常见错误与实操排查指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cadence Allegro差分对设置常见错误与实操排查指南

前两天一个做高速数据采集板的朋友找我,说他板子上的USB 3.0差分对,布局时候看着挺正常,结果打样回来实测,眼图全散,误码率高得离谱。我帮他把原始Allegro文件打开一看,问题其实非常典型——差分对的线宽线距确实设置了,但相位容差没设,等长规则里也漏了主从线长匹配,结果两根线实际差了将近40mil。这个场景相信很多PCB新手都熟悉:Allegro里差分对设置功能确实强大,但恰恰因为它功能多、选项层级深,一步设错后面全跟着错。

这篇文章不打算讲那些大而全的教科书理论,就聚焦一件事:Cadence Allegro中差分对设置最常见的几个坑,以及对应的解决思路。我会把我在实际项目里踩过的、帮别人排查过的、以及培训时新手问得最多的问题整理出来,每一个都配上具体的操作路径和检查方法。内容主要面向刚接触Allegro的PCB设计工程师,也适合那些已经从其他工具转过来、卡在规则设置环节的硬件工程师。看完这篇文章,你至少能搞清楚:差分对在Allegro里到底是怎么创建和生效的、为什么设置了却没作用、等长和相位怎么设才合理、走线时遇到DRC怎么快速定位是不是规则设置的问题。

1. 差分对设置之前,先把这些基础概念搞明白

1.1 什么是差分信号,为什么Allegro里要单独给它一套规则

差分信号在高速电路里太常见了,USB、PCIe、以太网、HDMI、LVDS,几乎清一色都是差分传输。它的基本原理是用两根等长、等宽、间距恒定的走线,分别传输大小相等、极性相反的信号,接收端通过比较两根线上电压的差值来还原信号。这样做的好处是抗干扰能力强,因为外部噪声会同时耦合到两根线上,相减之后相互抵消;同时它也不容易对外辐射,因为两根线上的电流方向相反,电磁场在很大程度上相互抵消。

正是因为差分信号讲究"两根线对称、耦合稳定",所以布线时不能像普通单端信号那样想怎么走就怎么走。两根线必须保持恒定的间距来保证整个路径的差分阻抗稳定,必须做等长处理来保证相位一致,在换层、过孔、扇出等位置还要特别注意阻抗连续性问题。Allegro里专门有差分对(Differential Pair)设计机制,从规则设置到走线交互到DRC检查,它会把这个问题系统化地管理起来。但问题也恰恰出在这里——Allegro的规则管理器(Constraint Manager)层级很深,很多新手在原理图阶段甚至不知道要先把差分对属性加上,进版图之后又找不到在哪里创建差分对,最后只能靠手动控制间距硬画,画完DRC一堆报错,越改越乱。

1.2 新手最容易忽视的"三层规则":物理、间距、等长

我在帮人排查Allegro差分对问题的时候,发现大部分新人有个共同困惑:明明在规则管理器里设了差分规则,为什么走线的时候完全没感觉到约束生效?这个问题十有八九是没有搞清楚Allegro里差分对的规则是分层的、而且要把规则"分配"给具体的网络之后才会生效。

Allegro的差分对规则体系,拆开来看其实是三层逻辑。

物理规则(Physical):管的是线宽、线距、neck线宽这些"几何尺寸"参数。差分对里的两根线各多宽、两根线之间的间距多大,由这一层决定。

间距规则(Spacing):管的是"跟其他东西保持多远"的问题,包括差分对跟别的网络的间距、跟过孔的间距、跟铜皮的间距等。

等长规则(Matching):管的是"长度怎么匹配",包括差分对内部两根线的匹配(相位容差),以及多条差分对之间的匹配(组内等长)。

这三个层面各有各的设置入口,分别存在于物理约束集(Physical Constraint Set)、间距约束集(Spacing Constraint Set)、Matching约束组里。很多新手只把线宽线距设置了,就以为差分对设好了,结果等长没管、相位容差没管,高速信号照样出问题。我在实战里见过太多"DRC通过但板子实测跑不起来"的案例,几乎都是因为只做了第一层、后面两层没做。

1.3 先弄清楚Allegro中差分对生效的前提条件

设置差分对有个"隐形前提"往往没人讲清楚:在Allegro里,差分对是基于网络(Net)来定义的,你必须先在原理图工具中给信号网络加上差分对属性(Differential Pair属性),或者导入网表后,在PCB编辑器的Constraint Manager里手动创建差分对。网络首先得全部存在,然后你才能把它们"配对"。

  • 在原理图阶段(OrCAD Capture),可以在网络属性里给两个网络加DIFFP_PAIR属性,注明极性(正/负),导入PCB后Allegro会自动识别。
  • 如果在原理图阶段没设置,也可以在PCB阶段手动在Constraint Manager里创建差分对,选中两个网络,右键选择Create -> Differential Pair。
  • 创建差分对之后,还要确保给它分配了合适的物理约束集和间距约束集。如果网络已经存在但没有可用的差分对约束集,Allegro会走默认的"无差分规则"状态——这是很多"设置了但没效果"的根本原因。

说实话,我在项目中还是推荐在原理图阶段就把差分属性加好,这样做的好处是网表导入PCB后差分对自动建立,不容易漏;PCB阶段手动创建容易创建了却不记得分配给约束集,尤其是板子很大网络很多的时候,特别容易遗漏。下面要讲的第一个常见错误,就跟这一步有关。

2. 差分对设置中的高频错误逐个拆解

2.1 错误一:属性加了,规则管理器里却没生效

这个场景太常见了:在OrCAD Capture里给两个网络加了差分对属性,导网表到Allegro之后,打开Constraint Manager,发现差分对确实存在了,但是走线的时候两根线完全没有联动,跟画普通线一模一样。新手这时候就会怀疑软件出问题了,其实问题出在约束集分配这一步。

在Allegro的Constraint Manager中,差分对创建之后,它的"物理约束集"和"间距约束集"默认是空的,或者说指向了一个默认的约束集(可能是DEFAULT)。你得手动把之前建好的差分物理约束集分配给它。操作路径是:打开Constraint Manager,切到Physical页面,在Net栏里找到对应的差分对,然后在"Constraint Set"引用列里选择你创建的差分约束集名称。同样,在Spacing页面里也要做一次分配。

我遇到过的另一个坑是:约束集分配给了单个网络,而不是分配给差分对。Allegro里差分对本身也是一个可以分配约束集的单元,如果你只给里面的一根网络分配了差分约束集,另一根没分配,那走线时依然不会联动。正确做法是选中差分对那一行(Differential Pair的条目)来分配,而不是对里面的单根网络分配。

提示:怎么判断约束集有没有正确生效?最简单的验证方法是走线时按一下F2(差分对布线模式),如果两根线是同时从光标两侧伸出来、并且间距自动锁定,说明规则生效了。如果只有一根线跟着光标走,那基本可以判定是约束集没分配对。

2.2 错误二:主从关系设反,绕线绕到怀疑人生

差分对里的两根线,Allegro里可以设置主从关系(Master/Slave)。这个主从关系的作用是:在等长调整阶段,以主线的长度作为基准,从线跟随主线长度做绕线匹配。如果主从关系设置不合理,可能会出现非常诡异的现象——你本来想绕长的那根线,软件偏要拿另一根线当基准,结果绕了这边那边又超了,来回改,效率极低。

默认情况下,Allegro会把差分对里面极性为正的那根网络设为主(+为Master),负的那根设为从(-为Slave)。这个默认逻辑在大多数场景下是OK的,但如果你的原理图里网络命名习惯是反着来的,或者你在创建差分对时手动选择的顺序反了,就会出现主从颠倒。

更麻烦的是,有些新手会忽略主从关系对相位优化的影响。差分对在布线时,如果空间紧张必须用蛇形绕线来补长度,应该把绕线尽量放在从线上,保持主线干净。因为主线是信号质量保证的基础,绕线会引入额外的耦合变化,放在从线上对整体信号完整性影响更小。Allegro里可以通过在Constraint Manager的Differential Pair页面设置Primary和Secondary来调整主从关系,也可以在布线后用Swap操作来交换两根线的位置。

我个人的经验是:除非布线空间极度不对称,否则保持默认的正主负从关系就行,不要随便改。真正需要关注的其实是等长规则里"谁跟谁比"的逻辑——下面要说到的Match Group设置,那才是大头。

2.3 错误三:把"线宽"和"线距"当成一回事来调

在做阻抗设计的时候,差分对的线宽和线距是共同决定差分阻抗的两个关键参数。同样100欧姆的差分阻抗,可以通过多种线宽线距组合来满足。新手最容易犯的错是:只关注线宽,把线距当成约束管理器里的一个"附加选项",随意填一个数,甚至不填。

Allegro差分物理约束集里,与线宽线距相关的字段主要有:

  • Line Width(线宽):差分对中单根走线的宽度。通常填两个值——最小值和最大值,实际走线时可以通过按Tab键在"所需值"和"最小/最大值"之间切换。
  • Neck Width(颈部宽度):在BGA扇出、引脚间距很小的区域,允许走线临时变细的宽度值。这个值在走线过程中按Shift+Tab可以切换进入neck模式。
  • Line Spacing(线距):指的是差分对内部两根线的边到边间距(Edge-to-Edge),不是中心距。很多人把这个搞混,设置了中心距的数值结果实际线距比预期小了一个线宽。

这里我建议新手养成一个习惯:在设计开始前,先用阻抗计算工具(比如Polar Si9000)把目标阻抗对应的线宽和线距都算好,把"所需值"填进去;然后根据PCB工厂的制程能力,设置最小值和最大值,留出制造公差。切不可凭感觉填一个看起来差不多漂亮的数值——我见过因为线距填得太小导致差分阻抗偏低,最终高速信号误码率超标的案例,那一版板子浪费的钱和周期,足够买一套正版Polar软件了。

注意:线距在Allegro里叫做Spacing,但同页面里还有一个"Spacing Control",那个是用来控制差分对内部线距是否跟随线宽变化的。默认情况下,如果你锁定Spacing值,不管线宽怎么变,两根线的边到边距离都不会变;如果取消锁定,线宽变化时中心距保持不变,边到边距离会被压缩。实际设计中,一般推荐锁定Edge-to-Edge模式,这样阻抗受线距波动的干扰更小。

2.4 错误四:等长约束设了个寂寞——忘记建Match Group

差分对等长,其实是两个层面的事:

第一个层面是差分对内部两根线之间的等长,也就是相位匹配。USB 2.0这种低速差分对可能要求不严,但PCIe、USB 3.0、千兆以太网这些高速差分信号,对相位差容忍度一般在5mil以内,甚至更严的会要求1-2mil。Allegro里通过Phase Tolerance字段来控制这个匹配度。

第二个层面是多条差分网络之间的等长。比如并行总线里的一组差分对(像MIPI的Data0/Data1/CLK),彼此之间也要有长度匹配关系。Allegro里通过Match Group(匹配组)来实现。

新手的常见错误是:只设置了Phase Tolerance,觉得"等长已经搞定了",但没有把这几个差分对放进同一个Match Group,也没设置组内等长容差。结果就是每对差分对内部自身是匹配的,但不同差分对之间长度差距很大,总线时序照样满足不了要求。

正确操作是:

  • 在Constraint Manager里切到Relative Propagation Delay页面。
  • 选中需要匹配的多个差分对,右键选择Create -> Match Group。
  • 给Match Group命名,比如PCIe_TX_GROUP。
  • 在属性里设置容差(Tolerance),比如+/-5mil或+/-0.5mm。
  • 针对组内的某个目标网络,设置它的参考目标(Target),相当于设定"以谁为基准做等长"。

摆在这个页面里的逻辑,有点像体育课的排队——所有人要跟排头对齐,排头的长度是基准。Allegro里可以指定任意一个网络或者差分对作为Reference Target,其他所有成员围绕它做绕线匹配。

2.5 错误五:Neck模式不会用,扇出阶段就"憋死"了

BGA封装下扇出差分对是很考验耐心的一件事。芯片引脚间距小,扇出空间极其有限,如果用正常线宽线距去连,可能一根线都出不来。这时候就要用Neck模式。

很多新手不知道PCS走线时按Shift+Tab可以在正常线宽和Neck宽度之间切换,于是傻乎乎地手动把线宽改成细的,等穿出BGA区域后又忘了改回正常线宽,整条线从头到尾都是细的,阻抗完全不符合要求。

Allegro的neck正确用法是:

  • 在Physical约束集里,设置Neck Width值,比如正常线宽5mil,Neck宽度4mil。
  • 同时设置Neck Length限制,Allegro 16.6及之后版本可以限制neck段的最大长度。
  • 走线时在BGA扇出区域按Shift+Tab切换到neck模式,走出球囊区域后再按Shift+Tab切换回正常线宽。

还有一个让我印象深刻的坑:Allegro中的Neck模式切换对差分对和单端线都是生效的,但有的时候你按Shift+Tab发现线宽没变,检查一下是不是当前处于差分对走线模式且两根线里有一根没选中。差分对走线时,要确保两根线都处于neck切换状态,否则会出现一根变细一根不变的现象,DRC马上飙红。

3. 一步一步实操:Allegro差分对设置的标准流程

3.1 在Constraint Manager里建差分对,并分配约束集

我以Allegro 17.2版本为例,实际16.6和17.4差别不大。打开PCB文件后,从菜单栏选择Analyze -> SI/EMI Sim -> Model Assign,或者直接点击规则管理器图标打开Constraint Manager。

步骤一:检查网络是否带差分属性。在Constraint Manager左侧栏切到Analysis Modes,展开Net Scheduling,确认Differential Pair没有禁用。如果原理图阶段已经加了差分属性,这里应该会自动显示Differential Pair条目。

步骤二:如果没有自动生成,手动创建。在左侧目录树里找到Differential Pair,右键选择Create -> Differential Pair。在弹出的对话框里,把需要配对的两个网络分别从Available栏里选入,组合成一个Differential Pair,点Apply完成创建。这里需要注意的是,一个网络只能加入一个差分对,重复配对会被软件拒绝。

步骤三:分配物理约束集。切到Physical页面,找到你刚才创建的差分对条目,在Constraint Set列下拉选择已经建好的差分物理约束集。如果还没创建,在Physical Constraint Set里右键Create,属性里设置Line Width、Neck Width、Line Spacing这些参数。

3.2 设置等长规则与相位容差

打开Constraint Manager的Relative Propagation Delay页面。

第一步,设置差分对内部的相位容差。在Differential Pair属性下找到Phase Tolerance字段,填入目标值,比如5mil。如果你想做更严格的匹配,填3mil甚至更小,但要注意制造误差和布线空间,太严的相位容差会让绕线密度增大、板面积紧张。

第二步,创建匹配组。选中多个差分对,右键Create -> Match Group。在Group属性里设置整体容差,比如10mil。如果不设置Target,Allegro会默认选择某一条网络作为基准。建议手动点开每一组,右键Set Target,指定基准网络,这个基准可以选时钟信号对应的差分对,以时钟为基准做长度对齐在时序上更有意义。

第三步,别忘了把等长规则跑一遍检查。走线完成后,在Constraint Manager里点右下角的"Run DRC"按钮,确保没有违反项。

3.3 差分对布线过程中的关键操作技巧

规则设置完毕后,进入布线阶段。Allegro里差分对布线的几个常用快捷键建议记牢:

  • F2:切换进入差分对布线模式。选中两个引脚后按F2,两条走线会一起出来。
  • Shift+Tab:在正常线宽与neck线宽之间切换。
  • Tab:在线宽所需值与最小值/最大值之间切换。
  • F3:走线过程中继续布线(连接下一条线)。
  • Shift+F2:差分对布线时交换两根线的位置(Swap),适用于两根线需要跨越时。
  • 走线过程中右键菜单:可以临时调整差分对内间距模式(Over Under等)。

实际操作里,我比较推荐先走一段短线、确认规则生效之后,再利用Align命令把差分对拉直。走线过程中如果发现某一段间距异常,可以右键选择"Change Spacing Control",检查是不是在neck模式下没切回来。

3.4 等长完成后如何做长度检查

等长绕线完成后,光是肉眼看不出长度是否达标。在Allegro里,可以通过Constraint Manager的"Relative Propagation Delay"页面查看每条网络的延迟和长度数值,偏差数值会直接显示。也可以用菜单Display -> Element,选中线段后在Options面板里查看实际走线长度。

如果不是为了写文章,我其实很少用这个页面看数据,我更习惯直接在PCB画面上开启长度显示——在Options面板的"Length"栏勾选"显示走线长度",鼠标悬停在哪根线上,当前长度一目了然。等长绕线时,看着这个实时数字去调蛇形线的圈数,比来回切窗口效率高得多。

4. 常见报错与排查技巧实录

4.1 差分对DRC报错,先分清是"规则问题"还是"走线问题"

Allegro里DRC报错信息五花八门,新手很容易被红色的错误标记搞得紧张。其实差分对相关的DRC错误,绝大多数可以归为两大类:

规则设置类:比如"Diffp Spacing"报错,说明差分对内部线距不满足约束集里的Line Spacing要求;"Diffp Phase"报错,说明相位容差超了;"Min Line Width"报错,说明有线段宽度小于Line Width最小值(很可能是neck线宽没切回来导致的)。

走线连接类:比如"Unrouted"报错,说明有引脚没接上;"Stub"报错,说明存在短线分支。

排查思路不难:先双击DRC错误标记,让视图放大到报错位置,看到底是什么类型的错误。如果是间距/相位类,回到Constraint Manager检查数值设置和实际走线尺寸的偏差;如果是连接类,检查飞线和布线逻辑问题。我遇到许多人一看到DRC报错就疯狂去动规则设置,把规则放松了事——这是非常危险的,DRC是保护你产品质量的最后一道防线,放松规则等于让不合格的设计流到下个环节。

4.2 差分对莫名出现"单线"走线问题

有朋友问:线走着走着,两根线突然分开了,一根继续走一根原地不动,这是什么原因?

这种情况大概率是误操作退出了差分对模式,或者按了F2之外的其他快捷键。解决办法是:选中另一根线的终点引脚,重新按F2进入差分对模式继续走线。如果两根线始终无法"合体"联动,检查它们是否还属于同一个差分对——去Constraint Manager里确认一下差分对没有被误删或者网络被重命名。

还有一种情况是布局阶段交换了差分对位置,导致Allegro当成两个独立网络处理。解决方法是使用Swap -> Swap Pins或者Swap Differential Pair功能,让软件重新识别配对关系。我一般不推荐手动在PCB里直接交换位置,最好在原理图里改完重导网表,逻辑更清晰。

4.3 三个我踩过之后再也不踩的坑

第一个坑:忘设"最大线长"。Allegro差分物理约束集里可以设定最大走线长度,如果不设,等长绕线的时候软件不会警告你已经走得太长。等到装配完发现信号质量差,用TDR一测才发现走线长了20%,布线空间白白浪费。我现在每块板子都会限制最大长度,宁可稍微绕一点,也不让它失控。

第二个坑:差分对参考平面不连续。有一个项目里,差分对换层之后底下正好有一块大的分割槽,参考平面被切断了,信号回流路径被迫绕远,眼图闭合。Allegro的"Return Path"检查工具可以快速找出这种问题,设置好之后走线前先跑一遍检查,能省后面很多麻烦。

第三个坑:忘记设置光绘层面里的差分对相关层次。出Gerber的时候,如果差分对所在的层没有正确添加,生产出来的板子就会缺线。Allegro出光绘文件前,一定要在Artwork Control Form里把所有用到的导电层、阻焊层、丝印层全部核对一遍,尤其是差分对DCode出现变化时,最好手动刷新一下,避免用旧的光绘文件直接投板。

5. 高版本Allegro带来的差分对体验变化

如果你还在用16.6,可以略过这一节;如果你已经开始用17.2/17.4,那差分对的设置体验已经有了不小的变化,我简单说几个影响比较大的:

  • 约束管理器界面重构。17.2之后Constraint Manager的布局更现代,差分对设置入口更直观,但老用户反而觉得不适应。我个人建议花半天时间重新熟悉一下,别抱着16.6的操作习惯硬套新版本。
  • 动态铜皮与差分对协同增强。新版在差分对走线过程中对动态铜皮的避让更智能,补泪滴(Tear Drop)功能也有改进。走完差分对之后跑一下Route -> Gloss -> Parameters,选差分对相关优化项,可以自动优化转角。
  • 实时阻抗查看功能。17.4里可以用Cross-Section Editor配合阻抗配置文件,在走线过程中实时显示当前线宽线距对应的阻抗值。这意味着不用等板子打样回来发现阻抗不对再哭了,设计阶段就能看出问题。

对于还在16.6上的用户,我不建议为了差分对这一个功能特意升级,毕竟版本切换有学习成本和兼容性顾虑。但如果项目里高速差分对比较多,升级到17.4带来的效率提升还是很明显的,尤其是实时阻抗检查这个功能,实测能减少至少一轮投板返工。

6. 总结几个实用"锦囊",送给正在跟你搏斗的新手们

做差分对设置,我觉得最核心的就一句话:规则先建好、约束分配对、走线勤检查、光绘别漏层。听起来简单,但每一条背后都有不少细节,我把最重要的几个点再列一下:

第一,不管用什么方法创建差分对,最后一定回到Constraint Manager里确认约束集已经分配。这是90%的"设置没生效"案例的根源。

第二,物理规则里,线宽、线距、neck宽度这三项必须同时设置,缺一项都会让你走线阶段手足无措。填数值之前先用阻抗计算工具算一遍,别拍脑袋。

第三,等长别只顾着差分对内部匹配,多条差分对之间的组匹配一样重要。建Match Group、设置容差、指定Target基准,一步都不能少。

第四,布线阶段熟练掌握F2、Shift+Tab、Tab这三个键,走线效率能提升好几倍。别用鼠标在菜单里一个个点,那是自虐。

第五,DRC报错要当朋友而不是敌人。它报了错,说明设计里真的存在隐患,找到原因解决它,而不是一味放宽约束来"消红"。

最后再分享一个技巧:如果板子上差分对特别多,建议把不同功能的差分对分别用不同的物理约束集管理(比如USB一组、PCIe一组、以太网一组),命名上带上前缀区分。这样做的好处是后期调试修改时不会"牵一发动全身",想单独改某一类信号的规则,直接改对应的约束集就行,不会误伤其他差分对。我一开始偷懒把所有差分对共用一个约束集,后来为了优化某条链路,只能手动逐条改网络属性,那个痛苦经历让我之后的每个项目都老老实实分类管理。

Cadence Allegro的差分对功能,说复杂也复杂,说简单也简单。它本质上就是把差分设计的关键要求固化到规则引擎里,让软件帮你在每个环节做检查。掌握它的关键在于理解背后的设计逻辑,而不是死记硬背按钮位置。希望这篇实践向的记录能帮你少走些弯路,也欢迎你在评论区分享自己踩过的坑,大家一起交流,下一块板子咱们一次做对。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 16:57:51

瓶子数据集双格式解析:VOC与YOLO标注转换及训练校验全流程

简介:瓶子目标检测数据集共收录4500张真实场景图片,提供Pascal VOC与YOLO两种格式标注,标注类别仅bottle一个,总标注框数12790个,由labelImg人工绘制矩形框完成,标注规则简洁且框位准确。面向需要训练瓶子检…

作者头像 李华
网站建设 2026/9/28 16:57:13

DeepSeek Harness 0.1.5-rc插件兼容性升级实战指南

1. 项目概述:一次真实发生的DeepSeek Harness升级踩坑实录 DeepSeek Harness这个工具,我从去年底开始用,最初是0.1.3版本,搭了个本地知识库问答小系统,跑得挺稳。今年三月看到官方发了0.1.5-rc的预发布通知&#xff0…

作者头像 李华
网站建设 2026/9/28 16:57:11

Agent-Native架构实战:从AI功能到智能体驱动的工程重构

去年秋天我接手了一个客户运营后台的改造,需求听起来极其朴素:把用户咨询自动识别后转成工单。团队里所有人最初的判断都是“接一个大模型接口就能搞定”。真正做完第一版,我才意识到自己把AI焊死在了流程里:模型只负责给文本打个…

作者头像 李华
网站建设 2026/9/28 16:56:50

昆虫识别数据集处理:从XML标注到YOLOv8训练完整指南

简介:一套面向深度学习图像识别任务的昆虫分类数据集,涵盖6种昆虫的217张真实图片及对应XML标注,并按7:2:1划分为训练集、验证集和测试集。压缩包为ZIP格式,共438个文件,其中包含217个JPG图像文件、217个XML标注文件及…

作者头像 李华
网站建设 2026/9/28 16:56:24

STM32F4外扩DAC8562实战:16位双通道模拟输出的SPI驱动与校准全解析

做模拟量输出的时候,很多人第一反应就是用MCU自带的DAC,但真到了项目里要出16位精度、双通道、低噪声的电压信号,STM32F4片内那两路12位DAC往往不够看。这个项目就是在F407上外扩了一片TI的DAC8562,通过SPI接口实现双通道0到5V可调…

作者头像 李华
网站建设 2026/9/28 16:56:21

FPGA实战:L9110H电机驱动模块与PWM调速控制设计

1. 模块概述与方案选型1.1 L9110H是个什么样的芯片做嵌入式开发这些年,电机驱动模块我用过不少,从最开始的L298N到TB6612,再到今天要聊的L9110H,每个模块都有自己的脾气。L9110H本质上是一颗低压直流电机驱动芯片,内部…

作者头像 李华