冰沙主板10x10设计&制作笔记

目录

前言

本文档以CC Attribution-Share Alike 4.0 International发行

展开查看

创建时间: 2020/08/25 17:40:56 UTC+8 由过气德国佬(github:oldgerman)于 2020/12/12 UTC+8 最后一次编辑

项目地址

Git仓库:含所有相关文件, 制作前请打包下载、检查是否有新版本

关于本文档

本文档面向有意低成本diy冰沙板的大侠,内容按照diy的一般顺序排序,向你展示Smoothie 10x10 的:

  • 相比smoothieboard-v1.1改动的地方、技术规格
  • 钢网+风枪焊接技巧、
  • 基本功能的使用,使用的注意事项。具体的高级功能还请详见官方文档(世界各地许多人齐心协力构建的文档)
  • 文档的大多数配图滞后于10x10开源版本,是进度一览中的二、三周目版本

本文档不含手把手教你做3D机、激光机、雕刻机、贴片机...因为怎么做博主也纳闷😳

为什么要将冰沙主板缩小为10x10?

展开查看

由于10x10的四层板打样的价格越来越低,而大于10x10的四层板价格仍居高不下,相信不少尝试制作原版冰沙板的大侠一开始就被昂贵的打样费用劝退,因此设计出10x10的冰沙板很有意义,但冰沙主板作为开源了4年以上的开源硬件,其他大佬也设计过不少衍生版本,这些就包括:C3D Remix Board、SKR V-1.3、Cohesion3D Mini、Tiny Smoothie等,似乎我们的选择有很多,然而就如同官方所说的一样,尽管替代形状的数量越来越多,但是原始设计([Smoohieboard v1.1)能为中小型CNC机器(包括但不限于3D打印机,激光切割机和CNC铣床)供电和控制所需的所有电子零件:步进电机驱动器(5通道),加热器/冷却器驱动器(6通道Mosfet PWM),温度传感器(4通道),限位开关,SPI,I2C和用于硬件扩展的其他I / O,其中包括USB,UART,以太网和SD卡。替代设计也应包括这些元素或它们的类似物,或说明如何轻松添加它们。(实际上衍生的设计或多或少都打了折扣)几年来衍生的设计与冰沙板的相似性并不太好,对初次接触衍生的主板、阅读原版的文档来学习如何使用冰沙板的朋友们不太友好,因为你需要知道衍生版相比原版的区别(引脚图变动、电子元件变动、布局变动等),因此博主不另起炉灶,索性直接修改原版的Eagle工程,保留了官方原版(Smoohieboard v1.1)所有的元件和引出的连接器,并适度优化,设计出了Smoothieboard v1.3(10x10),与原版极其相似。

Duet2 wifi VS 冰沙

这里的讨论看起来冰沙已经过气了,为啥还要修改冰沙? 咱们看看价格再谈性能,芯片取自深水宝最低价,PCB取自JLC,不包括邮费:

主板 主芯片 步进驱动器 PCB diy起步成本 附:钢网成本
Duet2 wifi ATSAM4E8E:25¥
(剪板拆机片)
256细分;TMC2660:
13x5 = 65¥
12.3x10.0cm 四层板:5片240¥
(44板费+200工程费)
或 JP领券免费+22运费
112~330¥ 40+运费
Smoothieboard v1.1 LPC1769:14¥ 32细分;A5984:4x5=20¥ 12.9x10.5cm 四层板:5片244¥
(44板费+200工程费)
或 JP领券免费+22运费
56~278¥ 40+运费
Smoothieboard 10x10 LPC1769:14¥ 32细分;A5984:4x5=20¥ 10.0x10.0cm 四层板:5片50¥
或 JP领券免费
34~84¥ 15+运费

Smoothie因为过气才有一定的性价比,以及openpnp的官方指定主板(对于diy贴片机而言十分好上手),才费尽心思做修改

如果...那么不建议使用冰沙

相信各位大侠因为想做贴片机才自远方来,除非你想做基于openpnp的贴片机才建议使用冰沙(32细分最高可能是稳定贴0402阻容,0201就不好说了),但如果你想做3D打印机,相比现在TMC2208步进驱动器基本成为3D打印机的标配(1.4A/36V 256细分 参考价7¥),冰沙的A5984步进驱动器(2.0A/40V 32细分 深水价4¥,但是2A电流香啊)显得过时,因此若冰沙固件的无需编译即可配置的功能对你做机器的帮助不大,或你预算充足,对256细分以及静音有要求,那么不建议使用冰沙主板diy 3D打印机。可以选购常见的基于STM32F407的五轴主板配TMC2208(细分更高且更静音但电流较小),若你想驱动更大电流的例如57步进,或对delta 3D机型的精度有刚需,那么十分推荐diy或购买成品的Duet2 wifi(使用5路TMC2660步进驱动器 4.0A/30V 256细分,深水价13)。

冰沙主板简介

项目创始人:Arthur Wolf(亚瑟·沃尔夫)

历史

RepRap wiki👈强烈建议在阅读此篇博文前先浏览这个,以对冰沙板有一个总体的认识

官方文档

git仓库

上面的ReppRap wiki指明冰沙主板共有3个版本:

  • Smoothieboard_5x具有5个步进电机驱动器,3个小型mosfet,3个大型mosfet和以太网支持,通常用于具有两个或更多挤出机的3D打印机
  • Smoothieboard_4x具有4个步进电机驱动器,2个小型mosfet,2个大型mosfet和以太网支持,通常用于单挤出机3D打印机
  • Smoothieboard_3x具有3个步进电机驱动器,2个小型mosfet,并且支持以太网,通常用于激光切割机/绘图仪

实际上他们的区别就是少贴装相应的元件,PCB都是同一块(Smoothieboard v1.1),毕竟正规渠道的A5984可要20RMB左右一片

冰沙固件简介

模块化,开源,高性能G代码解释器、用面向对象的C ++编写的CNC控制器

官方文档

git仓库

语言:C ++

冰沙附件的许可协议

Smoothie官方的G代码文档

Marlin的G代码文档

冰沙10x10介绍

改动

图片对比版:

(等比例)

原版vs10x10

文字描述版:

由于博主从设计到定稿过程中打样了三次板,分别叫...

板子 优化的地方 失败的地方
一周目 USB-C 、丝印位置、安装孔、线距、部分覆铜、优化所有的阻焊开窗使阻焊桥>8mil,即使杂色板最密集引脚处的阻焊桥也能百分百存在 内层的Y限位信号线将3V3的过孔和PLA的过孔短接,限位一单触发就关机,紧急按钮也无法使用,另外,原版的大4P封装的孔位有问题,无法安装
二周目 PCB缩小至最经济的10x10cm,保留了原版所有的功能和引脚,增加了DCDC电路,增加数字/机械电位器二选一电路,修改一周目的所有问题,优化所有连接器的位置(对齐)和丝印 所有线路部分正常,但是KF2510连接器和插拔式接线端子的的间距偏小,5V电源轨的防反灌的肖特基二极管位置给错,从USB-C_5V上电时会倒灌到12V电源轨,TC4427丝印位错
三周目 优化二周目的所有问题,在L1 L2层密集过孔区增加了铜皮,L1层增加了小功率MOS管的电源轨铜皮,Bottom层restrict了MOS管和大电流端子的pin与pin之间的铜皮,防止焊接时误损阻焊层造成连锡短路,增加了用于散热片定位丝印 0 error
1 warning: C13的位置不对劲
开源20201013 调整C13,稍微对齐R108~R111
去除Smoothie相关的商标s
开源20201021 加宽A5984 OUT的部分铜箔从33mil加宽到60mil
开源20201210 优化dcdc电感走线

取舍

PCB面积减少 > 1/4,板面散热性能有损失
大功率MOSFET推荐载流减少30%
对称,整齐,紧凑的布局
PCB和激光钢网的打样费用前所未有地减少
PCB没有空余的位置放置元件名字的丝印 用交互式BOM查找元件位置
500mA DCDC模块 板载 2.5A MP2565 DCDC电路,物料(仅这部分)有所增加
N/A 数字/机械电位器二选一,若对电流一致性要求不高,
用机械电位器相比前者成本降低15~20元
2512 0.05R 3W 合金采样电阻 1206 0.05R 1W合金采样电阻 (实测最大2A时才1/5W)
D+的上拉SOT363 MOSFET-P 换为常见的SOT23 MOSFET-P
USB方口 USB-C (16p) + USBLC6
N/A 增加1812自恢复保险丝保护AMS1117-3.3
将所有的默认连线的焊接跳线盘改为未连线 更自由地跳线

技术规格

恩智浦LPC1769微控制器

  • 96MHz-120MHz 32位ARM Cortex-M3内核,64KB RAM,512KB闪存

Allegro A5984双极步进驱动器

  • 高达40V 2A 32x微步进,数字/机械式电流控制

  • 5个步进驱动器

多达6个FET

  • 3个最高可支持24V 5A的电流,另外3个最高可支持24V 10A(原版为12A)的电流,以控制外部设备,如热水袋,风扇和加热床。

扩展:4个热敏电阻端口,6个终端挡板端口,SPI,I2C,UART,USB,MicroSD插槽,以太网

轻松配置!

  • 基于文件的配置(无需重新编译)
  • 基于文件的升级(提供了二进制文件,升级无需编译)
  • 通过USB同时进行文件和串行访问

引脚定义

官方抽不出人手绘制fritzing风格的pinout,我就当一次美工哈,根据Smoothieboard v1.1的pinout乾坤大挪移,可以与原版对比着看

pin out pin capabilities
Smoothie-10x10-pinout-map-mini Smoothie-10x10-pin-capabilities-mini

成品展示

2020-10-13 版本之前的三周目

三周目成品(1) 三周目成品(2)

2020-10-21版本

红豆和烂尾侠制作的2020-10-21成品,基本功能测试OK

redbean

2020-12-10版本

其实我把二周目板上的元件搬了个家。。。

元件,焊盘,过孔数量

10x10 三周目 原版
20201015004022 20201015004138

物料清单、成本

Excel Smoothieboard_10x10-v1.3-BOM.xlsx (付报价)

交互式BOM,见BOM文件夹的Smoothie-10x10_ibom.html文件,对应的区块如下图,附LPC1769 引脚:

功能区 LPC1768/LPC1769引脚定义
smoothieboard-10x10-功能区 lpc1768_mbed_pinout

LPC1768与LPC1769是pin to pin的,但1768的主频只有100MHz,而1769的主频是120MHz,文档说冰沙固件针对120Mhz做了特定的优化,所以在diy时注意芯片型号

焊接指南

电烙铁

乃神人也

建议按上图分功能区焊接,边焊接边测试

回流焊

若你使用无铅锡膏,建议PCB打样时选择TG温度>150℃的基材

介紹並認識【錫膏(solder paste)】的基本知識(含助焊劑)

回流曲线的四大温区:【晨日•技术篇】教你理解回流温度曲线

SMT回流焊的溫度曲線(Reflow Profile)解說與注意事項

典型的RoHS回流焊曲线

锡膏

SMT无铅焊料简介

锡膏回温和搅拌时间

冷藏的锡膏需要回温,不然会有太多水蒸汽冷凝,回焊的时候水汽会沸腾,导致炸锡

锡膏使用前的准备

SMT贴片加工中常用的锡膏类型

手工点锡膏

21号不锈钢针头配1ml注射器,记得放锡膏稀释剂不然分分钟堵头,若堵头建议来一支0.4mm喷嘴疏通针

工具 挤锡膏放元件 风枪焊接效果
作案工具 作案现场 img

激光钢网

转好钢网gerber文件在steel-mesh文件夹内

人生第一次给了10x10冰沙主板,博主在宝钢电子开的10x10小钢片,晒图朋友们觉得钢网很可爱? 其实我觉得性价比挺高的,毕竟开了900+焊盘,逃)

