TMC2209 problem uart. MKS robin nano
- arkomania.pl
- Postów w temacie: 7
- Posty: 832
- Rejestracja: 10 mar 2017, 13:08
- Lokalizacja: RADOM
- x 373
Re: TMC2209 problem uart. MKS robin nano
Można wpiąć w PA9 i PA10, wystarczy tylko to uwzględnić w pliku pins_MKS_ROBIN_NANO.h
Trochę ci się myli kiedy UART jest sprzętowy, a kiedy programowy.
Złącze PA9 i PA10 są końcówkami TX i RX jednego sprzętowego UART, ale
w przypadku mojej konfiguracji są portami skonfigurowanymi "programowo" SOFTWARE SERIAL PORT.
Zauważ, że:
PA9 stanowi zarówno TX jak i RX dla jednego kabla podłączonego do stepsticka,
podobnie jest z PA10 (TX/RX) sterującego drugim stepstickiem.
#define X_SERIAL_TX_PIN PA10
#define X_SERIAL_RX_PIN PA10
#define Y_SERIAL_TX_PIN PA9
#define Y_SERIAL_RX_PIN PA9
Trochę ci się myli kiedy UART jest sprzętowy, a kiedy programowy.
Złącze PA9 i PA10 są końcówkami TX i RX jednego sprzętowego UART, ale
w przypadku mojej konfiguracji są portami skonfigurowanymi "programowo" SOFTWARE SERIAL PORT.
Zauważ, że:
PA9 stanowi zarówno TX jak i RX dla jednego kabla podłączonego do stepsticka,
podobnie jest z PA10 (TX/RX) sterującego drugim stepstickiem.
#define X_SERIAL_TX_PIN PA10
#define X_SERIAL_RX_PIN PA10
#define Y_SERIAL_TX_PIN PA9
#define Y_SERIAL_RX_PIN PA9
Pozdrawiam Arek G. arkomania
Re: TMC2209 problem uart. MKS robin nano
a nie jest tak że wszystkie linie TX z 4 stepów podłączam np pod PA9 i wszystkie 4 linie RX podłączam pod PA10 tylko zworkami znajdującymi się pod stepami każdy z osobna stepstick adresuję ?
- JohnJames
- Postów w temacie: 14
- Posty: 112
- Rejestracja: 28 sie 2020, 20:56
- Lokalizacja: Warszawa
- Drukarka: Sapphire Pro
- x 15
Re: TMC2209 problem uart. MKS robin nano
Równie dobrze przekornie można stwierdzić, że tak
To zależy od wybranego rozwiązania.
Ja mam zrobione na sprzętowym serialu zgodnie z rysunkiem w dokumentacji TMC2209 - https://www.trinamic.com/fileadmin/asse ... t_V103.pdf, rysunek 4.1, lewy obrazek.
Kolega arkomania.pl ma, jak widzę, na programowym, w którym jeden pin procka służy do komunikacji z jednym stepstickiem.
Teraz już dokładnie nie pamiętam, ale jak szukałem informacji na ten temat - zostałem przytłoczony różnymi rozbieżnymi informacjami na temat sposobu realizacji komunikacji ze stepstickami. Nie znalazłem usystematyzowanego opisu, natomiast bardzo dużo różnych wykonań.
Sytuację komplikuje fakt, że ludzie mają generalnie różne płyty i wykonania stepsticków (różnie wyprowadzone TX/RX, różnie zezworowane podstawki), do których trzeba dostosować połączenia. Dlatego IMHO trzeba przede wszystkim rozumieć, co się robi w odniesieniu do sprzętu, który się posiada.
To zależy od wybranego rozwiązania.
Ja mam zrobione na sprzętowym serialu zgodnie z rysunkiem w dokumentacji TMC2209 - https://www.trinamic.com/fileadmin/asse ... t_V103.pdf, rysunek 4.1, lewy obrazek.
Kolega arkomania.pl ma, jak widzę, na programowym, w którym jeden pin procka służy do komunikacji z jednym stepstickiem.
Teraz już dokładnie nie pamiętam, ale jak szukałem informacji na ten temat - zostałem przytłoczony różnymi rozbieżnymi informacjami na temat sposobu realizacji komunikacji ze stepstickami. Nie znalazłem usystematyzowanego opisu, natomiast bardzo dużo różnych wykonań.
Sytuację komplikuje fakt, że ludzie mają generalnie różne płyty i wykonania stepsticków (różnie wyprowadzone TX/RX, różnie zezworowane podstawki), do których trzeba dostosować połączenia. Dlatego IMHO trzeba przede wszystkim rozumieć, co się robi w odniesieniu do sprzętu, który się posiada.
Sapphire Pro - coś tam dłubię
Re: TMC2209 problem uart. MKS robin nano
Ja chcę właśnie zrobić sprzętowy uart. Jeśli się da jak nie to programowy. Po prostu pobawię się dla satysfakcji i własnej nauki. Ale to kwestia rozwiązania sprzętowego. Problem który na tą chwilę mam to tak jak w swoim poście opisałem, dotyczy kompilacji marlina. Kompilator wywala mi błąd po włączeniu pewnych ustawień i nie do końca wiem dlaczego.
Konfiguracja dla 2209_standalone przeszła. Firmware się skompilował i działa w drukarce. Błędami wali przy włączeniu uart.
Konfiguracja dla 2209_standalone przeszła. Firmware się skompilował i działa w drukarce. Błędami wali przy włączeniu uart.
- JohnJames
- Postów w temacie: 14
- Posty: 112
- Rejestracja: 28 sie 2020, 20:56
- Lokalizacja: Warszawa
- Drukarka: Sapphire Pro
- x 15
Re: TMC2209 problem uart. MKS robin nano
Możesz zobaczyć, jak jest u mnie https://github.com/bkiziuk/Marlin/tree/bugfix-2.0.xmk77 pisze:Konfiguracja dla 2209_standalone przeszła. Firmware się skompilował i działa w drukarce. Błędami wali przy włączeniu uart.
Ostatnio kompilowane dwa dni temu, na wersji bugfix-2.0.x.
Sapphire Pro - coś tam dłubię
- azael
- Postów w temacie: 2
- Posty: 102
- Rejestracja: 19 sty 2021, 12:00
- Lokalizacja: Silesia
- Drukarka: Voron 2.4r2
- x 26
Re: TMC2209 problem uart. MKS robin nano
@mk7, w pliku ..\Marlin\src\pins\stm32f1\pins_MKS_ROBIN_NANO.h zakomentuj:
masz to już ustawione w conf.adv, sprawdź czy Ci kompilacja wywali się w tym samym miejscu.
Jeżeli masz niezakomentowane pozostałe definicje adresów "#define X2_SLAVE_ADDRESS"... itd. to je zakomentuj albo ustaw wartość na "-1"
Kod: Zaznacz cały
#define X_SLAVE_ADDRESS 0
#define Y_SLAVE_ADDRESS 1
#define Z_SLAVE_ADDRESS 2
#define E0_SLAVE_ADDRESS 3
Jeżeli masz niezakomentowane pozostałe definicje adresów "#define X2_SLAVE_ADDRESS"... itd. to je zakomentuj albo ustaw wartość na "-1"
Kod: Zaznacz cały
#define X2_SLAVE_ADDRESS -1
#define Y2_SLAVE_ADDRESS -1
#define Z2_SLAVE_ADDRESS -1
#define Z3_SLAVE_ADDRESS -1
#define Z4_SLAVE_ADDRESS -1
...
skoVoronek 2.4
Re: TMC2209 problem uart. MKS robin nano
Marlina mam dokładnie tą wersję https://github.com/le3tspeak/Marlin-2.0 ... Robin-Nano
Przywróciłem do stanu pierwotnego 3 pliki Configuration.h, Configuration_adv.h oraz pins_MKS_ROBIN_NANO.h aby nie było wątpliwości że zostały jakieś śmieci z wcześniejszego dłubania.
To zaczynam od nowa
W pliku Configuration.h
włączyłem
co odblokowało sekcję
Kompilator w tym miejscu wyrzuca coś takiego
W takim razie w pliku pins_MKS_ROBIN_NANO.h
włączam
i odblokowuję sekcję
Kolejny build i wywala już tylko komunikat o COOLSTEP
No to włączam w pliku Configuration.h
bo w Configuration_adv.h nie mam tej zmiennej ale jest taka sekcja, która się uaktywnia
Kolejny build i kompilator wywala to
Czyli po włączeniu COOLSTEP wracam do tego samego błędu co wcześniej pisałem ale bez włączenia tego COOLSTEP nie przechodzi build.
Podejrzewam że muszę wpisać odpowiednie parametry w tej sekcji od COOLSTEP tylko nie mam pojęcia co tam wpisać.
Przywróciłem do stanu pierwotnego 3 pliki Configuration.h, Configuration_adv.h oraz pins_MKS_ROBIN_NANO.h aby nie było wątpliwości że zostały jakieś śmieci z wcześniejszego dłubania.
To zaczynam od nowa
W pliku Configuration.h
włączyłem
Kod: Zaznacz cały
#define CUSTOM_STEPPER_DRIVERS
Kod: Zaznacz cały
#if ENABLED(CUSTOM_STEPPER_DRIVERS)
#define DRIVER_X TMC2209
#define DRIVER_Y TMC2209
#define DRIVER_Z TMC2209
#define DRIVER_E0 TMC2209
#define INVERT_Z
#define INVERT_E0
#endif
Kod: Zaznacz cały
Marlin\src\HAL\STM32F1\../../inc/SanityCheck.h:2294:4: error: #error "TMC2208 or TMC2209 on X requires X_HARDWARE_SERIAL or X_SERIAL_(RX|TX)_PIN."
#error "TMC2208 or TMC2209 on X requires X_HARDWARE_SERIAL or X_SERIAL_(RX|TX)_PIN."
Marlin\src\HAL\STM32F1\../../inc/SanityCheck.h:2334:6: error: #error "X COOLSTEP settings must be defined in Configuration_adv.h."
#error "X COOLSTEP settings must be defined in Configuration_adv.h."
Marlin\src\HAL\STM32F1\../../inc/SanityCheck.h:2340:6: error: #error "Y COOLSTEP settings must be defined in Configuration_adv.h."
#error "Y COOLSTEP settings must be defined in Configuration_adv.h."
Marlin\src\HAL\STM32F1\../../inc/SanityCheck.h:2346:6: error: #error "Z COOLSTEP settings must be defined in Configuration_adv.h."
#error "Z COOLSTEP settings must be defined in Configuration_adv.h."
Marlin\src\HAL\STM32F1\../../inc/SanityCheck.h:2358:6: error: #error "E0 COOLSTEP settings must be defined in Configuration_adv.h."
#error "E0 COOLSTEP settings must be defined in Configuration_adv.h."
włączam
Kod: Zaznacz cały
#define HARDWARE_SERIAL
Kod: Zaznacz cały
#if ENABLED(HARDWARE_SERIAL)
#define X_HARDWARE_SERIAL Serial1
#define Y_HARDWARE_SERIAL Serial1
#define Z_HARDWARE_SERIAL Serial1
#define E0_HARDWARE_SERIAL Serial1
#define X_SLAVE_ADDRESS 0
#define Y_SLAVE_ADDRESS 1
#define Z_SLAVE_ADDRESS 2
#define E0_SLAVE_ADDRESS 3
#define X_SERIAL_TX_PIN PA9
#define X_SERIAL_RX_PIN PA10
#define Y_SERIAL_TX_PIN PA9
#define Y_SERIAL_RX_PIN PA10
#define Z_SERIAL_TX_PIN PA9
#define Z_SERIAL_RX_PIN PA10
#define E0_SERIAL_TX_PIN PA9
#define E0_SERIAL_RX_PIN PA10
#endif
No to włączam w pliku Configuration.h
Kod: Zaznacz cały
#define COOLSTEP
Kod: Zaznacz cały
#if ENABLED(COOLSTEP)
#if AXIS_HAS_COOLSTEP(X)
#define X_COOLSTEP_SPEED_THRESHOLD 5
#define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0
#define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0
#define X_COOLSTEP_SEUP 0
#define X_COOLSTEP_SEDN 0
#define X_COOLSTEP_SEIMIN 0
#endif
#if AXIS_HAS_COOLSTEP(Y)
#define Y_COOLSTEP_SPEED_THRESHOLD 5
#define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0
#define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0
#define Y_COOLSTEP_SEUP 0
#define Y_COOLSTEP_SEDN 0
#define Y_COOLSTEP_SEIMIN 0
#endif
#if AXIS_HAS_COOLSTEP(Z)
#define Z_COOLSTEP_SPEED_THRESHOLD 5
#define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0
#define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0
#define Z_COOLSTEP_SEUP 0
#define Z_COOLSTEP_SEDN 0
#define Z_COOLSTEP_SEIMIN 0
#endif
#if AXIS_HAS_COOLSTEP(E0)
#define E0_COOLSTEP_SPEED_THRESHOLD 5
#define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0
#define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0
#define E0_COOLSTEP_SEUP 0
#define E0_COOLSTEP_SEDN 0
#define E0_COOLSTEP_SEIMIN 0
#endif
#endif
Kod: Zaznacz cały
In file included from buildroot/share/PlatformIO/scripts/common-dependencies.h:47:0:
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/core/drivers.h:153:40: error: missing binary operator before token "("
#define _OR_EAH(N,T) || AXIS_HAS_##T(E##N)
^
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/core/drivers.h:154:28: note: in expansion of macro '_OR_EAH'
#define E_AXIS_HAS(T) (0 _OR_EAH(0,T) _OR_EAH(1,T) _OR_EAH(2,T) _OR_EAH(3,T) _OR_EAH(4,T) _OR_EAH(5,T) _OR_EAH(6,T) _OR_EAH(7,T))
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/core/drivers.h:158:70: note: in expansion of macro 'E_AXIS_HAS'
|| AXIS_HAS_##T(Z3) || AXIS_HAS_##T(Z4) || E_AXIS_HAS(T) )
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/core/drivers.h:169:5: note: in expansion of macro 'ANY_AXIS_HAS'
#if ANY_AXIS_HAS(COOLSTEP)
CalledProcessError: Command 'arm-none-eabi-g++.exe -DTARGET_STM32F1 -D__MARLIN_FIRMWARE__ -DHAVE_SW_SERIAL -DMCU_STM32F103VE -DSS_TIMER=4 -w -dM -E -x c++ buildroot/share/PlatformIO/scripts/common-dependencies.h' returned non-zero exit status 1.:
File "C:\users\mk\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 175:
env.SConscript(item, exports="env")
File "C:\Users\MK\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 591:
return _SConscript(self.fs, *files, **subst_kw)
File "C:\Users\MK\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Script\SConscript.py", line 280:
File "D:\3D druk\Sapphire pro\Firmware\Marlin\Marlin-2.0.X-MKS-Robin-Nano-MKS-Robin-Nano\buildroot\share\PlatformIO\scripts\common-dependencies.py", line 280:
apply_features_config()
File "D:\3D druk\Sapphire pro\Firmware\Marlin\Marlin-2.0.X-MKS-Robin-Nano-MKS-Robin-Nano\buildroot\share\PlatformIO\scripts\common-dependencies.py", line 112:
if not env.MarlinFeatureIsEnabled(feature):
File "C:\Users\MK\.platformio\packages\tool-scons\scons-local-4.1.0\SCons\Util.py", line 658:
return self.method(*nargs, **kwargs)
File "D:\3D druk\Sapphire pro\Firmware\Marlin\Marlin-2.0.X-MKS-Robin-Nano-MKS-Robin-Nano\buildroot\share\PlatformIO\scripts\common-dependencies.py", line 256:
load_marlin_features()
File "D:\3D druk\Sapphire pro\Firmware\Marlin\Marlin-2.0.X-MKS-Robin-Nano-MKS-Robin-Nano\buildroot\share\PlatformIO\scripts\common-dependencies.py", line 244:
define_list = subprocess.check_output(cmd, shell=True).splitlines()
File "C:\Users\MK\.platformio\python3\lib\subprocess.py", line 411:
**kwargs).stdout
File "C:\Users\MK\.platformio\python3\lib\subprocess.py", line 512:
output=stdout, stderr=stderr)
Czyli po włączeniu COOLSTEP wracam do tego samego błędu co wcześniej pisałem ale bez włączenia tego COOLSTEP nie przechodzi build.
Podejrzewam że muszę wpisać odpowiednie parametry w tej sekcji od COOLSTEP tylko nie mam pojęcia co tam wpisać.
- azael
- Postów w temacie: 2
- Posty: 102
- Rejestracja: 19 sty 2021, 12:00
- Lokalizacja: Silesia
- Drukarka: Voron 2.4r2
- x 26
Re: TMC2209 problem uart. MKS robin nano
To, wg mnie, nie jest problem sekcji COOLSTEP, tylko składni kompilowanego kodu. W programowaniu jetem za krótki żeby wysznupać o co chodzi dokładnie.
Jak chcesz mogę Ci udostępnić moje konfigi z UART do 2209, tylko że one są "soft serial".
Jak chcesz mogę Ci udostępnić moje konfigi z UART do 2209, tylko że one są "soft serial".
skoVoronek 2.4