news 2026/4/16 10:57:25

OrCAD电路图绘制实战案例:从零实现完整项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OrCAD电路图绘制实战案例:从零实现完整项目

从零开始用OrCAD画一块智能温控板:一个STM32项目的完整电路设计实录

你有没有过这样的经历?打开OrCAD Capture,信心满满地准备画一张原理图,结果刚放几个元件就卡住了——库文件找不到、引脚连错了、ERC报一堆警告、PCB导入时报封装缺失……最后只能删掉重来。

别担心,这几乎是每个硬件工程师的必经之路。今天我就带你从头到尾走一遍真实项目的设计流程,不讲空话套话,只说实战中踩过的坑和绕过的弯。我们要做的,是一个基于STM32的智能温控节点,功能包括温度采集、OLED显示、串口通信,典型又实用,适合练手也适合量产。

整个过程我会用OrCAD Capture完成,重点不是“怎么点菜单”,而是为什么这么设计怎么避免后期翻车、以及如何让图纸既专业又好维护


为什么是OrCAD?它到底强在哪?

在讲具体操作之前,先回答一个问题:现在EDA工具这么多,为啥还要学OrCAD?

简单说四个字:工业标准

你在大厂做项目,尤其是通信、工控、汽车电子这类高可靠性领域,90%以上都用Cadence这套体系——前端用OrCAD画原理图,后端用Allegro做PCB。它的优势不在花哨的功能,而在于:

  • 库管理严谨:所有器件都有唯一ID,不怕重复或冲突;
  • 层级清晰:复杂系统也能分模块协作开发;
  • 前后端无缝对接:网表导出后几乎不会出现“原理图有、PCB没连”的低级错误;
  • 企业级规范支持:适合团队共用统一库,杜绝“张三用R1、李四用RES”的混乱局面。

换句话说,学会OrCAD,等于拿到了进入正规硬件开发流程的入场券。


我们要做什么?系统架构一览

目标很明确:做一个能测温、能显示、还能通过USB上传数据的小板子。核心芯片选的是大家熟悉的STM32F103C8T6(就是“蓝丸”那款),成本低、资料多、调试方便。

整块板子拆成四个模块来设计:

  1. 主控最小系统(MCU Core)
    包括STM32本身、8MHz晶振、复位电路、BOOT配置、SWD下载口。

  2. 电源模块(Power Supply)
    输入5V DC,用AMS1117-3.3稳压输出3.3V给全板供电。

  3. 外设单元(Sensors & Display)
    - DS18B20 数字温度传感器(单总线)
    - OLED 0.96英寸屏幕(I²C接口)

  4. 调试与烧录(UART to USB)
    加个CH340G芯片,把MCU的USART转成USB,方便程序下载和日志打印。

这些模块我们将分别画在不同的.sch页面上,顶层用一个框图串联起来——这就是所谓的层次化设计,后面细说。


第一步:建工程,别急着画图!

很多人一上来就“Place Part”,结果发现库不对、路径乱、文件散落一地。记住:好设计始于项目结构清晰

新建项目

打开OrCAD Capture →File > New > Project
选择类型为 “Analog or Mixed-Signal Circuit”,名字叫Temp_Controller.dsn

创建完成后你会看到三个主要部分:
-Design Entry:存放所有的.sch文件
-Design Cache:缓存当前已放置的元件(非常重要!)
-Library:指向你用到的所有.olb库文件

配置库路径

点击项目根目录 → 右键Edit Design Template→ 在弹出窗口中添加以下库:

<install_dir>\tools\capture\library\analog.olb <install_dir>\tools\capture\library\discrete.olb ./lib/Company_Parts.olb ← 自定义库(我们自己建的)

⚠️ 小贴士:不要依赖临时加载库!必须把常用库写进Design Template,否则换台电脑打开会丢元件。

这个Company_Parts.olb是我们专门用来放STM32、OLED、CH340等非标器件的地方。接下来我们就动手创建第一个关键元件:STM32F103C8T6的符号。


元件符号怎么搞?别再到处找了!

最头疼的事之一:原厂没提供OrCAD库怎么办?

比如STM32F103C8T6,在官方库里通常只有PDF手册,没有现成的.olb文件。这时候就得自己建Symbol。

创建新Part的基本步骤

  1. 打开Capture Library Editor
  2. 新建一个.olb文件(建议按类别分:mcu.olb, sensor.olb等)
  3. Insert → New Part
  4. 填写Part Name:STM32F103C8T6
  5. Number of Parts per Package: 1
  6. Number of Gates: 1
  7. Package Type: QFP
  8. Pins Count: 48(注意!虽然是LQFP48封装,但实际引脚数要核对清楚)

然后开始画符号。你可以画成矩形+四周引脚的经典样式,也可以拆分成多个Sections(比如PA/PB端口分开画)。这里推荐不分Section,因为小封装没必要过度复杂化。

关键属性一定要填对