三周目开钢网焊接,推荐飞鹰牌保安刀片刮锡膏。

钢网四角需不需要螺丝固定孔

因为是第一次开钢网,所以把能尝试的都尝试了,我将PCB四角的M3孔也开了,方便定位(似乎大家都用胶带固定钢片?)

刮锡膏的角度

45度贴紧,慢慢刮,让巧克力慢慢融化

是否可以来回反复刮锡膏

可能一次刮后会有部分焊盘锡膏不完整,想再刮一次 原则上不可以,但我实测之后,对于此PCB,用保安刀片来回刮并不会有多大影响,淦就完事了

钢网脱模

手起刀落

步骤演示

准备工具 挑出足量的稀释后的锡膏 压紧45度刮至均匀
img img img
小心脱模 锡膏效果:
img img img
小心摆放元件 风枪回流焊接 检查连锡,虚焊后测试
img IMG_2816 img

锡膏如何清洗

原则上要专用的钢网清洗剂,但实测用PCB的洗板水效果极佳,注意75%的酒精清洗8太行

测试和使用

若你使用烙铁或者逐区锡膏焊接,那么所有功能测试前需要焊接最小系统

电源要求

USB取电

冰沙主板仅通过USB供电时,无法使用MOS管和步进驱动(通过主电源供电时,才能使用),主电源供电时,可以不从USB取电

引脚定义的VBB IN,就是主电源输入,冰沙文档中VBB指主电源,以下节选自官方文档:主电源供电

VBB供应

  • 电压(V):VBB可以为12至24V。尽管Smoothieboard上的大多数组件的额定电压均高达32V,但不建议或不建议使用该高电压。12V PSU更常见,并且通常更便宜。但是,电压越高,步进电机的性能就越高。这就是某些设计师使用24V PSU的原因。但是,请注意,使用24V PSU时,您将需要24V风扇,并且需要减少加热元件的PWM设置,或者(最好,更安全)使用24V加热元件。
  • 电流(A):所需的总电流是每个步进电机的电流,加上机器上Smoothieboard将控制的每个外围设备的电流。这取决于您的机器类型。
    • 在典型的3D打印机上,您可以安全地认为10A对于加热床是足够的,而对于其余的负载则是10A或更少。
    • 如果您有加热床,请使用17至20A PSU。
    • 如果没有加热床(或者正在安装CNC铣床或激光切割机),则7A至10可能就足够了。
    • 如果您以套件形式购买机器,则很可能会提供具有适当电流的PSU(或建议使用一个)。
    • 如果您通过自行采购来自行构建机器,则该机器型号的文档也很可能会推荐当前等级。能够提供比所需电流更多的电流的电源不是问题。没有足够的电流来驱动热端,加热器床或电动机是一个问题。
  • 某些品牌外电源的额定功率可能超出其实际功率能力(动机:写出更大的数字会增加售价),可能未达到UL或CE额定值(如果起火,保险可能无法弥补损失),或可能很好。较低的售价意味着成本以某种方式被挤出了设计。最好了解如何。
  • 电源效率不是100%,并且会发热。热量会缩短电子设备的寿命。如果它们包含冷却风扇,请确保入口和出口的气流不受限制。布置好入口,防止掉落物品和细丝;最好离开地板或桌子,以免吸入灰尘。

MOS外部供电

对于大功率和小功率MOS,若不使用跳线帽从主电源取电,而是从VIN 1,VIN 2 取电,电压最高为24V

最小系统

红色框内的最小系统部分可以顺带焊接把绿框内的限位开关电路

电路 配图为二周目
smoothieboard-10x10-最小系统 img

烧录Bootloader

下载git仓库的Smoothieware的zip包解压

下载NXP LPC芯片专用的烧录工具:Flash Magic,并安装

下载烧录器的win驱动。安装,博主使用D1 mini开发板上的CH340(事先需要将8266烧一个空程序防止占用串口),CH340驱动下载

串口烧录器(ch340,cp2102等),接冰沙的Serial口的TX,RX,GND,Seria口的V+接烧录器的5V,使冰沙板直接从烧录器取电(从烧录器取电时,要将冰沙10x10 PCB背面的SJ1二选一跳线焊盘焊接跳线到5V),注意USB和VBB都不要上电,否则Flashmagic会报错"Failed to autobuad"(自动波特率匹配失败),原因可能是RXTX参考电压不一致 博主接线如下:

img img img

短接ISP和GND再将Serial的V+上5V电,保证100%进入ISP烧录模式(官方的四部曲我试了很多次都没成功)

进入ISP模式后,电源LED正常,但LED1~4非常暗淡,是正常的,在此模式下,打开Flash Magic

烧录Bootloader步骤如下

1
FlashMagic(0) FlashMagic(1)
Device栏选择LPC1759,在ISP栏中点击Read Signature读取芯片信息 Firmware栏的File路径里选择刚下载Smoothieware固件包的bootloader文件夹里的DFU-Bootloader.hex
3 4
FlashMagic(2) FlashMagic(5)
Preference中默认的晶振频率为12MHz,与原理图相符
下方的3行DTR RTS配置选不选都不影响
Erase栏的Erase里选Entrie device或者Selectors by file都行,点击Start等待烧录结束

烧录完hex文件RESET后,LED1~4会一直常亮,说明符合官方描述的无固件状态:

LED1-4notBlink

烧录firmware.bin

找一张FAT32格式的SD卡

将Smoothieware固件包的FirmwareBin文件夹里的firmware.bin、ConfigSamples/Smoothieboard文件夹里的config放入SD卡(这两个文件仅作测试用)

将SD卡插入冰沙板卡槽。按一次Reset等待LPC1769自己升级固件

Serial串口

