# 限位相位 - Klipper 文檔

跳轉至

# 限位相位

該文件介紹了Klipper的步進電機相態校準限位位置的功能（下稱：相態修正）。該功能可以增強傳統限位開關的準確性。使用帶有執行期間設定的步進電機驅動器，如Trinamic，可發揮該功能的最大作用。

典型的限位開關的精度在100微米左右。（每次歸零時，限位觸發的位置可深可淺。）儘管該誤差很小，但它確時會影響列印效果。對於模型的首層列印而言，該精度會有明顯的影響。相對地，步進電機的運動精度顯然更高。

相位修正功能可以利用步進電機的精度提高限位開關的精度。 步進電機通過一系列的相位循環運動，直到完成四個 "全步"。例如，一個使用16微步的步進電機，「全步」有64個相位，運動時會通過0, 1, 2, ... 61, 62, 63, 0, 1, 2...的相位循環。最重要的是，當步進電機處於線性軌道上的特定位置時，它應始終處於同一步進相位。因此，當滑車觸發限位開關時，控制該滑車的步進電機應始終處於同一相位。Klipper的限位相位系統將步進相位與限位開關觸發相結合，以提高歸零的準確定。

使用該功能需要確定步進電機的相位。如果使用 TMC2130, TMC2208, TMC2224 或 TMC2660 ，並設定為 執行時設定模式（即，不使用獨立（stand-alone）模式），Klipper可以通過訪問它們獲得相位資訊。（使用傳統步進電機驅動，在可以可靠地重置驅動地情況下，也能夠實現相態檢測功能。）

## 校準限位相位

在使用Trinamic驅動 並 使用了執行時設定后，可以使用ENDSTOP_PHASE_CALIBRATE命令進行相位修正。首先在配置檔案中加入下列設定：

    [endstop_phase]

之後，依次執行RESTART ，執行`G28`和`ENDSTOP_PHASE_CALIBRATE`。完成後，將列印頭移動到一個新位置，再執行`G28`。重複數次，確保每次列印頭在不同地位置執行`G28`。最少應重複上述移動-`G28`操作5次。

完成上述操作后，`ENDSTOP_PHASE_CALIBRATE`命令會給出相同或進行的步進電機相位值。該值可以輸入到配置檔案中，之後G28命令執行使會參考該相位數據。（此後，即使限位開關過早或過晚觸發，Klipper在歸零時會獲得調整到相同的相位。）

要儲存特定電機的相位修正資訊，可使用下面的命令：

    ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z

參照上述命令，我們可以儲存想要的步進電機資訊。通常，stepper_z會用於龍門式或CoreXY式印表機，而stepper_a、stepper_b和stepper_c則用於三角洲。最後執行下面數據儲存配置檔案：

    SAVE_CONFIG

### 額外要點

- 該功能在三角洲印表機和使用Z限位的龍門/CoreXY印表機上最為適用。該功能也可以用在龍門式印表機的X、Y軸上，但，由於X、Y軸的限位偏差不會對列印質量有太大影響，因此重要性略遜於Z限位。該功能不適用于CoreXY印表機的X，Y軸。（因為XY位置並非單個步進電機決定。）該功能也不適用于適用探針Z限位的印表機（因為步進電機相位僅在固定線性位置的限位上有效。）
- 在限位開關校準后，如果移動過限位開關，則需要重新校準相位。此時應刪除設定檔案中的校準值，然後重新執行相位修正。
- 為使用上述功能，限位開關必的偏差值需低於特定步進電機的兩倍「全步長」的距離。因此，如果步進電機使用16微步，此時每個微步的長度為0.005mm，則限位開關的分辨能力應低於0.160mm。如果系統反饋"Endstop stepper_z incorrect phase"（stepper_z相位與限位開關不一致）錯誤資訊，則限位開關的精度太差。如果重新校準未能消除報警，則需要停用相位校準功能。
- 如果印表機使用的是從傳統的步進電機控制Z軸（如龍門或CoreXY），同時使用了傳統的螺母調平的話，則可以使用相態修正功能將列印的每一層的邊界設定到一個「全步」上。要使用這個功能則需要在切片器上將層高設定為「全步」的整倍數，然後在設定檔案中的endstop_phase 片段中增加endstop_align_zero選項（詳見 配置參考），然後通過調平螺母調平。
- 該系統也有可能用於傳統(非Trinamic)步進電機驅動 。然而，這需要每次微控制器復位時，對應的步進電機驅動也同時復位。（如果兩者能實現同時復位的話，Klipper能夠通過記錄步進的總移動步數來確定其相位。）目前，能夠可靠地完成微控制器和步進電機驅動地同時復位地方式是，這兩者僅通過USB供電並USB電源通過執行有Klipper的樹莓派提供。此時可以在配置的MCU章節中新增 "restart_method: rpi_usb"，該選項將安排微控制器始終通過USB電源復位，在僅使用USB供電時，這將安排微控制器和步進電機驅動器一起被複位。使用這種方式時，需要在配置檔案中手動設定"trigger_phase"（詳見配置參考 ）。

Back to top