Gen7 Board 1.4.1/zh cn
English • العربية • български • català • čeština • Deutsch • Ελληνικά • español • فارسی • français • hrvatski • magyar • italiano • română • 日本語 • 한국어 • lietuvių • Nederlands • norsk • polski • português • русский • Türkçe • українська • 中文(中国大陆) • 中文(台灣) • עברית • azərbaycanca • |
Gen7 Board 1.2 | Gen7 Board 1.1 | Gen7 Board 1.0
本文用于替代Gen7 Board 1.3.1和Gen7 Board 1.4。关于如何从v1.3.1升级到v.4,请参阅 从v1.3.1升级到v1.4。关于如何从v1.4升级到v1.4.1,请参阅 Gen7 Board v1.4。
注意:本页面很多图片依然使用带有巨大散热片的Gen7 v1.4版本。这些图片将被最终替换掉。在图片替换前,请忽略这些散热片:-)
Release status: working
Description | Generation 7 Electronics
|
License | |
Author | |
Contributors | |
Based-on | [[]]
|
Categories | |
CAD Models | |
External Link | (none)
|
如何获取
PCB
您可以从Traumflug获取Gen7 PCB板。
Gen7用于RepRap项目的加工,您自然可以自己制作PCB板。关于如何在RepRap或者其他通用铣床上制作,已经在 Gen7主页中描述。您也可以在 Gen7主页上找到发布文档,Gerbers文件,PDF文件等。
另一个途径是从PCB原型制作商处购买打样。Gen7是单层板,制作起来花费不大。如果您想卖出多余的板子,请向Traumflug申请商业许可。
元件
您可以从Traumflug获取Gen7元件套装以及Gen7连接件套装。
如果您希望自己组装,请参考#原件列表一节。
原件列表
要组装或者验证此列表,可用gEDA/PCB打开布局(layout),并且导出物料清单“BOM”。这可以给您列出全部需要的元件。
规格考虑:
- Pololu步进电机驱动器(The Pololu Stepper Drivers)需要两个单行八针阴头连接座焊在主板上。
- Pololu步进电机驱动器带有阳头接口,因此不需要单独购买。
- 别忘记准备充足的跳线帽(8-9个)。
- 即使脚印(footprint)标称了“0.125”,电阻器也需要0.25瓦的安全功率。
- Pololu工作电压最大到35伏,因此电解电容也需要相应的电压(译者注:至少)。
- 您可能还需要连接件的一些电缆,插头和压线。
电子元件
下列列表是按照组装顺序排序的。
名称 | 数量 | 标识 | 供货商 | 备注 | |||||
---|---|---|---|---|---|---|---|---|---|
0.6毫米导线 | 50厘米 | Völkner | Digi-Key | Mouser | 用于单面PCB板飞线用 | ||||
电阻 10欧 | 2 | R11, R12 | Reichelt | RS | |||||
电阻 560欧 | 2 | R14, R22 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
电阻 1K欧 | 6 | R2, R6, R8, R10, R16, R18 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
电阻 4.7K欧 | 2 | RT1, RT2 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
电阻 10K欧 | 1 | R30 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
二极管 1N4004 | 2 | D1, D2 | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
电感(Coil) 100 uH | 1 | L1 | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
晶振 16 MHz 或者 20 MHz | 1 | U6 | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
复位按钮 | 1 | RESET | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
陶瓷电容 0.1 uF | 12 | C5, C8, C9, C10, C11, C12, C13, C14, C16, C17, C18, C19 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
LED 3毫米绿色 | 3 | LED2, LED5, +5V | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
LED 3毫米黄色 | 1 | Standby | Reichelt | Völkner | Farnell | Digi-key | Mouser | ||
陶瓷电容 22 pF | 2 | C3, C4 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
电解电容 10 uF | 2 | CT1, CT2 | Reichelt | Völkner | Farnell | Digi-key | Mouser | ||
电解电容 100 uF | 4 | C1, C2, C6, C7 | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
跳线座双针一排 | 4 对 | J2/J3, J5/J6, J8/J9, J11/J12 | Reichelt | RS | Digi-Key | Mouser | 裁切到合适长度 | ||
跳线座单针一排 | 2 | J13, J14 | Reichelt | Völkner | RS | Digi-Key | Mouser | 裁切到合适长度 | |
为上述跳线座准备的跳线帽 | 9 | Reichelt | RS | Digi-Key | Mouser | ||||
ICSP插头 | 1 | CONN6 | Reichelt | RS | Digi-Key | Mouser | alternatively, assemble this out of the remainings of the Jumper 2 Pin Headers | ||
Pololu插头 | 8或4 | U2, U3, U4, U5 | Reichelt | Völkner | Digi-Key | Mouser | 如果可以将它们裁切到合适的长度。你需要 8 x 8 针的 | ||
ATmega插座 | 1 | U1 | Reichelt | Völkner | Farnell | Digi-Key | Mouser | ||
ATmega 1284P-PU | 1 | Reichelt | RS | Mouser | |||||
替代:ATmega 644-20PU(或者644P-20PU) | 1 | Reichelt | Farnell | Digi-Key | Mouser | ||||
场效应管 MOSFET IRFZ 44N | 1 | Q1 | Reichelt | Völkner | Farnell | RS | Digi-Key | Mouser | |
场效应管 MOSFET IRLB 8743 | 1 | Q2 | RS | Mouser |
连接件
名称 | 数量 | 标识 | 供货商 | 备注 | |||||
---|---|---|---|---|---|---|---|---|---|
Molex KK100 2针插座 | 2 | TEMP_EXT, TEMP_BED | Reichelt | RS | DigiKey | Mouser | |||
为上述准备的电缆连接头 | 2 | Reichelt | RS | DigiKey | Mouser | ||||
为上述准备的压接接触件(Crimp Contact) | 4 | Reichelt | RS | DigiKey | Mouser | ||||
Molex KK100 3针插座 | 3 | X_MIN, Y_MIN, Z_MIN | Reichelt | RS | DigiKey | Mouser | Reichelt已经被验证可以与Molex完全兼容 | ||
为上述准备的电缆接头 | 3 | Reichelt | RS | DigiKey | Mouser | ||||
为上述准备的压接接触件 | 9 | Reichelt | RS | DigiKey | Mouser | 跟上述 TEMP_EXT、TEMP_BED 一样 | |||
Molex KK100 4针插座 | 4 | X_MOT, Y_MOT, Z_MOT, E_MOT | Reichelt | RS | |||||
为上述准备的电缆接头 | 4 | Reichelt | RS | ||||||
为上述准备的压接接触件 | 16 | Reichelt | RS | DigiKey | Mouser | ||||
Molex KK100 6针插座 | 1 | SERIAL | RS | DigiKey | Mouser | 可用此替换用作2针跳线座 | |||
可选:为上述准备的电缆接头 | 1 | RS | DigiKey | Mouser | 只有您打算焊一个自己的USB-TTL电缆才需要 | ||||
可选:为上述准备的压接接触件 | 6 | RS | DigiKey | Mouser | 只有您打算焊一个自己的USB-TTL电缆才需要 | ||||
加热器插座 Molex 26-48-1045(2针) | 2 | HEATER_EXT, HEATER_BED | RS | DigiKey | Mouser | ||||
为上述准备的电缆接头 | 2 | RS | DigiKey | Mouser | |||||
为上述准备的压接接触件 | 4 | RS | DigiKey | Mouser | |||||
加热器插座替换元件:2针螺丝接线端 | 2 | HEATER_EXT, HEATER_BED | Reichelt | DigiKey | Mouser | ||||
磁盘电源插座 | 2 | CONN2, CONN3 | Reichelt | RS | DigiKey | Mouser | 请参阅DIY 4 pin molex connector | ||
ATX24电源插座 | 1 | CONN1 | RS | DigiKey | Mouser | Molex Mini-Fit 44206-0007. Also known as VAL-U-LOK (20 or 24 Pins). | |||
Pololu用散热器 | 4 | Reichelt | Völkner | RS | |||||
散热器胶(Heatsink Glue) | 1 | Reichelt | Völkner | 为Pololu散热。将其切成合适的大小。Loctite(之类的)螺旋形胶也很好用。 |
其它杂项
Generation 7 Electronics 使用TTL串行与主机通信。由于很多现代PC机缺乏串行通讯口,可能需要一个合适的USB-TTL电缆:
USB-TTL电缆 | DigiKey | Mouser | Adafruit Industries | MAKE Store | MakerBot Industries | Watterott |
---|
USB-TTL线缆的替代方案是使用具有相同电路的一小块电路板:
USB-TTL电路板 | Watterott | Sparkfun |
---|---|---|
为上述准备的线缆 | Watterott |
另一个替代方案是:E'go USB-TTL适配器, 参见下面的说明和限制。
最后,当然你需要四个步进驱动:
Pololu stepper driver boards | Pololu stepper driver boards |
---|---|
开源替代品 | StepStick |
组装指导
- 为了确定各元件的安放位置,将布局图放到PC屏幕上。
- PCB的焊接使用泰森多边形法路径(Voronoi paths),需要温度更高。因此将你的电烙铁温度调高20摄氏度。
- 从最平坦的元件开始。通常是飞线或者电阻器。这样当你用PCB板正面位置放置焊接的时候元件不至于被碰落。然后再焊接更高的元件。通常接插件最后焊接。
- 元件列表正是按照这个顺序排列的。您可以按照此顺序依次组装(焊接)。
- 为了能够更容易的焊接跳线接头,可以在插入元件前涂一点万能胶(cyanacrylate glue,译者注:氰基丙烯酸酯可能有毒,请注意防护)。由于PCB板是单面的,胶水不会伤害到焊接点。
- 100uH 电感(coil)看上去就像一个电阻,只是比电阻粗一点,带有综-黑-综的色环。
- 由于8针的Pololu插座比较贵,不少套装会选择价格更低的10针插座,然后切掉两个针脚。
- 当焊接这些插座的时候,插入一个Pololu来确保对齐。
小心:仅有在 电源检查后才可以焊接MOSFET管或插入ATmega芯片。
组装图示
点击图片来看放大图。
LED2,LED5和 +5V LED是绿色的。因为所有LED都是二极管,所以有方向/极性的区别。它们较长的管脚是正极+,相应的插入LED2和LED5较上的孔位,+5V LED是左侧孔位。您也可以与布局图比较正极符号+。
C1,C2,C6 和 C7 也是电解电容,负极条纹超外侧或者底边。请比较布局图。
正如您所看到的,MOSFET管和ATmega并没有安装。我们稍候会继续。
另外,在ATmega上下有两行空孔。这是为扩展插座准备的。只有你打算焊接扩展板的时候才需要。我们将把此项工作放到组装扩展板里。
设置
这些步骤展示了怎样让焊接好的主板工作。
可能的电源选项
Generation 7 Electronics 有两个选项来满足机器的电源需求。
选项1
这是推荐选项。用一个PC电源,插入ATX24接口和两个磁盘电源接口,完成。这种方案可以满足全部电气需要。不需要任何改动。
需要注意的一点是PC电源有两个或三组电缆,每个上有几个磁盘电源插头。每组电缆只能够支持大概10安培的电流。所以确定每组电缆您只使用一个插头以确保有足够高的电流支持(针对加热床或者其他高电流设备)。
在这种情况下,ATmega可以在电源“关闭”状态(待机模式)下与主机通讯。因此请不要奇怪在你的Mendel开始工作的时候电源依然没什么动静。机器会根据G-code指令自动开关电源。
注意: ATX24 插座向后兼容ATX20插头。因此如果您的电源在使用ATX20插头,请插入合适的位置上(不要用蛮力。译者注:会有四针空着)。旧规格电源完全可以正常应用在本设备上:
选项2
本选项是为了没有标准PC电源的人。做一个插头,接入磁盘电源插座。插座上方为5伏直流,下方为12伏直流(其他为接地),ATX24插座留空。
该选项下没有待机功能。ATmega、Pololu、电机和加热头会始终供电。
电源选择
选择电源选择后,你要告诉主板从哪里获取5伏。
在主板的右下角可以看到两个跳线。
- ATX20/ATX24: 建议选项1。
- Disk Power: 建议选项2。
您可以且仅可以选择其中的一个选项。
电源检查
在5伏选择和所有电源接头都连接好后,您可以测试一下以确保主板不会烧掉ATmega。
- 红色:无论任何选项下,电源已经接入时。在选项1的情况下,电源尚未激活。
- 蓝色:同上,电源已激活,或者在选项2的情况下。
注意:图片中没有插入5伏选择跳线。但是你必须选择一个。
检查步骤:
- 没有冒烟?很好:)
- 右下角的黄色LED被点亮?非常好。
- 如果您选择了选项1,按图示中绿色标记所示,短接ATmega插座右上角针脚和旁边的跳线,电源应该被激活。
- 同时,右下角的绿色LED应该也被点亮。
- 如果你有电压表,可以按照图示测量一下电压。点代表飞线,箭头代表针脚。
- 检查ATmega插座每个针脚的电压。除了几个标记了5伏的管脚外,其他都应当不超过0.5伏。5伏管脚包括9、10、21、30、39和40(逆时针,从左下角开始数)。
- 检查靠下一行的Pololu的管脚。他们都不应当超过0.5伏。
如果一切都在限制范围内,你可以非常确信那些贵重元件接入后不会被烧掉。
插入半导体器件
安全测试通过后,现在可以插入半导体器件了。
(图示中依然包含散热器。v1.4.1不再需要)
- 完全断开电源。
- 两个MOSFET管外形一样,但是它们类型不同。请确定标记了 IRFZ 44N 的更接近 Pololu 插座,标记了 IRLB 8743 的更接近主板边缘。
- 焊接时MOSFET管平坦一面朝主板中心。由于工作时会有大电流通过,一定要上足焊锡。
- 将ATmega插入插座。跟其他相同封装的集成电路一样,在元件的一端有一个凹槽。这个凹槽要朝向MOSFET管,另一端朝向ATX24电源插座。正确插入后,您可以从ATX24一侧看到(ATmega元件上)正印的文字(型号标识)。
准备您的Arduino IDE
- 下载并解压/安装Arduino IDE。您需要v1.0或者更新的版本。如果您坚持使用v0023或者早期版本,参见 Gen7 v1.3.1 instructions,但是与早期版本一起的avrdude无法将程序写入ATmega1284P。
- 下载并解压 Gen7 Arduino IDE Support 2.0 package。
- 在包里找到文件夹
Gen7
并挪动到 Arduino包中的hardware
目录下。在Gen7 Arduino IDE Support包中有安装说明供参考。 - 启动您的Arduino IDE。
- 在菜单 -> Tools -> Board,从六个新条目中选择您的Gen7主板。他们在处理器类型和时钟频率上有区别。
- 在菜单 -> Tools -> Serial Port,选择正确的串口/com端口。
注意:对于Linux/Unix用户,如果您使用package manager安装,可能要找到arduino/hardward文件夹会比较困难,甚至找到后拷贝文件进去也会有问题。您可以从您的用户主目录中找到 "sketchbook" 文件夹,在其中建立文件夹 "hardware",然后将Gen7 support文件夹放入其中。文件夹 "sketchbook" 会在您第一次运行IDE时创建。
Bootloader
如果您的ATmega是跟Gen7套装一起的,那么bootloader应该已经上传好了。其他的bootloader,诸如 Sanguino,RAMPS,Sanguinololu或者其他什么都可以。
如果您是从厂家买到的全新的ATmega(例如您从一个元件供应商处买到的),ATmega应该不会带有bootloader。解决此问题,请参阅下面的 Bootloader上传章节。
如果您不确定,可以继续设置。没有bootloader会导致上传固件时超时错误。
串行通讯连接
推荐使用USB-TTL电缆或者USB-TTL电路板。其他定制化的不同的转换器也可以。请参见#定制化和其他。
下面是如何连接他们。GND地线总是左面的针脚:
将接头插入,将USB接入您的PC机上。您PC机的操作系统就会出现一个新的串行通讯口。
您的第一个固件上传
组装完毕后,在处理复杂的固件前,最好先上传一个测试用固件,来测试基本功能是否工作。
您可以找到Gen7的Github库中的测试固件。
注意:与Traumflug或者paoparts.com提供的套件一同的ATmega已经上传了测试固件。因此您可以看到你的ATmega甚至没有连接串行线之前就已经工作了。再次上传测试固件不会有任何问题,您可以按照固件上传步骤重新上传。
下面是步骤:
- 下载 SetupText.pde 文件。如果它已经在浏览器窗口中打开,请用“另存为...”保存成文件。
- 将您的Gen7接上电源,插入串行通讯转换器,将USB端插入计算机等等。
- 启动您的Arduino IDE。
- 在IDE中,打开 SetupTest.pde。您会看到是否创建同名文件夹的提问,请点击“Yes”。
- 确认在Test菜单上选择了正确的串行通讯端口,正确的主板类型。
- 点击“Upload"按钮开始上传(从右数第二个按钮)。
几秒钟后,您将会在一个黑色的文本区域内看到一些提示类似于:
Binary sketch size: 2142 bytes (of a 63488 byte maximum)
然后串行连接线闪动几秒钟。然后提示”Done uploading."之类的信息。
现在您可以确信上传固件可以工作。下面测试更多功能:
- 如果您打开IDE的串口监视器,按照9600波特率监视,您将会读到ATmega正在做什么。如果你能清晰看到文本,证明串行线工作正常。
- 在上传完毕的3、4秒后,电源会突然开始工作,在闪动加热头HEATER1的LED灯几次后,电源会再次关闭。要看到LED闪烁,12伏电源必须是连接好了的。
- 在按下Reset按钮后上述反应均会出现,与IDE或者串口无关。
固件上传的故障排除
一些USB-TTL适配器(推荐的就有)无法激发自动复位。典型症状是发出类似这样的消息:
avrdude: stk500v2_ReceiveMessage(): timeout
这个并不碍事,只是有些不便。您可能需要在上传完毕后手动复位:
- 在Arduino IDE的工具栏上点击"Verify"按钮。这样可以知道在"Binary sketch size"消息出现前需要多长时间。
- 关键点是在该消息出现前如何去按下和放开复位按钮。在一个复位后,bootloader将等待3秒钟用于固件上传。Arduino IDE在此消息出现后立刻开尝试始上传固件。
- 在尝试失败后,Arduino IDE通常无法停止avrdude的进程。在Linux下,终端中输入
killall avrdude
来帮助结束进程。
其他故障排除:
- 有的时候只是USB-TTL适配器跑飞了。这时候可以简单的把适配器拔掉等几秒钟,然后重新插入PC机。从PC机一侧拔掉跟从Gen7串口一侧拔掉是完全不同的。
微步进(调整)
您可能还希望在缺省值外设置其他的微步进方式(microstepping)。缺省是半步。微步进越小马达运行起来越平稳,但是会增加ATmega的计算负荷。这里可能的最小微步进为1/16微步。
您尽可随意为每一个马达设置微步进。例如,Z方向1/8微步,X,Y方向设置1/16微步。
您可以在每一个Pololu前面的跳线上设置微步进值。请参考MS2和MS3。Allegro文档上有一个叫做MS1的跳线,在Gen7板上已经直接焊接为High(插入跳线帽为High,不插任何东西为Low)。下面是Gen7主板的细节图,图示中为MS2设置为High,MS3设置为Low:
下面的表格告诉你每种组合的含义:
MS2 | MS3 | 微步进分辨率 |
---|---|---|
开路 | 开路 | 半步(half step) |
开路 | 短接 | 不允许! |
短接 | 开路 | 1/8步(Eighth step) |
短接 | 短接 | 1/16步(Sixteenth step) |
您可以在任何时候更改微步进,甚至电机正在运转的时候也可以。这可以非常方便的帮助您设置不同电机间的协同工作。
固件
原则上,您可以在此主板上运行任何ATmega兼容的RepRap固件。(需要)调整I/O管脚布局,调整编译选项为无附加电路板/无RS485(no secondary board/no RS485)。请参见Gen2, RAMPS, Sanguinololu或类似电路。
这里也有一些为slicer或者G-code应用的其他非Gen7指定的选择。(可以)使用您喜好的或者其他电路使用的(固件)。
Teacup 固件
Teacup的简单安装指导非常好的向您展示了如何操作。下面是一些对于Gen7的调整:
- 对您的Arduino IDE针对Gen7做一些准备,请参阅先前的解释。
- 下载Gen7 branch来取代标准下载到的文件。
- 从那里找到 config.gen7-v1.4.h 和 ThermistorTable.double.h 并应用。
如果保持 config.h 不动,至少还得有些事情要做。作为第一个测试还没什么问题,但是对于您自己的机器可能就不够了。请进一步编辑 config.h 来匹配您的机器和配置。文件 Config.h 当中有很多注释对您很有用处。例如,STEPS_PER_MM_X 应当设置为您所选择的微步进。
Reprap 软件始终在保持更新中。因此尽量使用最新的客户端和片上(slicing)软件。否则您有可能会导致兼容性问题。例如,早期的reprap宿主软件可能无法准确报告温度值。为宿主软件解决此问题,使用Pronterface。使用Slic3r而不是Skeinforge,解决了使用 Teacup 固件的另一个问题,也即会永远卡在'等待目标温度'上面。
Repetier 固件
在 644 @ 20Mhz 上测试通过。关于配置和引脚文件的例子,请参见此文章。这些会很快集成到默认的固件当中。
这里有github下载页面,文档在github wiki。
版本v1.3.1和v1.4的管脚布局有一些变化。因此您必须对此作出修改。作为参考,请参阅其他配置。
FiveD 固件
Gen7的早期版本对FiveD有一个可用的配置。自从引脚布局变化后,您必须自己调整。作为参考,请参阅 其它配置。
Sprinter, Marlin
在Sprinter和Marlin开始兼容非16MHz电气的确有很长时间了。在写此文的时候,Marlin 和 Sprinter Experimental 应当可以工作。
版本v1.3.1和v1.4的管脚布局有一些变化。因此您必须对此作出修改。作为参考,请参阅其它配置。
其它配置
下面的信息可以帮助您配置其它固件。
引脚分配
+--------\/--------+ INT8 (D 0) PB0 1|> Xmin Temp_Bed {|40 PINA0 (AI 8 / D31) (PINA0 for analog, PA0 for digital) INT1 (D 1) PB1 2|> Ymin Temp_Ext {|39 PINA1 (AI 1 / D30) (PINA1 for analog, PA1 for digital) INT2 (D 2) PB2 3|> Zmin Xstep >|38 PA2 (AI 2 / D29) (...) PWM (D 3) PB3 4|< Heat_Bed Xdir >|37 PA3 (AI 3 / D28) PWM (D 4) PB4 5|< Heat_Ext Ystep >|36 PA4 (AI 4 / D27) MOSI (D 5) PB5 6| Ydir >|35 PA5 (AI 5 / D26) MIS0 (D 6) PB6 7| MotEn >|34 PA6 (AI 6 / D25) SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) RST 9| |32 AREF VCC 10| |31 GND GND 11| |30 AVCC XTAL2 12| Zstep >|29 PC7 (D 23) XTAL1 13| Zdir >|28 PC6 (D 22) RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO RX1 (D 10) PD2 16| Estep >|25 PC3 (D 19) TMS TX1 (D 11) PD3 17| Edir >|24 PC2 (D 18) TCK PWM (D 12) PD4 18| |23 PC1 (D 17) SDA PWM (D 13) PD5 19| |22 PC0 (D 16) SCL PWM (D 14) PD6 20| PwrEn >|21 PD7 (D 15) PWM +------------------+
功能 | ATmega 名称 | Teacup | FiveD | 固件中的方向 |
---|---|---|---|---|
X 步进 | PA2 | DIO29 | 29 | 数字输出 |
X 方向 | PA3 | DIO28 | 28 | 数字输出 |
X Min | PB0 | DIO0 | 0 | 数字输入 |
Y 步进 | PA4 | DIO27 | 27 | 数字输出 |
Y 方向 | PA5 | DIO26 | 26 | 数字输出 |
Y Min | PB1 | DIO1 | 1 | 数字输入 |
Z 步进 | PC7 | DIO23 | 23 | 数字输出 |
Z 方向 | PC6 | DIO22 | 22 | 数字输出 |
Z Min | PB2 | DIO2 | 2 | 数字输入 |
挤出步进 | PC3 | DIO19 | 19 | 数字输出 |
挤出方向 | PC2 | DIO18 | 18 | 数字输出 |
电源使能 | PD7 | DIO15 | 15 | 漏极开路输出, active low |
电机使能 | PA6 | DIO25 | 25 | 数字输出 |
加热器 1 | PB4 | DIO4 | 4 | 数字输出 |
加热器 2 | PB3 | DIO3 | 3 | 数字输出 |
温度 1 | PA0 | PINA0 | 0 | 模拟输入 |
温度 2 | PA1 | PINA1 | 1 | 模拟输入 |
版本变化,从v1.3:
- 最大行程终点被取消。
- 最小行程终点现在为 PB0 / PB1 / PB2。
- 步进电机顺序反转(由原来的E Z Y X 变为 X Y Z E)。
- 所有模拟信号管脚配置到了左侧(针脚编号 - 1)。
本次提交的 Teacup 固件易可帮助升级其他固件。
连接设备
到现在,您应当已经将固件上传。为了简化描述,我假定您使用了Teacup固件。
光电终点检测
(终端检测)非常简单,一些固件依靠这个部件控制步进电机。Gen7可以接受任何使用5伏信号的终端检测装置。只要线序正确,Gen7就可以使用。
- 制作一个3线的电缆,长度可以从Gen7够到X轴终端即可,在其中一端焊接接头。
- 将插头插入Gen7的X轴终端检测插座上。这个插座最接近MOSFET管。
- 连上您的Teacup,发送M200.这应当会启动您的电源,告诉终端检测当前的状态。
- 当电源开始工作,使用电压计找到5伏导线,对中心线(地线)测量电压。
- 第三根线是信号线。
- 根据需要制作其他终端检测的接头。
- 吧所有接头都接好,然后持续发送M200来检测终端检测装置。可以使用一个卡片遮挡光电检测的光线进行测试。
- 如果当没有卡片遮挡的时候M200报告"1",您可能就得将终端检测的信号翻转。在Teacup中,您可以在config.h文件中切换X_INVERT_MIN的注释。做完更改后需要重新上传固件。
- 到此X轴终端检测就做完了,重复完成Y轴和Z轴。
图示中展示了Gen7终端检测已经连接到了Gen7主板。在图示的角度拿着板子,左侧的针脚既是信号。中心脚是地线(GND),右侧是5伏。图中的改锥只是为了固定图片排列用,请直接忽略。
光电终点检测故障排除
如果固件没有按照期望报告状态,您可以测量信号电压。如果电源已经开启,信号针相应也产生了变化,ATmega针脚应当随着遮挡光电检测而在0伏到5伏间变化。如果果然如此,您的固件可能存在问题。通常是因为管脚
排列配置错误导致。请检查config.h/configure.h/configuration.h。
步进电机
步进布线(Stepper Wiring)
(描述即将完成)
调整Pololu/StepStick
在 Sanguinololu wiki page上详细描述了怎样通过测量电压来调整步进驱动。
这里有其他的办法:
- 同一时间只调整一个轴向。
- 确定在关闭电源的情况下轴向可以用手轻松移动。如果机械方面无法移动,此处没有任何文档可以帮助。
- 将微调筒逆时针转到头。
- 将微调筒顺时针转1/8圈。
- 给固件发送移动该电机的指令。首先用低速(G1 F50),然后快一点。
- 如果马达只是有声音,但是不见移动,或者如果你发现它缺步,将微调筒顺时针再转1/8圈。情况应当会好一些。
- 当你找到了再也不缺步的位置,将微调筒继续旋转1/8圈并置为安全边界。
- 完成。重复上述动作调整其他轴向。
步进电机故障排除
注意:在断开一个电机或者步进电机,一定要至少关闭12伏电源。如果Gen7主板又ATX20/24供电,按下reset按钮就可以实现。
- 如果有什么东西在一个轴向上不工作,在其他轴向上工作良好,请将步进驱动电路接入其他轴向重试。这能够帮助您找到带有缺陷的部件。所有的轴向在电气上完全一致,因此您可以随意调换。
- 如果有马达只往一个方向运动,可能您固件中的终端检测部分与硬件不匹配,或者DIR针脚没有获得信号。DIR针脚位于步进驱动电路接口最右下角,您可以用电压表测量。它应当在改变方向的时候在0伏到5伏之间变化。
- 如果步进方向反了,您可以将接头中其中一组电机线圈的两级互换一下。例如,ABCD线序变为ABDC。另一种办法是在您的固件配置中改变方向。两种办法是完全等价的。
- 如果完全没有动作的迹象,检查一下ENABLE针脚。在尝试动作的时候电压应当下降。0伏=步进电机使能,5伏=步进电机屏蔽。此针脚位于步进电机驱动接头的最左下角。
- 如果电机开始移动了,但是经常停顿,每次停顿大概半秒钟,驱动电路芯片显然是过热保护了。可以考虑加一个散热器或者风扇什么的来降低温度。您也可以考虑减小驱动电流。这取决于您具体的情况。
- 如果在没有计划移动的时候,您的步进驱动和/或马达开始升温,这是正常现象。步进电机在开机的时候即使静止也会吸收大量能量(电流)。
挤出器、加热床
挤出器和加热床在电气角度上看基本一样。它们都带一个温度传感器和加热元件;它们在电气角度上是彼此独立的——因此请阅读下面的两段。
热敏电阻
这个也很简单。热敏电阻只有两根线且没有极性。在Gen7 v1.4中热敏电阻使用待机电源,因此您可以随时看到当前温度。
注意:确保热敏电阻和加热头的线缆之间没有电气连接。加热头一般运行于12伏下(即便在关闭时)。这个电压足可以烧毁ATmega的输入针脚。通常热敏电阻或者加热头的电线的哦不会直接接到挤出器的金属外壳上,这样我们就有了双保险。
至于哪个热敏电阻连接哪个功能无所谓。只要能够匹配您的固件配置就可以了。对于热敏电阻的电路是完全一样的,只是PCB板上的标签和ATmega的管脚不一样而已。因此如果您的挤出机温度报告不对,完全可以互换管脚位置,或者互换接头。
测试热敏电阻,可以连接上,然后用手指给它加温,同时重复发送M105指令。它未必能在室温下准确报告,但是应当随着加温读书会产生变化。
注意:Gen7可以完成非常准确的温度测量。但是您得制作您自己的温度表。为什么要这么做和为什么这个不太需要,请参阅 Teacup's ThermistorTable.double.h 的很长的一段注释。
热敏电阻的故障排除
- 如果温度度数是0,您可能在固件中配置了错误的管脚,或者热敏电阻断路。
- 拔掉热敏电阻,然后测量它的阻值。在一般的室温下,他应当度数正常(10 kΩ / 100 kΩ / 200 kΩ)。
- 热敏电阻短路会导致一个非常高的度数,类似于 800 °C。
加热器
加热器也非常简单。它是没有极性的一个电阻。因此将两端任意接入插座即可。要让加热器工作,您西药首先焊接相应的MOSFET管。
注意:如果您第一次使用加热器,要确保相应的温度可以被读出。万一热敏电阻装错了位置,固件无法获知温度已经上升,因此也无法终止加热器在到达预定温度后持续升温,最终会导致元件损坏。终止跑飞的加热器,您可以按下reset按钮。
注意:由于热床工作时需要大量电流,因此要确保插座清洁。脏掉(或者氧化)会导致接触电阻增加,会导致高温甚至将插座融化。
测试加热器:
- 发送命令 M104 50 使挤出头升温到50°C。
- 观察相应MOSFET管的LED会点亮。其亮度能够提示当前的PWM值。
- 持续发送命令 M105 可以观察到温度上升。
- 当温度达到大约50°C的时候,LED会变暗,温度应当停止上升。
- 发送命令 M104 S0 来终止加热头,LED应当变暗或者关闭。挤出器温度应当下降。
- 如果有热床的话,用相同的方法测试一遍。用M140指令可以设置热床温度。
加热器的故障排除
- 您的温度度数是否工作,例如,一开始它是否读出值类似于屋内温度,而不是一些没有道理的值?大部分固件都内置保护。只有当温度确保合适的时候才工作。
- 您可以在电源开启后,在低一些的针脚测量是否有12伏电压。如果没有,那么低一些的Molex 4针接头无法提供12伏电源。
- 能看到LED亮起么?至少微弱的亮起。如果没有,要么MOSFET管吹了,要么它没有从ATmega得到信号,要么没有12伏电源。
- 彻底没有连接到信号针脚。例如固件配置错误,通常会导致LED发光微弱。MOSFET管非常敏感,对于随机的电磁干扰也会导致部分开启。
- 在MOSFET管右侧的10Ω电阻上可以通过电压计测量信号。PWM值越高,(平均)信号会越接近5伏。
定制化和其他
这部分仅对高级用户描述可能的改动。
非12伏电压
虽然从电源中取得12伏电压非常实用,Gen7依然可以使用其他电压。甚至支持电机和加热器的电压不同。
可能的使用方法:
- 12V用于加热器,24V用于马达。这样电机可以跑的更快,挤出器和加热床上依然可以使用标准的Reprap加热元件。马达的供电电压仅受限于Pololu并且最高到35伏。
- 12V用于电机,5V用于加热器。这样对于您的电源损耗更均匀。
- 12V用于电机,3.3V用于一些类似于EDM或者电感加热喷嘴。记住,IRFZ44N 切换速度很快,ATmega配备有频率/PWM生成器。
- ...
关于从哪里支持什么,参见上图。只需要将您需要的电源重新连接到磁盘电源插座即可。要保证所有的电源至少要接一个GND针到通用地。
磁盘电源插座上的靠上一些针脚为5伏电源,如果您使用ATX20/24接口,它并不是必要的。但是不要接入不同的电压,也不要从其他不同的电源接入(相同电压的)电源。
挂一个风扇
您也可以使用SevenSwitch连接一个风扇/吹风机。可以连接到扩展板针脚上(用两个针脚,一个是信号,一个是地GND),也可以从ICSP接口上引出两个针脚。 Paoparts使用了后者,文档在这里(法文,带有图片和代码片段):Ventilateur pour l’extrudeur, commandé par la GEN7 avec Teacup。
串口连接
如果您希望自定方案,完全可以试一下。仅仅将RS-232端口连接到串行接口上无法工作,至少电压规格都不一样。ATmega的串行信号是反过来的(逻辑0=5伏,逻辑1=0伏)。这里是串行接口的针脚排列:
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
GND | CTS (set to GND) | (+5 Volts) | RxD | TxD | Reset |
RxD是ATmega的第14针脚(数据进芯片);TxD是ATmega的第15针脚(数据出芯片)。
在大多数USB-TTL适配器中针脚3是 5伏,但是不接入主板。这里的5伏供电会与ATX电源的5伏冲突(轻微的不同)。
针脚6通常连接到串行线的RTS端。这会在您每次连接上传固件的时候触发一个复位信号,非常方便 - 无需再手动按下reset按钮。Arduinos有此电路。如果您保持针脚6空闲,每次当IDE(avrdude)尝试上传口手动按下reset按钮。
使用E'go USB-TTL适配器
这个转换器很便宜,使用了Silicon Labs CP2102芯片,基本工作良好:
Gen7 | GND (Pin 1) | +5 Volts (Pin 3) | RxD (Pin 4) | TxD (Pin 5) |
USB-TTL adapter | GND (Pin 5) | +5 Volts (Pin 6) | TxD (Pin 3) | RxD (Pin 4) |
这里的重点是不要把Reset针都连接上。
您无法实现的是自动复位。因此您在上传完一个固件后必须手动按下reset按钮。
此适配器的供应商
- eBay.
Bootloader上传
注意:本章只适用于您有一个空白的,工厂出来的全新的ATmega芯片。Gen7的提供商都会帮您将bootloader烧录进去,因此您不需要编程器。
本章节将会描述如何使用编程器将bootloader烧录到芯片中。这个编程器通常需要$20到$30。一个更便宜的方案是做并行通讯口适配器。另一个替代品是使用Arduino或者其他AVR实验板当作编程器。
注意:这个过程可以在只具备部分功能的板子上完成。这个板子只需要电源,晶振,复位(按钮)和编程接口。
如何操作:
- 断开所有连接,包括电源。
- 插入ATmega644。确保方向正确,封装上的凹槽冲着PCB板加热器插座一侧,从ATX20插座一侧可以阅读芯片上的铭文。
- 接入您的编程器。确保插入正确。
- 将编程器PC端接好。
- 重新连接电源,不要打开它。
注意:编程器所用的管脚会跟扩展板冲突。因此在使用编程器的时候将扩展板断开,确保编程器没有管脚冲突。
现在您应当看到例如:红色LED提示主板依然没有电源:
使用命令行烧录bootloader
- 按照上述说明,为Gen7准备好您的Arduino IDE。
- 打开电源,至少有一个电源指示灯在亮着。
- 打开终端(Terminal),进入Arduino IDE的文件夹。所有必需的工具/程序都在那里(即使没有系统级的安装也可以)。
Linux
下面的操作在Linux下完成。其他操作系统的操作方法应当类似。
cd hardware/tools ./avrdude -C ./avrdude.conf -c ? # find your programmer, e.g. "avrispv2" ### For the ATmega644: # 写保险丝 ./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644 -P /dev/ttyACM0 \ -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m # 上传bootloader ./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644 -P /dev/ttyACM0 \ -B 1 -U flash:w:../Gen7/bootloaders/Gen7/bootloader-<your variant>.hex # 锁定bootloader # 这里会出现一个期望的错误 "verification error 0xcf != 0x0f" ./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644 -P /dev/ttyACM0 \ -B 1 -U lock:w:0xCF:m ### For the ATmega644P: # 跟上述类似,使用 "-p atmega644p" 来替换 "-p atmega644" ### For the ATmega1284P: # 跟上述类似,使用 "-p atmega1284p" 来替换 "-p atmega644" ### For an USB programmer: # 跟上述类似,使用 "-P usb" 来替换 "-P /dev/ttyACM0"
您的编程器会闪动几秒钟,然后上传就完成了。注意如果您使用Arduino主板作为编程器,您可能需要添加参数标识 "-b 19200" 来确保正确工作。
Windows
在Windows下,您将必须确定您连接了哪个COM口。或者简单的尝试COM1, COM2, ... COM8直到正确为止。跟上面的方法类似,Windows下的命令如下:
cd hardware\tools\avr\bin avrdude -C ..\..\etc\avrdude.conf -c ? # find your programmer, e.g. "avrispv2" ### For the ATmega644: # 写保险丝 avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \ -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m # 上传bootloader avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \ -B 1 -U flash:w:..\..\..\Gen7\bootloaders\Gen7\bootloader-<your variant>.hex # 锁定bootloader # 这里会出现一个期望的错误 "verification error 0xcf != 0x0f" avrdude -C ..\..\etc\avrdude.conf -c <your programmer> -p atmega644 -P COM1 \ -B 1 -U lock:w:0xCF:m ### For the ATmega644P: # 跟上述类似,使用 "-p atmega644p" 来替换 "-p atmega644" ### For the ATmega1284P: # 跟上述类似,使用 "-p atmega1284p" 来替换 "-p atmega644"
您的编程器会闪动几秒钟,然后上传就完成了。
使用Arduino IDE烧录bootloader
许多程序员不直接使用USB协议,而是使用USB-TTL转换。(这种方式)到目前为止bootloader还没有那么方便可以通过Arduino IDE的图形用户界面上传。
调试提示:Arduino显然在向工厂状态的芯片写保险丝位的时候不尝试使用标识 "-B 5"。但如果编程器之前已经设置为较高速度的情况下,这(这个标识)是必要的。ATmega芯片在1 MHz(工厂默认值)频率下是无法跟上115200波特率的速度的。
Arduino IDE 和 USBtinyISP
- 断开所有连接,包括电源。
- 移除USBtinyISP上的跳线3。
- 将USB电缆插入USBtinyISP。
- 用6针电缆将USBtinyISP和Gen7主板连接。再次提醒,注意插入方向。
- 重新连接电源并打开电源。
- 启动 Arduino IDE。
- 从菜单Tools->Board选择您正在使用的ATmega芯片。
- 不要选择COM/串行接口。
- 选择菜单Tools->Burn Bootloader->w/USBtinyISP
此时,USBtinyISP的红色LED应当点亮,它会用一到两分钟烧录芯片。当工作完成后,IDE会告诉您工作完成,红色LED也会熄灭。
特殊情况
一个用户有电源在待机时只输出4.5伏电压。这个电压太低了。因为4.3V就会触发掉电检测并且将主板复位。
解决这个问题,您可以将扩展保险丝从0xFC修改为0xFD。这样可以设置掉电检测触发电压为2.7伏。当然这样会让ATmega在一个很短的时间内失控。不过这也比随机掉电复位或者完全没有掉电检测来的好。
参考
英文参考文献标题就不再翻译了
- AVR Fuse Calculator
- 用下列命令检查ATmega保险丝位和其他属性:
./avrdude -C ./avrdude.conf -c <your programmer> -p atmega644p -P /dev/ttyACM0 -n -v
- How to write the bootloader onto Arduinos
- Bootloader half the size of Arduino's/Sanguino's
- About programming with direct USB programmers like the USBTinyISP. 提示:您可能需要使用 "sudo" 命令或者向 /etc/rules.d 写入一个规则。