Serial串口除了在ISP模式下使用,跑冰沙固件时也可以显示一些信息,将波特率设为115200,打开串口并复位冰沙主板,会显示一些信息,若以太网使用还会显示网络的配置信息,还可以显示Kill按钮状态,可以执行从此串口收到的G代码和终端命令

20201002214041

USB-C串口

安装冰沙串口驱动

官方文档:Smoothie drivers for Windows

Windows 2000 / Vista / 7/8 64bit / 32bit

smoothieware-usb-driver-v1.1.exe(git仓库资料中有)

Windows 10

无需在Windows 10上安装驱动程序,应该可以立即使用。在Windows 10上安装驱动程序可能会引起麻烦

但是我的win10测试,win10需要装驱动,设备管理器才能识别为Smoothie,win10安装了smoohieboard驱动务必重启,不然pernterface发命令会显示超时

以太网

电路 配图为二周目
smoothieboard-10x10-以太网 img

470pF是必须的

8720的Pin6 VDDCR输出1.2V,需要外部连接1uF和470pF电容是必须的!!不要用其它电容替代否则电压会不正常

基础型Webui

官方文档:Network interface

Smoothieboard firmware.bin内实现了一个基本的webui(PC端的Pronterface阉割版,没有3D预览),将冰沙主板接入路由器使用在同一局域网的PC访问

增强型Webui

官方文档:Installing the web interface to the SD card 若使用Chrome无法加载webui,试试在浏览器页面按Ctrl +Shift+Delete。勾选缓存的图片及文件,清除数据后再尝试

同时使用Webui和pronterface以及Serial

可以正常接收三处的G代码,板上SD卡也能正常挂载win10

步进M5测试3-同时使用webui和pronterface

Kill button

官方文档:Kill button

冰沙板板载可爱的的12x12带灯开关,一直觉得这是冰沙板的灵魂有木有?,执行步进G代码的过程中黄都会长亮,异常状态会闪烁。长按使程序退出异常,等效于发送M999

NTC温度

默认是NTC100K,选择其他型号的热敏电阻见官方文档:温度控制]的热敏电阻选择部分

异常

若NTC电阻接触不良若未安装,则在执行需要加热的G代码时,会报错:

1
Temperature reading is unreliable on T HALT asserted - reset or M999 required

此时Killbutton会快速闪烁,长按它可以结束

读取温度

使用M105读取,默认仅返回TH1(喷头0),TH2(热床)通道的温度

1
2
3
>>> M105
SENDING:M105
ok T:25.2 /0.0 @0 B:25.4 /0.0 @0 T:inf /0.0 @0 T:inf /0.0 @0

读取TH3和TH4

(默认TH4未跳线,记得跳线)

冰沙板热敏电阻输入引脚名称 T0(th1) T1(th2) T2(th3) T3(th4)
引脚号 0.23 0.24 0.25 0.26

可以在config中增加以下或注释掉原有的,来使用TH3、TH4

1
2
3
temperature_control.th3.enable true						# Whether to activate this ( "th3" ) module at all.
temperature_control.th3.thermistor_pin 0.25 # Pin for the thermistor to read
temperature_control.bed.heater_pin 2.4 # Pin that controls the heater

之后M105会返回TH3、TH4

1
2
SENDING:M105
k T:25.2 /0.0 @0 B:25.4 /0.0 @0 T:25.6 /0.0 @0 T:25.5 /0.0 @0

注意:例如加热12V 5A的60W陶瓷芯最好使用大功率MOS,不要用小功率MOS,这里使用P2.4控制的小功率MOS仅作演示

Mosfet

在焊接蓝色框内MOS部分前,建议先把黄框内的DCDC和VBB电源MOS焊接,测试VBB输入12~24V时,DCDC的5V是否正常

电路 配图为二周目
smoothieboard-10x10-Mos+DCDC img

每一路Jumper的Current rating

However, WARNING, each jumper is rated for only 2A of current. This means you can not use this way of powering your MOSFETS if you are going to use more than 2A ( for the small MOSFETS ) or 4A ( for the big MOSFETS, with both jumpers used, for 2 x 2A ).

Do not use the jumpers to power a heated bed for example, as it uses much more than 4A.

LPC1769支持PWM的GPIO有6路原生PWM用于6个MOS输出, 可能需要舍弃congif里的bltouch和misc,将其改为false (占用P2.4):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch.misc.enable                          false             # Enable this module
switch.misc.input_on_command M42 # Command that will turn this switch on
switch.misc.input_off_command M43 # Command that will turn this switch off
switch.misc.output_pin 2.4 # Pin this module controls
switch.misc.output_type digital # Digital means this is just an on or off pin

switch.bltouch.enable false #
switch.bltouch.output_pin 2.4 # sw pwm can use any digital pin
switch.bltouch.input_on_command M280 #
switch.bltouch.input_off_command M281 #
switch.bltouch.output_type swpwm # sw pwm must be low frequency
switch.bltouch.pwm_period_ms 20 # 50Hz
switch.bltouch.startup_state false # start up in the stow state
switch.bltouch.startup_value 7.43 # On boot it will go into stow mode, also set with the M281
switch.bltouch.default_on_value 3.3 # if M280 is issued without S this is the value it will set it to

在config中加入博主的测试段文字方便测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
## Switch modules
# See http://smoothieware.org/switch

# Switch module for fan control
switch.fan24.enable true # Enable this module
switch.fan24.input_on_command M246 # Command that will turn this switch on
switch.fan24.input_off_command M247 # Command that will turn this switch off
switch.fan24.output_pin 2.4 # Pin this module controls
switch.fan24.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan24.max_pwm 255 # Set max pwm for the pin default is 255

# Switch module for fan control
switch.fan25.enable true # Enable this module
switch.fan25.input_on_command M256 # Command that will turn this switch on
switch.fan25.input_off_command M257 # Command that will turn this switch off
switch.fan25.output_pin 2.5 # Pin this module controls
switch.fan25.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan25.max_pwm 255 # Set max pwm for the pin default is 255

# Switch module for fan control
switch.fan26.enable true # Enable this module
switch.fan26.input_on_command M266 # Command that will turn this switch on
switch.fan26.input_off_command M267 # Command that will turn this switch off
switch.fan26.output_pin 2.6 # Pin this module controls
switch.fan26.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan26.max_pwm 255 # Set max pwm for the pin default is 255

# Switch module for fan control
switch.fan27.enable true # Enable this module
switch.fan27.input_on_command M276 # Command that will turn this switch on
switch.fan27.input_off_command M277 # Command that will turn this switch off
switch.fan27.output_pin 2.7 # Pin this module controls
switch.fan27.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan27.max_pwm 255 # Set max pwm for the pin default is 255

# Switch module for fan control
switch.fan122.enable true # Enable this module
switch.fan122.input_on_command M226 # Command that will turn this switch on
switch.fan122.input_off_command M227 # Command that will turn this switch off
switch.fan122.output_pin 1.22 # Pin this module controls
switch.fan122.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan122.max_pwm 255 # Set max pwm for the pin default is 255

# Switch module for fan control
switch.fan123.enable true # Enable this module
switch.fan123.input_on_command M236 # Command that will turn this switch on
switch.fan123.input_off_command M237 # Command that will turn this switch off
switch.fan123.output_pin 1.23 # Pin this module controls
switch.fan123.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan123.max_pwm 255 # Set max pwm for the pin default is 255

使用 M226 M236 M246 M256 M266 M276 M226 S100 M236 S100 M246 S100 M256 S100 M266 S100 M276 S100 M227 M237 M247 M257 M267 M277 测试六个PWM通道 PS:附加S参数可调制脉宽,例如M226 S120

注意:大部分TO-220 MOSFET 的衬底与D极相通,即TO-220封装的铜底散热片带VBB的电压

大功率Mixed Mosfet无法使能

该管由P1_23通过TC4427栅极驱动器控制,但由于TC4427的12VREG电压来自78L12的VOUT,而78L12的VIIN从MOSFET_DRIVE电源取得(大功率MOS管的外接电源),如果MOSFET_DRIVE无供电,那么大功率Mixed Mosfet就无法使能,使能的方式有两种,一种是通过插拔式连接器取电,另外一种是通过Jumper从VBB取电

SCH MOSFET_DRIVE电源轨 78L12的VOUT
20201014120733 20201014120949 20201014121031

10x10冰沙缩小了这么多,功率部分铜箔会不会太窄?

"Never use the big MOSFETS for more than 12.5A ( and monitor connector and MOSFET temperatures at that current use, too much heating can be a sign of a bad wire connection ), and the small MOSFETS should never be used for more than 3A"官方原档:mosfets

使用Kicad自带的PCB Calculator计算,该计算器相比Saturn,计算内层载流明小1/3,外层大1/3,就很离谱,所以我优先用Kicad计算,两种计算器的对比如下:

Kicad Saturn
载流计算器(2) 载流计算器
内层0.5oz 100mil 10温升 1.4A 内层0.5oz 100mil 10温升 2.1A
载流计算器(3) 载流计算器
外层1oz 100mil 10温升 4.6A 外层1oz 100mil 10温升 3.3A

