Rnext pisze:PostScriptum:Kiepski board.
Nie bardzo lubię teoretyzować, więc siedziałem cicho
ale dziś przyszły do mnie TMC2209 z alidługo.
I dziś, w zasadzie bez problemów, udało mi się UART na tej płycie uruchomić. Opis dla potomnych.
Zamówiłem stepticki Fysetc TMC2209 v3.1, te:
https://www.aliexpress.com/item/33027610442.html bo po pierwsze Fysetc, więc pewnie najlepsze
, a poza tym w tej wersji na PCB jest już rezystor 1k na linii TX więc nie trzeba kombinować z wiszącymi w powietrzu.
Założenie było takie, że UART ma być sprzętowy - ten, który jest w Robin Nano v1.2 wykorzystywany do WiFi - czyli TX na nodze PA9, RX na PA10. Na płycie MKS to są dwa piny obok siebie na lewej listwie na dole modułu WiFi -
https://github.com/makerbase-mks/MKS-Ro ... %20PIN.pdf
Wystarczy połączyć piny TX stepsticków do pinu TX na płycie, a RX stepsticków do RX na płycie (wychodzi, że TX/RX na stepstickach sa oznaczone odwrotnie
).
TMC2209 pozwala na sterowanie do 4 stepsticków za pomocą jednej linii sprzętowego portu szeregowego. Żeby to było możliwe, dla każdego stepstick'a należy ustawić adres sprzętowy. Robi się to zworkami pod stepstickiem, na powyższym schemacie PCB to są złącza J1_M3 dla X, J1_M4 dla Y, J1_M5 dla Z i J1_M1 dla E0.
Na schemacie ideowym
https://github.com/makerbase-mks/MKS-Ro ... %20SCH.pdf
jest to złącze J1 na stronie 9. W oryginale wszystkie trzy zworki są założone. Należy po pierwsze zdjąć zworkę 5-6 z każdego stepstick'a bo ona podaje Vcc na linię TX stepstick'a (więc UART nie będzie działać bo jest podciągany do H), a następnie zworkami 1-2 (MS1) i 3-4 (MS2) ustawić adres sprzętowy każdego z nich. MS1 i MS2 są podciągane wewnętrznie pod L, więc wystarczy zdjąć lub założyć zworkę podającą Vcc.
Zgodnie z dokumentacją TMC2209, adresy ustawia się następująco:
Kod: Zaznacz cały
MS2 / MS1
0 / 0 = 0
0 / 1 = 1
1 / 0 = 2
1 / 1 = 3
Zgodnie z tym, jak na zworkach, adres należy ustawić w Marlinie. U mnie jest ustawione X=0, Y=1, Z=2 , E0=3.
Co do konfiguracji Malina, używam w tej chwili linii bugfix-2.0 z 29.09.2020 - tej, która jest oznaczona jako stable-2.0.7.
Zmiany w stosunku do konfiga ze stockowej konfiguracji, czyli 2xTMC2208 + 2xA4988, to:
Configuration_h
Kod: Zaznacz cały
#define X_DRIVER_TYPE TMC2209
#define Y_DRIVER_TYPE TMC2209
#define Z_DRIVER_TYPE TMC2209
#define E0_DRIVER_TYPE TMC2209
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
Configuration_adv.h
Kod: Zaznacz cały
#define X_SLAVE_ADDRESS 0
#define Y_SLAVE_ADDRESS 1
#define Z_SLAVE_ADDRESS 2
#define E0_SLAVE_ADDRESS 3
#define X_HARDWARE_SERIAL MSerial1
#define Y_HARDWARE_SERIAL MSerial1
#define Z_HARDWARE_SERIAL MSerial1
#define E0_HARDWARE_SERIAL MSerial1
#define MONITOR_DRIVER_STATUS
Działa