Anycubic Kossel Linear Plus モータードライバ変更

やりたい事

Anycubic Kossel の静音化として、定番となっているTMC2208をチョイス。ただ、これもよくある情報で、標準のモータドライバと極性が弱になっているので、対策が必要。

普通はプリンターのFirmwareで反転すればよいので、みなそうしている。ただ、問題は今気に入ってるAnycubicのAuto leveling firmwareのsource codeが公開されていない事。多分これを機にMerlinベースのFirmwareに移行するのがいいのだろうけど、現状上手くプリントできているので手を入れたくない。

ただ、TMC2208はOTPメモリの設定値を、UART経由でアクセスしてできるそうだ。これで極性を変えれば解決するはず。

というわけで、TMC2208の書き換え方法を調査した。

準備

FYSETC TMC2208 V1.2

ずいぶん前に購入。V1.0との違いは?よく調べずに、せっかくなので新しいのを買ったはず。

FYSETC 2208 Tester

UART経由でアクセスするため、上と同時購入

FYSETC TMC2208について

https://wiki.fysetc.com/TMC2208/

を見る。なんとなく雰囲気はわかった、とりあえずUARTのピンがモジュール上でつながってないため、半田でジャンパーをショートする必要があるらしい(当然調べる前に適当に繋いでみたけど通信できなかった)。

一応もう少し調べてみる。なにやら、バージョンによって違いがあるようだ。

Versions difference
V1.0 The default is standalone mode,If you need UART mode,you must config by yourself.
V1.2 UART mode, it’s used for F6.

ぱっと見、V1.0はStandalone、V1.2 はUART modeに見えるが、正直よくわからない。このページの下のほうのコメントでも、回路図くれ、何が違うの?、俺はうまくいっている、違ったバージョンを買ってしまった!とかかなり混乱している様子。FYSETCの人っぽい人も、今はみんなV1.2にアップグレードされてるよ、とか言ってて混沌とした感じ。

とりあえずちゃんと勉強しようと、本家のデータシートを見ることに。

TMC2208の勉強

https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC220x_TMC2224_datasheet_Rev1.09.pdf

ざっくり見て、General Congiguration RegistersのGCONF(0x00)の3bit目がshaftで Inverse motor direction、これこれ。と思ったら他のビットの説明でReset Default が OTP、となっているのがちらほら。嫌な予感がして、5.1.1を見ると、

The OTP memory holds power up defaults for certain registers.

え、certainかよ、という感じで、どうやら思っていたこと(一度書き換えればリセット後は反転動作)が簡単にできそうにないのでやる気がなくなる。マイコンいれるか、Merlin移行かな。

一応モードの整理を続ける。

  • OPTION 1: Standalone STEP/DIR Driver (Legacy Mode)
  • OPTION 2: Standalone STEP/DIR Driver with OTP pre-configuration
  • OPTION 3: STEP/DIR Driver with Full Diagnostics and Control

3 mode of operation の説明なのに option というのは如何なものか。UART使うのはOPTION 2と3という事。多分OPTION 2がやりたかったこと。

一応書き込みだけだから、TXを束ねてUARTで1bitだけ書き換えればよいのだけど、このモードの行き来ってどうするんだろうな。

The TMC22xx supports both, discrete control lines for basic mode selection and a UART based single wire interface with CRC checking. The UART interface automatically becomes enabled when correct UART data is sent. When using UART, the pin selection may be disabled by control bits.

とあるから、そんなに意識しなくてよいかも。OTPって一回だけ書けるとはいえ、やっぱり戻したいとかなりそう(という事が起こらないこともまた正しい)なので、やっぱりUARTで流しこもう、と気を取り直してきたところで今日は終わり。

ShigezoneでいろんなAruduinoを買っているので、どれかにやらせるか、マイコンとか面倒なのでFPGAでやらせるか(もったいない)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です