若内层的结果过小的影响实在太离谱(说的就是A5984 VBB的最窄处,我明明走的比原版还宽100mil),就用Saturn再计算一遍😅

各个流径最窄铜箔宽度(单位:mil)如下表,”X“表示没有,"N/A"表示该段流径不经过连接器,若在某温升下达不到原版冰沙给出的标称值,我会使用红色字体警示 取主要路径最窄的走线宽度,电流为各层单独计算载流之和,若某一层流经多条铜箔合并宽度的计算结果偏小,则分条计算,结果如下

铜箔流径 Top L1
(0.5oz)
L2
(0.5oz)
Bottom 温升10℃载流(A) 温升20℃载流(A) 原版冰沙板
标称值(A)
连接器额定电流(A)
【VBB】
VBB_IN连接器
to 电源MOS-P的D极
137 X X 137 11.67 15.83 15 15
VBB_IN连接器
的GND
104+64=168 40+60+110+380 40+60 330+140 26 (不用算肯定有多的) 15
【小功率MOS】
小功率MOS电源IN
to小功率MOS连接器
X 93 93+57=150 57+16=73 6.91 9.38 6 8
小功率MOS连接器
to 小功率MOS的D极(单路)
110 X X X 4.97 6.75 3 8
小功率MOS的S极
to小功率MOS电源IN的GND
110 144 X X 6.80 9.23 6 8
【大功率MOS】
大功率MOS电源IN
to大功率MOS连接器
X X 160 148 8.14 11.05 12.5 15
大功率MOS连接器
to 大功率MOS的D极(单路)
102(最窄)
190(最宽)
105(最窄)
190(最宽)
X X 6.16(最窄)
11.97(最宽)
10.08(原版最窄)
8.36(最窄)
12.72(最宽)
14.11(原版最窄)
12.5 15
大功率MOS的S极
大功率MOS电源IN的GND
80 80 80 80 10.29 13.96 12.5 15
【Jumper】
VBB连接器
to MOS管jumper(x3)
X X 137 137 7.60 11.67 2x3=6.0
jumper(x3)
2*3=6.0
【混合大功率Fet】
混合大功率Fet 连接器to 电源MOS-P的S极 155 X X 195 13.91 18.87 12.5 N/A
混合大功率Fet D极to 混合大功率Fet 连接器 108(最窄)
295(最宽)
X X X 4.91(最窄)
10.17(最宽)
6.66(最窄)
13.80(最宽)
12.5 15
混合大功率Fet S极to VBB连接器的GND
第一种取电方式
X 60+40+56=156(最窄) 60+40+56=156(最窄) 150 10.11 13.71 12.5 15
混合大功率Fet S极to 大功率MOS电源IN的GND
第二种取电方式
80 80 80 80 10.29 13.96 12.5 15
【混合小功率Fet】
混合小功率Fet to 电源MOS-P的S极 X X X 195 7.53 10.22 3 N/A
混合小功率Fet D极to 混合小功率Fet 连接器 110 X X X 4.97 6.75 3 8
混合小功率Fet S极to VBB连接器的GND X 60+40+56=156(最窄) 62+40+56=158(最窄) 150 10.12 13.73 3 15
【A5984】
VBB
to 5路A5984
X X 142+23+170+73=408
(原版最窄处是150+150=300)
X Kicad计算
5.48
Saturn计算:8.42
Kicad计算
7.43
Saturn计算:11.42
0.7x5=3.5
1.5x5=7.5
2.0x5=10
4(1pin)
5路A5984 to VBB连接器GND 60 360 X 325 17.67 (不用算肯定有多的) 10 15
A5984
步进电机母座pin
17.7(最窄)
90(最宽)
X X X 1.32(最窄)
4.30(最宽)
1.79(最窄)
5.83(最宽)
2A(1pin) 4(1pin)

由上表,下表是建议使用的电流大小,四舍五入,注意共用同一连接器的多条电源流径的载流不要超过连接器在某温升下的最大使用电流

温升10℃(A) 温升20℃(A) 10温升下是否达到官方标准 20温升下是否达到官方标准
VBB连接器取电 11.7 15.0 No Yes
混合大功率FET从VBB取电+VBB连接器GND回流 10.1 13.7 No Yes
混合大功率FET从VBB取电+大功率FET连接器的GND回流(不推荐) 10.3 14.0 No Yes
2x大功率FET合计从VBB取电++VBB连接器GND回流
(MOS管jumperx2)
4 6 Yes Yes
2x小功率FET合计从VBB取电++VBB连接器GND回流
(MOS管jumperx1)
2 3 Yes Yes
2x大功率FET合计从大功率FET连接器取电 8.1 11.1 No No
2x小功率FET合计从小功率FET连接器取电 6.9 9.4 Yes Yes
A5984单路 1.3 1.8 N/A N/A
A5984x5路总和(取Saturn计算结果) 8.4 10 N/A N/A
A5984x5路时平均单路(取Saturn计算结果) 1.7 2 N/A N/A

插拔式接线端子的取电额定电压是12~24V

  • 有条件十分建议在A5984表面贴装散热片,并用风扇对整个主板散热

小功率MOS管的选择

冰沙主板三个小功率MOS管是SOT223封装的,此封装的最大导通电压一般分为4.0V和2.0V,例如IRL024NTRPBF的VGS(th)MAX为4.0V,而冰沙板的LPC1769的GPIO的高电平只有3.3V,会无法驱动或驱动不佳,所以我们需要选择例如IRLL024NTRPBF的VGS(th)MAX为2.0V的MOS管

品牌 型号 VDS VGS(th)MAX RDS(on) ID/耗散功率 Rth(j-a) Rth(j-sp) ΔTj
安世 BUK9832-55A 55V 2.0V VGS =3.2 V; 35mΩ 4.78A/0.8W
5.34A/1.0W
70 15 56
70
英飞凌 IRLL024NTRPBF 55V 2.0V 约115mΩ
(VGS =4.0V; 100mΩ)
2.63A/0.8W
2.95A/1W
90~120 50~60 84
105

如果你的小功率MOS管愿意使用比如BUK9832-55A,则5A电流可正常工作,其在G极3.2V时RDS(on)仅35mΩ,若使用一般的低 VGS(th)例如IRLL024NTRPBF,那么工作电流就不要官方的超过3A了

增加大功率MOSFET过孔的载流值

由于大功率MOS的每个pin仅有一个40mil(1.016mm)的过孔,温升10摄氏度在两层板之间的载流能力仅2.5A(过孔壁厚0.7mil)、3.1A(过孔壁厚1mil),因此要达到上文的单管载流6.5A~9A,我们在焊接时需要一些技巧

根据 EEVBlog #543 - PCB过孔载流能力调查 提到的 TN1225:THD(通孔设备)封装的安装说明:P20

直插焊盘填锡-压降测试 直插焊盘填锡-剖面
EEV523(2) EEV523(1)

在穿过过孔的铜导线两侧焊盘与孔内加锡,可以显著增加载流能力,因此,在未焊接5.08插拔式接线端子前,可以先在正面的TO-220焊盘做这样处理

若不这样处理,至少也要保证TO220的倒角与正面焊盘是紧密接触状态,如图2,3

未紧密接触 紧密接触 紧密接触-剖面
TO-220-PASTE(1) TO-220-PASTE(3) TO-220-PASTE(2)

PCB参数计算神器-Saturn PCB Design

破坏性实验:PCB走线与过孔的电流承载能力到底有多强?

使用IRLL024NTRPBF时,建议最大单管电流小于2.5A

大功率MOS管并联二极管

感性负载下例如电机,需要在电机并联瓷片104电容,或反并联肖特基或开关二极管(1N4148)防止电机的尖峰电压击穿MOS管,小功率MOS管PCB上本身就并联了肖特基二极管,为了保险起见我们可以再反并联一个,大功率MOS管可以反并联两个

PID温控

官方文档:温度控制

待测试,忘带发热芯了

限位开关

官方文档:限位开关

使用限位开关时,要将冰沙10x10 PCB背面的SJ2二选一跳线焊盘焊接跳线到5V

冰沙主板有6通道限位开关,使用M119 返回如下,如触发则为1

1
2
min_x:0 min_y:0 min_z:0 max_x:0 max_y:0 max_z:0
ok

屏幕面板

官方文档:面板

完整的面板至少包括屏幕和编码器,指示灯,蜂鸣器,按钮,sd卡,esp8266(跑esp3D)为可选

官方文档:Using Panel controllers with Smoothieboard

官方文档:panel-options

Supported SPI chips:- ST7565, ST7920, SSD1306