右键元件 → Edit Properties,至少设置这几个字段:

属性名示例值说明
ValueSTM32F103C8T6显示在图上的标称值
FootprintLQFP48_7x7mm_P0.5mm必须和PCB封装一致!
Device ClassMCU分类标识
ManufacturerSTMicroelectronics方便BOM生成

💡 经验之谈:Footprint名称务必与Allegro库完全匹配,否则导出网表时会报错“Unknown footprint”。

还有个重要设置:Pin Electrical Type。这是影响ERC检查的关键!

例如:
- PA0~PA15 引脚类型设为I/O
- VDD/VSS 设为Power
- NRST 设为Input with Pullup
- 悬空不用的NC引脚设为Not Connected

如果你不设,OrCAD默认全是Passive,可能导致ERC误报或漏报。


层次化设计:大项目不乱的秘诀

你现在可能觉得:“才几个模块,直接画一页得了。”
可一旦项目变大,比如加个WiFi模组、CAN总线、ADC采样,原理图就会变成“蜘蛛网”。

解决办法就是:分页 + 层次化连接

怎么做?

我们在顶层页(Top_Sheet.sch)放三个“黑盒子”:

  • MCU_Core→ 对应 mcu_core.sch
  • Power_Module→ 对应 power.sch
  • Peripherals→ 对应 sensor_display.sch

每个盒子都是一个Hierarchical Block(层次块)。怎么生成?

  1. 先去子页(比如mcu_core.sch)画好内容;
  2. 回到Top_Sheet.sch;
  3. Place → Hierarchical Block;
  4. 选择“Create from Sheet or Block”;
  5. 选中对应的.sch文件,自动生成带端口的方框。

OrCAD会自动提取子页里的I/O Port,并在顶层生成同名网络。比如你在mcu_core.sch里有个Port叫3V3,那么顶层Block上就会多一个叫3V3的管脚,连出去就能接到其他模块。

全局网络 vs 局部网络

有些信号不需要显式连线就能互通,比如GNDVCC。这是因为OrCAD默认启用了Global Net(全局网络)。

但要注意:
- 只有名字完全相同的网络才会合并;
- 区分大小写!gndGND
- 不建议滥用全局网络,像RESET这种关键信号最好显式连接并加注释。

对于非全局信号,可以用Off-page Connector跨页跳转。但它不如层次化清晰,容易造成“断头路”误解,建议仅用于扁平化设计补充。


实战细节:那些教科书不说的坑

下面是你真正动手时一定会遇到的问题,我都替你试过了。

🔧 晶振旁边两个电容该接多大?

手册写着“22pF”,但这是理想值。实际要考虑PCB走线寄生电容(约3~5pF),所以建议选18pF或20pF,并靠近晶振摆放。

🔧 DS18B20单总线上拉电阻怎么选?

必须加4.7kΩ上拉电阻到3.3V,否则通信不稳定。而且要放在靠近MCU的一端,减少干扰。

🔧 OLED的I²C地址是多少?

常见0.96寸SSD1306 OLED,默认地址是0x78(写)/0x79(读)。但在原理图上不用标地址,留到软件配置即可。

🔧 CH340G需要哪些外围电路?

很简单:VCC加100nF去耦电容,TXD/RXD串1kΩ电阻防震荡,D+和D-之间可加22Ω终端电阻(高速时有用)。


ERC检查:别等PCB才发现问题

画完图千万别直接导出网表!先跑一遍电气规则检查(ERC)

Tools → Electrical Rules Check

常见报错及处理方式:

错误提示原因解法
Unconnected input pin输入引脚悬空确认是否遗漏连接;若不用,改为Not Connected类型
Net with only one pin网络只接了一个点检查是否断线或标签拼写错误(如3.3Vvs3V3
Power pin not driven电源引脚未连接确保VDD接了PWR_SYMBOL,不能只连普通wire
Duplicate net name网络重名检查是否有不同页用了相同局部名

✅ 正确做法:每次修改后都要重新ERC,养成习惯。


输出交付物:不只是为了画PCB

一张好的原理图,最终是要服务于生产和维护的。所以我们需要输出两类关键文档:

1. 网表(Netlist)

用于导入Allegro PCB Designer。

操作:Tools → Create Netlist → 选择Format为Allegro
生成.net文件,包含所有网络连接关系。

⚠️ 注意:如果提示“Footprint not found”,回去检查元件属性!

2. 物料清单(BOM)

给采购和生产看的。

OrCAD自带报表功能,但字段有限。更高效的方式是用脚本导出完整BOM。

Tcl脚本示例:批量提取电阻信息
# 导出所有电阻及其封装 foreach comp [get_parts] { if {[get_attribute $comp Part_Number] == "R*"} { set ref [get_attribute $comp Reference] set value [get_attribute $comp Value] set package [get_attribute $comp Footprint] puts "$ref: $value, $package" } }

运行方法:在OrCAD Script窗口粘贴执行,或者保存为.tcl文件调用。

你可以扩展它,加入容差、额定功率、供应商型号等字段,生成Excel格式BOM。


工程最佳实践:高手和新手的区别在这里

最后分享几条我在工作中总结的经验,看似小事,却极大影响效率和质量。

✅ 使用版本控制

把整个.dsn项目文件夹纳入Git/SVN管理。每次修改提交时附带一句话说明,比如:

“fix: DS18B20上拉电阻由10k改为4.7k”

这样回溯问题非常方便。

✅ 统一命名规范

  • 电源网络:3V3,5V,VDDA,VSSA
  • 信号线:全大写,如RESET_N,UART1_TX
  • 不要用中文或特殊字符!

✅ 添加测试点

在关键信号(如Reset、Clock、ADC输入)旁预留Test Point焊盘,方便后期调试。

✅ 安全标识不能少

高压区域加⚠️警告符号;高温元件标注“HOT!”;禁布区划出来。


写在最后:工具只是手段,思维才是核心

这篇文章表面上是在教你用OrCAD画图,实际上我想传递的是一种系统性的硬件设计思维

  • 模块化:把大问题拆成小模块;
  • 规范化:统一库、统一命名、统一流程;
  • 预防性设计:ERC、BOM审核、Footprint复查;
  • 可追溯性:版本控制+设计记录。

当你能把这些理念融入日常,哪怕换到KiCad、Altium甚至未来的新工具,也能快速上手。

至于OrCAD会不会被淘汰?短期内不会。它就像C语言一样,也许不够炫酷,但足够稳定、足够强大、足够支撑起整个工业体系。

所以,下次当你打开Capture的时候,别再说“我只是在画画图”——你其实在构建一个电子系统的DNA。

如果你正在入门,欢迎留言交流;如果你已经是老手,也欢迎分享你的设计习惯。我们一起把硬件这件事做得更扎实一点。

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

树莓派5引脚定义在传感器控制中的应用解析

树莓派5引脚实战&#xff1a;从零构建高可靠传感器系统的底层逻辑你有没有遇到过这样的情况&#xff1f;明明代码写得没问题&#xff0c;接线也对照了资料图&#xff0c;可温湿度传感器就是读不出数据&#xff1b;或者一通电&#xff0c;树莓派突然重启——最后发现是误把5V接到…

作者头像 李华
网站建设 2026/4/14 9:33:45

ChromeDriver下载地址整理:自动化测试lora-scripts Web界面的新思路

ChromeDriver与lora-scripts融合&#xff1a;构建LoRA训练WebUI自动化测试新范式 在AI模型微调日益普及的今天&#xff0c;LoRA&#xff08;Low-Rank Adaptation&#xff09;凭借其高效、低资源消耗的特点&#xff0c;已成为图像生成和大语言模型定制的主流技术之一。随着社区生…

作者头像 李华
网站建设 2026/4/16 10:42:36

商场会员卡识别:HunyuanOCR简化积分兑换流程

商场会员卡识别&#xff1a;HunyuanOCR简化积分兑换流程 在商场高峰期的收银台前&#xff0c;一位顾客掏出会员卡准备兑换积分&#xff0c;店员却因为卡面设计各异、字体模糊而反复输入失败&#xff1b;另一边&#xff0c;外籍游客拿着双语会员卡求助&#xff0c;系统却无法识别…

作者头像 李华
网站建设 2026/4/15 2:30:33

超市促销海报数字化:HunyuanOCR提取优惠活动信息

超市促销海报数字化&#xff1a;HunyuanOCR提取优惠活动信息 在连锁超市门店每天清晨上架的新鲜促销海报背后&#xff0c;是一场与时间赛跑的数据战。市场部门需要在最短时间内掌握竞品价格动向&#xff0c;而传统依赖人工抄录的方式不仅效率低下&#xff0c;还常常因字体花哨、…

作者头像 李华
网站建设 2026/4/8 19:48:46

表格跨页分割问题:HunyuanOCR能否正确还原完整表格结构?

表格跨页分割问题&#xff1a;HunyuanOCR能否正确还原完整表格结构&#xff1f; 在企业日常处理财务报告、审计文件或科研论文时&#xff0c;一个看似不起眼却影响深远的问题频频出现&#xff1a;当一张表格横跨两页甚至多页时&#xff0c;OCR系统是否还能准确拼接并还原其原始…

作者头像 李华
网站建设 2026/4/15 14:41:26

电商平台商品详情页文字提取:HunyuanOCR自动化采集方案

电商平台商品详情页文字提取&#xff1a;HunyuanOCR自动化采集方案 在电商运营的日常中&#xff0c;一个看似简单的任务——从成千上万的商品详情页中提取文本信息——却常常成为数据团队的“痛点”。页面结构五花八门&#xff0c;图文混排、多栏布局、水印干扰、中英夹杂……传…

作者头像 李华