1. 拼板场景下Mark点为什么不能随便放
拼板这件事,做过PCB Layout的人都不陌生。板子面积小、异形、需要过SMT产线,单板直接上机器效率太低,于是把多块小板拼成一个大板,一次过炉、一次贴片,成本能压下来不少。但拼板之后有个细节特别容易被忽略——Mark点。很多新手在单板上画好了Mark点,拼板的时候直接复制粘贴,结果SMT产线那边反馈"识别不到""贴片偏移",回头一查,Mark点要么被V-Cut切掉了,要么周围有走线干扰,要么间距不对。
Mark点(基准点)在SMT贴片环节的作用,相当于给贴片机一个"坐标系原点"。贴片机的视觉相机先拍Mark点,计算出PCB在机器上的实际位置和角度偏差,然后所有元件的贴装坐标都基于这个基准做补偿。如果Mark点本身有问题,后面所有元件的贴装精度都会受影响。单板上的Mark点通常放在板边对角位置,但拼板之后,整块拼板需要重新布置Mark点,因为贴片机识别的是整块拼板,不是单块小板。
这里有个常见的误区:很多人觉得单板上已经有Mark点了,拼板直接复用就行。实际上,拼板后的Mark点需要满足几个条件——放在拼板的最外围对角、周围不能有器件或走线、不能被V-Cut或邮票孔破坏、距离板边有明确要求。这些条件单板上的Mark点往往不满足,所以拼板时必须手动添加新的Mark点器件。
注意:Mark点的作用对象是整块拼板,不是单块小板。拼板完成后,贴片机只认拼板最外围的Mark点,单板内部的Mark点如果被保留,反而可能干扰识别。
我在实际项目中遇到过好几次因为Mark点问题导致贴片偏移的情况。有一次是一块四拼板,单板上的Mark点正好落在V-Cut线上,拼板后Mark点被切掉了一半,贴片机识别时反复报错。还有一次是Mark点周围走了差分线,相机拍的时候反光干扰,识别不稳定。这些坑踩过一次就记住了,后来每次拼板都会专门检查Mark点的位置和周围环境。
2. 手动添加Mark点器件的完整操作链路
2.1 先搞清楚Mark点器件的封装要求
在Allegro里手动添加Mark点,本质上就是放置一个特殊的器件。这个器件不需要电气连接,只需要有正确的焊盘形状和尺寸。Mark点器件的封装通常是一个实心圆焊盘,直径常见的有1.0mm、1.5mm、2.0mm几种规格,具体用多大取决于贴片机的识别能力和PCB的密度。
Mark点焊盘的标准做法是:顶层一个圆形铜箔焊盘,周围留出一圈阻焊开窗,开窗直径比焊盘直径大0.5~1.0mm。这样做的目的是让相机能拍到清晰的圆形轮廓,阻焊开窗保证了焊盘边缘的对比度。有些设计还会在Mark点周围加一圈禁布区,防止走线或铺铜影响识别。
在Allegro中,Mark点器件通常放在Place Manually里,但前提是你的库里有对应的Mark点封装。如果库里没有,需要先做一个。做Mark点封装的时候,焊盘用Circle类型,Regular Pad设成目标直径,Soldermask设成焊盘直径加0.5~1.0mm,Pastemask通常不需要,因为Mark点不参与焊接。
| 参数项 | 常见取值 | 说明 |
|---|---|---|
| 焊盘直径 | 1.0mm / 1.5mm / 2.0mm | 根据贴片机精度和板密度选择 |
| 阻焊开窗 | 焊盘直径 + 0.5~1.0mm | 保证边缘对比度 |
| 周围禁布区 | 焊盘直径 × 2 | 防止走线干扰识别 |
| 放置位置 | 拼板对角 | 至少两个,对角线布置 |
| 距离板边 | ≥5mm | 避免V-Cut或邮票孔影响 |
2.2 在Allegro中手动放置Mark点器件的步骤
打开Allegro的PCB Editor,加载拼板后的brd文件。确认当前处于Placement模式,然后从菜单栏选择Place→Manually,弹出Placement对话框。在对话框的Advanced Settings里勾选Library,这样可以看到库里的所有封装。然后在Placement List里找到你做好的Mark点封装,勾选它,鼠标移到画布上,Mark点器件就会跟随鼠标移动。
放置的时候要注意几个细节。第一,Mark点要放在拼板的最外围对角位置,通常是左下角和右上角,或者左上角和右下角。第二,Mark点距离板边的距离要留够,一般建议≥5mm,如果拼板边缘有V-Cut,Mark点要避开V-Cut线至少2mm。第三,放置完成后,用Show Element命令点一下Mark点,确认它的焊盘层和阻焊层设置正确。
放置完成后,还需要检查Mark点的RefDes。Mark点器件的位号通常设为MK1、MK2这种,方便后续识别。如果位号重复或者为空,在出Gerber的时候可能会出问题。另外,Mark点器件不需要连接任何网络,所以在Net属性里应该是空的,如果误连了网络,记得删掉。
提示:放置Mark点时,建议把格点设成0.1mm或者更小,这样能精确控制位置。如果格点太大,Mark点可能放不到理想的位置。
2.3 拼板中Mark点的数量与布局策略
Mark点放几个,放在哪里,这个问题没有唯一答案,但有一些行业惯例。一般来说,拼板至少需要两个Mark点,对角布置。如果拼板尺寸较大或者贴片机精度要求高,可以放三个或四个。三个Mark点通常呈L形布置,四个则放在四个角。
对于异形拼板或者有工艺边的拼板,Mark点要放在工艺边上,而不是单板上。工艺边是拼板时额外加的边条,宽度通常5~10mm,专门用来放Mark点和传送边。把Mark点放在工艺边上,好处是V-Cut或邮票孔不会影响到它,而且贴片机识别的时候视野更干净。
如果拼板是阴阳拼(一面拼正面,一面拼反面),Mark点需要在两面都放。顶层的Mark点和底层的Mark点位置要对应,但不要重叠,否则过炉的时候可能互相干扰。通常的做法是顶层Mark点放在左下和右上,底层Mark点放在左上和右下,错开布置。
还有一个细节:Mark点周围不能有高度超过0.5mm的器件,否则相机对焦会受影响。如果实在避不开,Mark点周围2mm范围内不要放器件。这个在布局阶段就要规划好,不要等到拼板的时候才发现Mark点旁边有个大电容。
3. 那些年我踩过的Mark点识别坑
3.1 Mark点被V-Cut切掉:一个低级但高频的错误
V-Cut是拼板常用的分割方式,在板与板之间切一条V形槽,过炉后掰开就行。V-Cut的深度通常是板厚的1/3,上下各切一刀。如果Mark点离V-Cut线太近,切槽的时候会把Mark点的焊盘切掉一部分,导致圆形不完整,贴片机识别失败。
我遇到过最典型的一次是四拼板,单板尺寸很小,拼板后V-Cut线正好穿过单板上的Mark点。当时没注意,直接出了Gerber,板厂也没提醒,回来贴片的时候贴片机反复报"Mark点识别错误"。后来用放大镜看,Mark点被切成了半圆,相机拍出来的形状不对,自然识别不了。
解决这个问题的办法很简单:拼板时把Mark点放在工艺边上,或者放在远离V-Cut线的位置。如果拼板没有工艺边,Mark点距离V-Cut线至少2mm。另外,在出Gerber之前,用Allegro的Film预览功能检查一下每层的Mark点是否完整,特别是Soldermask层和Top层。
3.2 阻焊开窗不对导致Mark点"隐形"
Mark点的阻焊开窗如果设置错了,相机拍出来就是一片铜色,没有对比度,识别率会大幅下降。常见的问题是阻焊开窗太小,和焊盘一样大,这样焊盘边缘没有露出来,相机拍到的就是一个纯色圆,没有轮廓。
正确的做法是阻焊开窗比焊盘大0.5~1.0mm。比如焊盘直径1.0mm,阻焊开窗设1.5mm或2.0mm。这样焊盘周围有一圈裸露的基材,相机拍的时候能看到明显的圆形边界。在Allegro里,阻焊开窗是在焊盘的Soldermask层设置的,做封装的时候就要设好,不要等到PCB里再改。
还有一种情况是阻焊开窗被铺铜覆盖了。如果Mark点周围铺了铜,而且铺铜没有避让阻焊开窗,相机拍到的就是铜箔的反光,识别也会出问题。所以Mark点周围要加禁布区,禁止铺铜和走线。
3.3 Mark点间距和位置偏差的排查思路
贴片机识别Mark点的时候,需要两个Mark点之间的距离在相机视野范围内。如果两个Mark点距离太远,超出了相机的视野,贴片机就没办法同时拍到两个点,识别会失败。一般来说,两个Mark点之间的距离建议在50~200mm之间,具体取决于贴片机的型号。
如果贴片机报"Mark点间距错误",排查思路是这样的:先用Show Element确认两个Mark点的实际坐标,计算距离;然后检查拼板尺寸,看是否超出了贴片机的最大识别范围;最后检查Mark点是否在同一个平面上,如果拼板有翘曲,相机对焦也会出问题。
还有一种情况是Mark点位置偏差。比如设计的时候Mark点在左下角,但实际板厂做出来偏了0.2mm,贴片机识别的时候就会补偿错误。这种偏差通常是板厂的加工精度问题,但设计的时候可以留余量——Mark点周围留足够的禁布区,即使偏一点也不会被其他元素干扰。
| 问题现象 | 可能原因 | 排查方法 |
|---|---|---|
| 识别不到Mark点 | 阻焊开窗太小、被V-Cut切掉 | 检查Soldermask层和板边距离 |
| 识别不稳定 | 周围有走线或铺铜反光 | 检查禁布区设置 |
| 贴片偏移 | Mark点间距超限、位置偏差 | 测量实际坐标,确认贴片机范围 |
| 反复报错 | Mark点形状不完整、有遮挡 | 用放大镜看实际板子 |
4. 拼板Mark点设计的进阶经验
4.1 阴阳拼板时Mark点怎么处理
阴阳拼板是指一块拼板上既有正面朝上的单板,也有反面朝上的单板。这种拼法通常用于板子两面都有器件的情况,一次过炉完成两面贴片。阴阳拼板的Mark点处理比较特殊,因为正面和反面的Mark点需要在不同层。
顶层Mark点放在Top层,底层Mark点放在Bottom层。放置的时候,顶层Mark点和底层Mark点的位置要错开,不要在同一垂直线上。如果重叠,过炉的时候底层的Mark点可能会被顶层的器件遮挡,或者反光干扰。
另外,阴阳拼板的Mark点数量要加倍。正面至少两个,反面至少两个。如果拼板尺寸大,正面和反面各放四个。放置完成后,用Film功能分别预览Top和Bottom层,确认Mark点都在正确的位置。
4.2 工艺边上的Mark点与传送边的关系
工艺边是拼板时加的辅助边条,主要作用有两个:一是放Mark点,二是作为贴片机的传送边。传送边的宽度通常5~10mm,Mark点放在传送边的内侧,距离传送边边缘至少3mm。
如果工艺边太窄,Mark点放不下,可以考虑加宽工艺边。但工艺边太宽会浪费板材,增加成本。折中的做法是:工艺边宽度取5mm,Mark点放在工艺边中间,距离板边2.5mm。这样既能保证Mark点不被传送轨道遮挡,又能控制成本。
还有一个细节:工艺边和单板之间的连接方式。如果用V-Cut,Mark点要远离V-Cut线;如果用邮票孔,Mark点要远离邮票孔至少3mm。邮票孔是钻孔,周围有应力,太近的话Mark点可能会变形。
4.3 用Allegro的Skill脚本批量放置Mark点
如果拼板数量多,手动放置Mark点效率太低。Allegro支持Skill脚本,可以写一个简单的脚本批量放置Mark点。思路是:定义Mark点的坐标数组,然后循环调用axlDBCreateSymbol函数放置器件。
; 批量放置Mark点的Skill示例 procedure(placeMarkPoints() let((markPoints) markPoints = list( list(0.0 0.0 "MK1") list(100.0 0.0 "MK2") list(0.0 80.0 "MK3") list(100.0 80.0 "MK4") ) foreach(point markPoints axlDBCreateSymbol( "MARK_POINT_1MM" nth(0 point) nth(1 point) nth(2 point) ) ) ) )这个脚本只是示例,实际使用的时候需要根据你的封装名和坐标调整。Skill脚本的好处是可以精确控制位置,而且可以重复使用。不过写脚本之前,建议先手动放一遍,确认坐标和封装没问题,再用脚本批量处理。
提示:Skill脚本执行前,建议先备份brd文件。脚本执行后,用
Show Element逐个检查Mark点的位号和位置,确认没有遗漏或重叠。
5. 从设计到出Gerber的Mark点检查清单
5.1 出Gerber前的Mark点自检项
出Gerber之前,Mark点的检查不能省。我整理了一个自检清单,每次出Gerber前过一遍,能避免大部分问题。
- Mark点是否放在拼板最外围对角位置
- Mark点距离板边是否≥5mm
- Mark点是否远离V-Cut线和邮票孔
- Mark点周围2mm内是否有器件或走线
- 阻焊开窗是否比焊盘大0.5~1.0mm
- Mark点焊盘是否在Top或Bottom层正确显示
- Mark点位号是否唯一且不为空
- 阴阳拼板时两面Mark点是否错开
- Mark点间距是否在贴片机识别范围内
- Gerber预览中Mark点形状是否完整
这个清单看起来简单,但每一条都是踩过坑之后总结出来的。特别是阻焊开窗和周围禁布区,这两个最容易忽略,也最容易导致识别问题。
5.2 和板厂、SMT产线沟通的要点
Mark点的设计不是闭门造车,需要和板厂、SMT产线沟通。板厂关心的是Mark点会不会影响V-Cut和钻孔;SMT产线关心的是Mark点能不能被贴片机识别。
和板厂沟通的时候,要确认Mark点距离V-Cut线的距离,以及阻焊开窗是否会影响阻焊印刷。有些板厂的阻焊精度有限,开窗太小可能印不出来。和SMT产线沟通的时候,要确认贴片机的Mark点识别范围、最小识别直径、以及相机视野大小。这些参数直接决定了Mark点的尺寸和间距。
我一般会在出Gerber之前,把拼板图发给SMT产线确认一下Mark点位置。产线工程师看一眼就能判断有没有问题,比自己在软件里反复检查效率高得多。这个习惯帮我避免了好几次返工。
5.3 常见问题速查表
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Mark点识别不到 | 阻焊开窗太小 | 开窗加大到焊盘+0.5~1.0mm |
| Mark点被切掉 | 距离V-Cut太近 | 移到工艺边或距离≥2mm |
| 识别不稳定 | 周围有走线反光 | 加禁布区,禁止铺铜走线 |
| 贴片偏移 | Mark点间距超限 | 调整间距到50~200mm |
| 阴阳拼识别错误 | 两面Mark点重叠 | 错开布置,分别放Top和Bottom |
| 位号重复 | 复制粘贴未改位号 | 手动修改或脚本批量改 |
这张表基本覆盖了Mark点设计中最常见的问题。遇到识别问题的时候,按表排查,一般都能找到原因。如果表里没有,那就用Show Element逐个检查Mark点的属性,看看有没有设置错误。
6. 个人实操中的几点体会
Mark点这件事,说大不大,说小不小。设计的时候多花五分钟检查,比贴片的时候返工半天划算得多。我现在的习惯是:拼板完成后,先放Mark点,再检查一遍,然后才做其他处理。这个顺序能保证Mark点不会被后续操作影响。
另外,Mark点的封装建议做成标准库,不要每次重新画。标准库里的Mark点封装经过多次验证,参数稳定,用起来放心。如果项目多,可以按焊盘直径分类,1.0mm、1.5mm、2.0mm各做一个,需要哪个用哪个。
最后分享一个小技巧:在Allegro里可以用Color设置把Mark点所在的层用醒目的颜色标出来,比如红色。这样在检查的时候一眼就能看到Mark点在哪里,有没有被其他元素遮挡。这个设置不导出Gerber,只影响显示,但能提高检查效率。
拼板Mark点的设计,核心就一句话:让贴片机看得清、认得准。围绕这个目标去布置,基本不会出大问题。