博主使用SSD1306+编码器测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#对于5驱动程序冰沙板NOT Azteeg X5
panel.enable true #设置为true以启用面板代码
panel.lcd ssd1306_oled #设置面板类型
panel.spi_channel 0 #设置spi通道使用P0_18P0_15 MOSISCLK
panel.spi_cs_pin 0.16 #设置spi芯片选择
panel.encoder_a_pin 3.25!^ #编码器引脚
panel.encoder_b_pin 3.26!^ #编码器引脚
panel.click_button_pin 1.30!^ #单击按钮
panel.a0_pin 2.11 #ssd1306需要一个a0
#panel.contrast 8 #一些面板需要对比度设置,这是针对viki2
#panel.encoder_resolution 4 #移动1个项目的点击次数
#panel.buzz_pin 1.31 #蜂鸣器的引脚(同时使用红色LED或蜂鸣器)
panel.red_led_pin 1.31 #在viki2上红色指示灯的引脚
#panel.blue_led_pin 1.23 #viki2上的蓝色LED引脚(5个驱动程序不能使用)
#panel.back_button_pin 1.30!^ #(可选)使用红色按钮作为后退按钮(5驱动程序不可用)
#在viki2上设置外部SD
panel.external_sd true #如果面板上有外部sdcard,则设置为true
panel.external_sd.spi_channel 0 #设置sdcard所在的spi通道
panel.external_sd.spi_cs_pin 0.27 #设置SD卡的SPI芯片选择
panel.external_sd.sdcd_pin 0.28!^ #sd检测信号(如果没有检测到sdcard则设置为nc
welcome home page menu running gcode
img img img img

步进电机

小技巧:步进电机如何确定相线?

我需要多少轴?

  • 4~5个轴用于3D打印(单,双挤出机),不支持双独立喷头的BC3D Sigma(6轴)
  • 3个用于Z轴激光切割,2个用于简单激光切割
  • 3 for CNC milling

重要文档

此节的几乎所有内容都从下面第一个文档机翻整理:(不要小瞧机翻,Kora!)

Duet3D文档:选择和连接步进电机(十分深入的文章,几乎回答了步进电机选型,参数计算的所有问题)

Smoothie官方文档:运动控制

电路 官方文档:Stepper_Motors的接线图如下,仅第一种正确:
smoothieboard-10x10-步进驱动器 Step-motor-connect

注意,A/B相用颜色标出,仅第一种接法正确,后两种错误的接法测试时步进会震动或抖动,且无法锁相

步进电机怎么选择?

对于冰沙主板,由于步进驱动芯片A5984的最大驱动能力为2A/40V,最好使用42步进电机,57步进电机就不建议了,42步进电机指的是步进电机的长宽都是42mm,但是42步进机身会有很多种长度,例如34mm,40mm,48mm,60mm,长度越长,扭矩越大,但相电阻,相电流(额定电流),相电感 似乎与长度没有多大的关系,这个我也不太懂

于是先请教乐清步进电机自动化店,看看厂家怎么说:

乐清电机厂咨询(1) 乐清电机厂咨询(2) 乐清电机厂咨询(3)

聊天中的42 60mm长电机参数如下:

img

常见的42 40mm长电机参数如下:

img

电机的相电阻越小,相电流就越大(例如两相四线,有两相,一个相线的电流就是额定电流,一个相线的电阻就是相电阻),所以大家在选择步进电机的时候,选择额定电流接近2A步进电机的可以最大程度地体现扭矩,例如40mm长的电机就选1.7A的,60mm长的电机就选1.65A的

通常,电动机越长,在额定电流下的保持转矩就越大。较长的步进电机具有较大的转子惯性

以上是淘宝厂家的解释,下面看看写Duet3D文档的大牛们怎么说:

额定电流

建议使每个步进电机在其额定电流的50%到85%之间运行

额定电流通常指同时通过两个绕组的最大电流,不是用通过一个绕组的最大电流(这在使用微步进时确实很重要)来定义额定电流,即使该电流会比前者更高一些。那我们用前者定义额定电流会不会太小?不会,因为即使以额定电流驱动一个绕组,电动机也会变得非常热。

因此,通常的做法是将电动机电流设置为不超过额定电流的85%。要在不使电动机过热的情况下获得最大扭矩,建议应选择额定电流**不超过步进驱动器最大电流高25%**的电动机。这给出:

  • Duet 0.6和Duet 0.8.5(建议最大电机电流1.5A RMS)=>步进电机额定电流<= 1.9A
  • Duet 2 WiFi和Duet 2 Ethernet(最大电机电流2.4A RMS)=>步进电机额定电流<= 3.0A
  • Duet 2 Maestro(建议的最大电动机电流1.4A RMS,风扇散热良好)=>步进电动机的额定电流<= 1.7A。但是,如果使用额定电流较低(例如1.0至1.2A)和24V电源的电动机,则驱动器将以较低的温度运行。
  • Duet 3主板6HC和扩展板3HC(建议的最大电动机电流4.45A RMS)=>步进电动机的额定电流<= 5.5A
  • Duet 3 Tooboard(建议最大电动机电流1.4A RMS)=>步进电动机额定电流<= 1.75A

可见,如果按Duet3D的文档选电机,为了压榨A5984的性能(各位散热一定要跟上啊),居然可以选电流比驱动器还大25%,也就是2*1.25=2.5A的步进电机,以发挥驱动器最大的性能的同时,又不会让电机过热,还能获得最大扭矩,所以,如果预算充足,对于上表60mm长的42步进电机,可以选择 2.3A驱动电流的,holyshit !

步进电机的速度与力矩的关系

下方表格测试数据来自东莞市斯泰普机电科技有限公司

20步进 机身长40mm 42步进 机身长40mm 57步进 机身长76mm
2040步进电机力矩与转速曲线图-斯泰普机电科技(2) 4240步进电机力矩与转速曲线图-斯泰普机电科技(1) 5776步进电机力矩与转速曲线图-斯泰普机电科技(3)

步进电机的速度增加,力矩会迅速降低;转速到1000RPM/min已经相当高速,再提速容易堵转; (步进电机适合低速场合,需高速应用,建议上直流伺服电机)

保持扭矩(保持转矩)

上面的电机参数表中,40mm**长的42步进的扭矩一般为 $$0.45N\cdot m$$,这个参数受什么影响呢?

这是电动机在开始跳跃步骤之前,两个绕组都以全电流通电时可以提供的最大转矩。在额定电流下通电的一个绕组的保持转矩约为其的1 / sqrt(2)倍。转矩与电流成正比(在极低电流下除外),因此,例如,如果将驱动器设置为电动机额定电流的85%,则最大转矩将为指定保持转矩的85%* 0.707 = 60%。

转矩如何产生?

当转子角度与对应于其绕组电流的理想角度不同时,就会产生转矩。当步进电机(转子)做加速运动时,它必须产生转矩(以获得切向加速度)以克服其自身的转子惯性和所驱动负载的质量。为了产生该转矩,转子角必须滞后于理想角。反过来,负载将滞后于固件命令的位置。

微步

微步会降低扭矩。这的真正含义是,假定滞后角等于一个微步的角度(因为您希望位置精确到一个微步之内)时,较高的微步距意味着较小的滞后角,因此扭矩较小。随着微步距的增加,单位滞后角的扭矩(这才是真正重要的)不会降低。换句话说,向电动机发送一个1/16微步会产生与发送两个1/32微步或四个1/64微步完全相同的相电流(并因此产生相同的力),依此类推。

丢步

在启动或加速时如果步进脉冲变化太快,转子由于惯性而跟随不上电信号的变化,会产生堵转或失步,在停止或减速时由于同样原因则可能产生超步。为防止堵转、失步和超步,需要对步进电机进行加速度控制。

步距角

共有两种常见的步进角:每整步0.9度和1.8度,分别对应于每转400和200步。大多数3D打印机使用1.8度/步进电机。

除了步距角明显不同之外:

  • 0.9deg电机的保持转矩比同一制造商的类似1.8deg电机的保持转矩稍低
  • 但是,为了产生给定的扭矩,0.9deg电动机所需的滞后角略大于类似1.8deg电动机的滞后角的一半。换句话说,在较小的滞后角下,对于相同的滞后角,0.9deg电动机的扭矩几乎是1.8deg电动机的两倍。
  • 在给定的转速下,0.9度的电机产生的感应反电动势是1.8度的电机的两倍。因此,通常需要使用24V电源来实现0.9deg电机的高速运转。
  • 0.9度电机需要以1.8度电机两倍的速度将步进脉冲传递到驱动器。如果您使用高微步进,那么速度可能会受到电子设备产生步进脉冲的速率的限制。Duet 2 WiFi / Ethernet上TMC2660驱动程序以16倍微步进的插值模式可以用来解决此问题。Duet 2 Maestro和Duet 3上的驱动程序可以在任何微步设置下进行插值。

电感

电机的电感会影响步进电机驱动器在转矩下降之前可以驱动电机的速度。如果由于旋转而暂时忽略反电动势(请参阅下文),并且电动机的额定电压远小于驱动器电源电压,那么转矩下降之前的 最大转速/秒(r/s)为:

每秒转速=2电源电压每转步数π电感电流每秒转速 =\frac{2\cdot电源电压}{每转步数\cdot\pi\cdot电感\cdot电流}

如果电动机通过皮带轮驱动GT2皮带,则以mm / sec为单位的最大速度为:

速度=4皮带轮齿电源电压每转步数π电感电流速度=\frac{4\cdot皮带轮齿\cdot电源电压}{每转步数\cdot\pi\cdot电感\cdot电流}

示例:

速度=420(齿)12(V)200()π4103(H)1.5(A)=254.78(mm/s)速度=\frac{4\cdot20(齿)\cdot12(V)}{200(步)\cdot\pi\cdot4\cdot10^{-3}(H)\cdot1.5(A)}=254.78(mm/s)

使用12V电源在1.5A下运行具有4mH电感的1.8deg / step(即200 step / rev)电动机(上表的42HB40A),并用20齿皮带轮驱动GT2皮带: 以约250mm / sec的速度将开始损失扭矩。这是纯粹的一个轴的皮带速度,在CoreXY或增量打印机上与皮带速度不同。

实际上,由于运动引起的反电动势,并且由于上述原因不允许绕组电阻,因此转矩会比这更快地下降。由于旋转,低电感电动机的反电动势也较低。

这意味着如果要实现高速,就需要低电感电动机和高电源电压。Duet 2 WiFi /以太网的最大建议电源电压为25V,Duet 2 Maestro的最大建议电源电压为28V,Duet 3的最大建议电源电压为32V。

使用电桥测量步进电机的电阻和电感并计算

测试的电机万用表的相直流电阻为4.9Ω,126Hz下轻轻转动轴使其稳定在一步(1.8°)内的某一处,最低电阻为4.9Ω,电感为9.8mH,与上面的电机参数表40mm长 42步进的参数呈线性关系,使用12V电源在1A下运行此具有9.8mH电感的1.8deg / step(即200 step / rev)电动机,并用20齿皮带轮驱动GT2皮带:

速度=420(齿)12(V)200()π9.8103(H)1.0(A)=155.9(mm/s)速度=\frac{4\cdot20(齿)\cdot12(V)}{200(步)\cdot\pi\cdot9.8\cdot10^{-3}(H)\cdot 1.0(A)}=155.9(mm/s)

以约155mm / sec的速度将开始损失扭矩

旋转产生反电动势

步进电机旋转时会产生反电动势。在理想的零滞后角下,这与驱动电压异相90度,并且由于电感与反电动势同相。当电动机产生最大转矩并处于跳过步骤的边缘时,它与电流同相。

数据表通常没有指定由于旋转而产生的反电动势,但是我们可以根据以下公式进行估算:

旋转反向电动势=sqrt2pi额定保持扭矩每秒转速/额定电流旋转反向电动势 = sqrt(2)\cdot pi \cdot 额定保持扭矩 \cdot 每秒转速 /额定电流

该公式假定在两相均以额定电流通电的情况下指定了保持转矩。如果仅指定一相通电,则将sqrt(2)替换为2。

示例:

考虑一个200步的电动机,该电动机通过20齿皮带轮和GT2皮带驱动托架,算得每转40mm的运动。要达到200mm / sec的速度,我们需要5转/秒。如果在两相均以1.68A驱动时使用保持转矩为 $$0.55N\cdot m$$ 的电动机,则由于旋转而产生的反电动势峰值为1.414 * 3.142 * 0.55 * 5 / 1.68 = 7.3V

测试用的200步的电动机,该电动机通过20齿皮带轮和GT2皮带驱动托架,算得每转40mm的运动。要达到155mm / sec的速度,我们需要3.1转/秒。如果在两相均以1.0A驱动时使用保持转矩为 $$0.45N\cdot m$$ 的电动机,则由于旋转而产生的反电动势峰值为1.414 * 3.142 * 0.45 * 3.1/ 1.0 = 6.20V

如何计算电机所需的电源电压

如果您有打印机的目标行进速度,则可以估算出至少大约需要给电动机驱动器供电的电压。计算方法如下:

  1. 确定您的目标行驶速度。对于此示例,我将使用200mm / sec。

  2. 根据目标行驶速度,计算出最坏情况下的最大皮带速度:

    对于笛卡尔打印机,最坏的情况是纯X或Y运动,因此最坏情况的皮带速度与行进速度相同。

    对于CoreXY打印机,最坏的情况是对角线运动,相应的皮带速度是sqrt(2)乘以行进速度。

    对于增量打印机,最坏的情况是靠近床边缘的径向移动,最坏的情况是皮带速度是行进速度除以tan(θ),其中θ是对角杆与水平方向的最小角度。

    实际上,由于加速或减速所需的距离,我们无法将目标行进速度用于径向移动直至床身的边缘,因此,当喷嘴距床身边缘约10mm时,将θ作为角度在塔对面。对

    于我的三角洲,这是30度,

  3. 通过将皮带速度除以皮带齿距(对于GT2皮带为2mm)和皮带轮上的齿数,得出最大皮带速度下的电机转速。我的三角洲使用20齿皮带轮,因此每秒的最大转速为346 /(2 * 20)= 8.7。

  4. 计算出由于电感引起的峰值反电动势。

    公式:$$反电动势= 每秒转速\cdot \pi \cdot 电流 \cdot 电感 \cdot N / 2$$

    其中N是每转的整步数(对于1.8deg电动机为200,对于0.9deg电动机为400)。我的电机为0.9度,电感为4.1mH,我通常以1A的电流运行。因此由于电感引起的反电动势为8.7 * 3.142 * 1.0 * 4.1e-3 * 400/2 = 22.4V。

  5. 计算出由于旋转引起的近似反电动势。

    根据前面给出的公式:$$旋转反向电动势 = sqrt(2)\cdot pi \cdot 额定保持扭矩 \cdot 每秒转速 / 额定电流$$ 。我的电机的额定电流为1.68A,保持转矩为0.44Nm,因此结果为1.414 * 3.142 * 0.44 * 8.7 / 1.68 = 10.1V

  6. 最好,驱动器电源电压应至少为这两个反电动势之和,再加上几个伏特。如果您有两个串联的电动机,则所需电压将增加一倍。

在我的示例中,这提供了32.5V,高于Duet 2推荐的25V输入电压。但是至少我们知道,对于最坏情况下的增量移动速度为200mm / sec的移动,如果使用24V电源,则大于理论值的2/3,因此该移动可用的扭矩下降的幅度不应超过常规可用扭矩的1/3。另一方面,显然12V电源不足–这解释了为什么在我将打印机升级到24V之前我只能达到150mm / sec。

这里有一个在线计算器可以反过来执行此操作(即确定扭矩开始下降的速度)。

计算例子

博主测试的步进按保持转矩的最大速度155mm/s,以上述计算依次为155mm/s、3.1r/s、18.83V、6.20V、25V(需要再高几V),而冰沙的建议VBB为24V,因此我们降低4V后取20V进行逆运算:

每秒转速π1.0A9.8(H)103200()+sqrt(2)π0.45(Nm)每秒转速/1.0A=20(V)每秒转速\cdot \pi \cdot 1.0A \cdot 9.8_{(H)} \cdot 10^{-3}\cdot 200_{(步)}+sqrt(2)\cdot \pi \cdot 0.45_{(N\cdot m)} \cdot 每秒转速/ 1.0A=20_{(V)}

得出1.0A电流下,笛卡尔打印机结构的每秒转速为为2.45转(最大),目标行驶速度为2.45*(2 * 20)= 98mm/s(最快)

那如果换2.3A的60mm长 42步进呢?

img

我们同样取20V,工作电流为最大的2A,进行逆运算:

每秒转速π2.0A4.0(H)103200()+sqrt(2)π0.89(Nm)每秒转速/2.0A=20(V)每秒转速\cdot \pi \cdot 2.0A \cdot 4.0_{(H)} \cdot 10^{-3}\cdot 200_{(步)}+sqrt(2)\cdot \pi \cdot 0.89_{(N\cdot m)} \cdot 每秒转速/2.0A=20_{(V)}

得出未损失扭矩并且电源电压合适的情况下,笛卡尔打印机结构的每秒转速为为2.86转(最大),目标行驶速度为2.86*(2 * 20)= 114mm/s(最快)

理论最高速度计算

下段节选于Smoothieware的主要开发者wolfmanjm的博客:

基于Makerslide的增量3D打印机,吉姆·莫里斯(JIM MORRIS)(地区:英国牛津)发表 于2012年12月16日16:47:33 -0800

http://blog.wolfman.com/articles/2012/12/16/a-makerslide-based-delta-3d-printer

每转行进距离和最大速度的计算非常简单,这里是一个总结...

经过大量试验,似乎大多数步进电机的绝对最大速度(在任何微步设置下)均为10转/秒。那似乎是所有扭矩消失之前的最高峰。系统中的摩擦力或重量越大,行程越小。

对于设置为16微步的标准Nema 17(42步进),即每转3,200微步。

假设Arduino类MCU可以以大约30kHz或更高的速度步进,即16微步每秒9.375转,这几乎接近步进器可以执行的最大速度。

速度取决于每转可移动多少毫米。对于大多数设置,这似乎在每转25至50mm之间,因此对于两个极端情况,最大速度往往在250mm / sec至500mm / sec之间。(毫米/转 * 10转/秒)。

对于笛卡尔打印机的同步带和同步轮,可以通过将同步带的节距乘以驱动皮带轮上的齿数来计算每转的毫米数。

因此,对于2mm * 20齿的GT2皮带(如果您有20齿的驱动轮),每转40mm,则最大理论速度(扭矩完全消失之前)为400mm / sec

加速度?

上面讲了这么多,为啥不谈加速度? 因为我也不知道啊,按照

官方文档:运动控制

中的说法,加速度要自己根据负载多次测试调到最优,无法单独由步进的参数计算

步进驱动器

常见几款步进电机驱动IC对比

细分

冰沙主板使用的是Allegro MicroSystems公司的A5984步进驱动芯片,支持32细分下2A/40V的驱动能力,就是做A4988的那家公司

根据A5984芯片的datasheet P8的表格,我们将MS1和MS2跳线焊盘焊接跳线,MS3空着,从而设置为最精细的32细分模式

A5984细分跳线

对于步距角为1.8°的42步进电机,通过32细分,我们可以算出每1.8°细分为32份,但使用时我们需要通过同步轮将轴向运动转换为切向运动,对于步进电机的精度的计算,请观看Alan的从零开始动手制作双视觉全自动贴片机第二集

通过VREF引脚计算最大电流:

使用Vref引脚计算电流(a4982,a4988,a5984)

a4982,a4988,a5984等步进驱动器具有相同的公式,可通过V REF引脚计算最大电流:

ItripMAX=VREF/(8×RS)I_{trip_{MAX}} = V_{REF}/(8×R_S)

最大电流是一个桥式驱动器的还是俩个的总和?

问题: 一个步进驱动器具有2个桥(如下图),每个桥的RS = 0.05ohm,因此我认为方程式为0.05或0.1欧姆? 步进电机可以处理2A的电流,这意味着我tripMAX不应超过1A(因为有2个电桥)?

PS:步进驱动器VREF 为0.65V

电流设置和步进额定值分别适用于每个电机线圈。电机可以在每个线圈上传递2A电流,驱动器基于两个独立的并联电阻器调节电流,不必将值减半。根据计算,0.65V表示1.65A,1.65A对于步进电机来说很好,但对于驱动器来说可能偏大了,需要装风扇+散热片

A5984桥臂

电流设置

A5984的输出驱动能力高达40V/±2A(实际要达到此标准需要很好的散热)

博主测试用的42步进长度是40mm的,两相四线)相线圈电阻4.9R左右,33K电阻配50K机械式电位器和50K数字电位器测试如下

限制电阻(Rlimit) 50K可调电阻(POT)的值 PW引脚的电压(V) 步进电机理论电流(A)
ItripMAX=VREF/(8×RS)I_{trip_{MAX}} = V_{REF}/(8×R_S)
使能状态待机(motor on)
驱动器表面温度
使能状态待机(motor on)
步进电机温度
33K 3/40 0.15 0.375 温热 50度 温热
33K 6/40 0.30 0.750(推荐) 发烫 80度
33K 9/40 0.45 1.125 不能摸 100度+
33K 12/40 0.60 1.500
(与config文件相符)
不能摸 100度+ 滚烫
33K 16/40 0.80 2.000
极限值
极限值 极限值
33K 40/40 2.00 5.000 灰飞烟灭 灰飞烟灭

根据乐清42 40mm长步进的参数:

img

估计我测试使用的步进电机的额定电流为1.0A,因此冰沙config文件的默认1.5A实在是高得离谱,1.5A下驱动和步进都烫得不行

Alan使用42步进电机的长度是60mm的,实测跑到2A步进电机也不太热

20中空步进电机

相比42步进,这类电机十分昂贵, 有些大侠做贴片机会用到,斯泰普机电科技的 20中空步进电机参数如下,额定电流只有0.6A,如果用默认的1.5A过一会儿就烧毁了,一定要注意!

斯泰普机电科技20中空步进参数

默认数字电位器电流设置:

官方文档:数字电流控制

M503查看:

1
2
Digipot Motor currents:
M907 X1.50000 Y1.50000 Z1.50000 A1.50000 B1.50000

官方文档的currentcontrol里解释是用数字电位器比机械式调节更精确,MCP4451数字电位器支持256阶,然而物料需要两种数字电位器没有必要(MCP4451-503和103,实测MCP4451-103(10K)配6.65K电阻与MCP4451-503(50K)配33.2K电阻等效,完全没必要多采购一种物料(RS 5个起售了解一下,两种一共买10个100大洋没了,提刀,提刀)

修改数字电位器电流:

M1~M5 默认都为1.5A,VREF的电压为0.60V左右,电机和驱动都发热严重,我将其都改为0.75,此时VREF的电压为0.30V左右

1
2
3
4
5
alpha_current                                1.5              # X stepper motor current
beta_current 1.5 # Y stepper motor current
gamma_current 1.5 # Z stepper motor current
delta_current 1.5 # First extruder stepper motor current
epsilon_current 1.5 # Second extruder stepper motor current

修改后:

1
2
3
4
5
alpha_current                                0.75              # X stepper motor current
beta_current 0.75 # Y stepper motor current
gamma_current 0.75 # Z stepper motor current
delta_current 0.75 # First extruder stepper motor current
epsilon_current 0.75 # Second extruder stepper motor current

博主的步进电机在该电流下外壳约50度,用过A4988或者TMC2208的大侠可能会有疑问,之前用A4988或TMC2208的电位器调到0.6V~0.7V很合适,为啥A5984只要0.3V?因为冰沙主板的A5984的RS1和RS2是50mΩ,而市面上常见的A4988,TMC2208驱动模块用的是100mΩ

A5984_Rs

对于Rs,推荐華得電子 STE1206S1W0R050F 1% 50ppm的采样电阻

限制电阻

数字电位器的限制电阻 机械电位器的限制电阻 通过MJP1~MJP5跳线焊盘选择使用
MCP44X1数字电位器或3X3机械电位器
smoothieboard-10x10-限制电阻 smoothieboard-10x10-限制电阻(2) smoothieboard-10x10-限制电阻(3)
MCP4451的温度系数是50ppm 各个阶精度大约1%左右
R-limit(2) R-limit(1)
对于MCP4451-503 配合33.2K 建议使用1% 25PPM低温漂 对于MCP4451-103 配合6.65K 建议使用1% 25PPM低温漂
R-limit(1) R-limit(2)

设置最大电流

(我很好奇为啥冰沙的50K数字电位器在A5984最大电流为2A的情况下仅仅使用到10.2K(256阶仅用了52阶,0.03A/阶),计算了一下,限制电阻从33.2K变为158K时,50K才是满量程,对应的电流也要按2/0.8倍放大)

冰沙固件通过CHECKSUM宏抓取config文件里的关键字,在Smoothieware/ConfigSamples/Smoothieboard/config里找了一圈并没发现限制最大电流的关键字,于是到git仓库找找,发现位置在CurrenControl.cpp中,在AzteegX5Mini的config使用了该关键字做电流限制,为了保险建议在原版的config文件里加上

20201011091446

电位器的阻值与Vef是非线性的

驱动电流=电位器的阻值/(电位器电阻+限制电阻)/cdot电源电压/(系数/cdot采样电阻)////y(x)=x/(x+33.2)/cdot3.3/(8/cdot0.05R)驱动电流=电位器的阻值/(电位器电阻+限制电阻)/cdot电源电压/(系数/cdot采样电阻)//// y(x)=x/(x+33.2)/cdot3.3/(8/cdot0.05R)

将y(x)放大10倍,电位器阻值与驱动电流的关系 将y(x)放大10倍,电位器阻值与Ref引脚电压的关系
20201011101034 20201015162818=
个人建议用50K机械式电位器时,Rs1,Rs2用100m欧,R Limit用53.6K欧,这样当电位器最大时,驱动电流刚好为2A,即绿线与紫色直线的交叉点 原版用50K+33.2K限制电阻时,Ref最大刚好为2V,个人建议用50K机械式电位器时,R Limit用53.6K欧,Ref最大时为1.59V

线上数学函数绘图器: FooPlot

M1~M4如何使能

打开Pronterface,连接机器后,XYZ分别对应M1~M3,点击圆盘上的位移量即可,默认Extrude按钮就是M4,我们点击它即可测试M4,附加参数可自行修改,Pronterface使用教程有很多,这里就不细说了

M5如何使能

M5步进在config文件中定义为extruder 2(2号挤出机),测试需要将此段的#号全部删除

20200827221802

打开Pronterface,连接机器,写一段测试用的gcode发出

G1 F1800 X100.000 Y100.000 E100.00000

但是M5步进没反应,因为双挤出机系统下,当前挤出机默认为T0(M4),我们通过发送以下gcode更改为T1并测试它:

G6 T1 注:使能T1(M5)为当前挤出机,

G1 F1800 X100.000 Y100.000 E100.00000 注:测试用

或者

G6 T1 然后点击左边的Extrude按钮测试

20200828124319

测试时XYZ步进电机只沿着一个方向旋转,E1.E2步进电机正反转正常

DeBug

官方文档:troubleshooting

仅列举出博主遇到的问题

只有电源LED亮 (3.3VLED和VBB LED)

第一种情况

刚烧录完bootloaderDFU文件,将firmware.bin文件放入FAT32格式的SD卡,reboot后出现此情况

可能的原因:sd卡槽的盘下式焊盘未有效焊接

第二种情况

做最小系统测试时,如果未焊接LAN8720及其外围电路,而将sd卡中的config文件的以太网部分的network.enable配置为true,则开机LED1~4均不亮,程序卡在某处死循环

1
2
3
4
5
......
## Network settings
# See http://smoothieware.org/network
network.enable false # Enable the ethernet network services #default: false
......

上电后,电源LED不亮,LED1~4也不亮

焊完供电/任何功能部分的元件建议不要立即通电,先用万用表检查3.3V,5V、VBB的对地电阻是否接近0R,(不要用电桥测试,这样会得到电容的内阻)

  • 万用表测3.3V对地电阻在0.5k以上,因为AMS1117的3.3V与GND的电阻为1KΩ左右,再加上几颗并联的2.2K~10K的上拉电阻,博主将MCP44X1的I2C总线的2颗2.2K上拉电阻换为4.7K了,测得二周目是0.78K,三周目是0.76K,
  • 万用表红接电源轨,黑接GND,,测5V对地电阻从几K慢慢变为50KΩ以上,30秒内测得稳定读数:二周目是100K,三周目是84K
  • 万用表红接电源轨,黑接GND,,测VBB对地电阻从60K左右慢慢变大,30秒内测得稳定读数:二周目是130K,三周目是122K

若焊接了供电电路,未做以上检查就上电,则自恢复保险丝保住了你的1117,检查某处5V与GND、3.3V与GND短路了

另外,千万不要尝试将VBB与GND短路,或将VBB接入5V,3.3V,和任何耐压低于12V的引脚,😥 黑人抬棺

仅LED3不亮

检查SD卡座子盘下引脚的焊接以及LPC1769这边的SD卡SPI的GPIO

MOS管的LED指示灯长亮 (并没有使能)

MOS管的D极与GND连锡

电机仅朝一个方向旋转?

步进电机只向一个方向旋转且config在DIR引脚后添加"!"旋转方向还是不变,那么百分百是DIR与相邻的引脚连锡了

博主检查的DIR焊接问题:

A5984的DIR与GND连锡 DIR1与SD_CS连锡 DIR3与EN3连锡
奇奇怪怪的焊接问题(1) 奇奇怪怪的焊接问题(3) 奇奇怪怪的焊接问题(2)

另外,我i发现DIR1是低电平时,发现上拉电阻不起作用,强行直连了3.3V测试,马上板子掉电了,于是知道DIR与GND短路😅,如果10x10没加自恢复保险丝,1117将会升起一缕青烟😅

温度异常

例如pronterface报错:

1
2
3
ERROR: MINTEMP or MAXTEMP triggered on B. Check your temperature sensors!
HALT asserted - reset or M999 required
Print paused at: 21:26:24

可以长按killbutton待指示灯熄灭即可恢复

DCDC倒灌?

二周目省略了DCDC VIN二极管出现的问题,三周目补回来解决了

https://www.amobbs.com/thread-5720124-1-1.html

DCDC供电,同时也有电池供电的设备都有这个电源倒灌的问题,对于一些电压敏感的应用场合,不能简单地串个二极管解决。一般处理是mos管搭理想二极管电路或电源切换电路解决。

Eagle制作交互式B.O.M

InteractiveHtmlBom是kicad的插件,kicad可以导入Eagle工程

安装

下载整个项目压缩包,解压,例如安装路径为D:/Program Files/KiCad,那么将根目录的InteractiveHtmlBom整个文件夹放在D:/Program Files/KiCad/ share /kicad/scripting/plugins,不要放到D:/Program Files/KiCad/ bin /scripting/plugins,

使用

Pcbnew打开导入的eagle工程,工程导入后要先保存,再找到下图位置:

kicad-InteractiveHtmlBom

一键生成html文件,即可浏览器打开,效果如下:

kicad-InteractiveHtmlBom-view

BUG

kicad导入Eagle后,offset焊盘丢失了:

20201013153503

AD也想整一个!

对于AD,我们按照AD转换为KiCAD的方法将其导出为P-CAD 200x ASCII PCB(*.pcb)文件使用Kicad的Pcbnew导入也行

Eagle输出的gerber文件JLC助手解析超时

将Eagle PCB 4layer CAM处理器输出的gerber及drill文件按AD的风格命名即可,1分钟左右的解析时间,仓库的Eagle目录中有我调好的AD命名方式的Eagle四层板 CAM处理器预设文件,和钢网层CAM处理器预设文件

Altium Designer怎样输出Gerber文件和钻孔文件

20201005123115

JLC预览效果:

若报没有外形层叉掉无视即可,GKO层都正常识别了问题不大,可能需要备注USB-C的槽孔做金属化

仿真图 Gerber自动识别各个层
20201020040833 20201020040823

在10x10冰沙板上添加Mark点

待续

对原版冰沙板回流路径的建议

冰沙主板有两个混合MOSFET(一个小功率和一个大功率FET),官方文档中,对于混合大FET,给出了电流小于12.5A的限制,但是没有提及是在什么取电的方式下才能达到12.5A,因为混合式MOS管有两种可能的取电方式:

  1. 从VBB连接器取电并从VBB连接器的GND返回
  2. 从VBB连接器取电从Large Fets IN连接器的的GND返回

但是,通常情况,我们不会用第二种,因此,对于第一种的取电方式,相应流经的铜箔如下

Mixed Large Fet VBB Mixed Large Fet VBB(局部) Mixed Large Fet to VBB connector's GND Mixed Large Fet to VBB connector's GND(局部)
Mixed-Big-Fet-VBB-2 Mixed-Big-Fet-VBB Mixed-Big-Fet-gnd Mixed-Big-Fet-gnd-2
0.5oz 137mil = 1oz 68.5mil
载流2.9A (10温升)
0.5oz 18mil = 1oz 9mil
载流1A (10温升)

所以,对于原版冰沙主板大功率混合FET,要想达到12.5A,建议采用第2种取电方式,用第1种小心烧板子哈

对于10x10,第一种方式取电回流10A是完全没问题的

开源硬件(OSHW)

原版冰沙主板v1.1 和 修改的冰沙主板10x10 都是开源硬件

## Acknowledgments

进度一览

日期 活动
一周目
20200820 提交JP打样
20200824 收到板子及物料,开始撰写此文
20200826 最小系统,以太网,限位,Mosfet,步进驱动测试正常,测试时烧坏了P1.22,P1.23
20200827 发现致命线路错误,play信号线短接了y限位和3.3V,遂弃坑
二周目
20200911 开始尝试修改冰沙原版为10x10
20200922 测试版修改完毕
20200923 提交JP打样
20200927 收到板子及物料,连接器间距有亿点点问题
20200930 完成焊接和基本测试,未发现致命问题
20201001 完成5个步进电机驱动器的测试 ,连锡实属坑爹
20201002 替换了14包邮的LPC1769,测试一切正常
三周目
20201005 板子定稿,打样PCB,和钢网
20201011 收到板子及物料
20201013 完成焊接和基本测试,未发现问题
20201014 完成所有测试,0 error 1 warning
后续
20201015 写笔记
20201016 Arthur Wolf发邮件🍰(石沉大海)
20201018 重新计算功率部分铜箔载流,并给出推荐负载电流的表格
20201019 继续完善步进部分
20201020 【添加2020-10-13版本】,开源到本仓库
20201021 Alan寄了块板子测试
20201022 【添加2020-10-21版本】,加宽步进驱器走线
20201212 【添加2020-12-10版本】,优化dcdc电感走线(我回家啦,终于可以到博客发这篇了wwww)
20201227 焊接测试完2020-12-10版本