10-03-2023, 02:28 PM
Buenas.
Estoy intentando poner unos drivers TMC 2209 en una ramps 1.4 y no consigo que estes se comuniquen, alguien me puede ayudar?
Estoy usando los pines 59 y 64 de la ramps.
Marlin me da el siguiente error: Testing X connection... Error: All LOW
10-03-2023, 04:52 PM
(Última modificación: 10-03-2023, 04:53 PM por Simemart.)
Hola, aportas poca información para poder darte una respuesta apropiada: ¿Cuantos drivers estás conectando? ¿Cómo estás realizando la conexión, compartida o independiente? ¿Con qué configuración en Marlin?
Por defecto, el archivo de pines de la RAMPS viene configurado para una conexión independiente de cada driver y en concreto, asigna los pines 59 y 64 al eje Y.
11-03-2023, 11:09 AM
(Última modificación: 11-03-2023, 11:13 AM por Otero.)
(10-03-2023, 04:52 PM)Simemart escribió: Hola, aportas poca información para poder darte una respuesta apropiada: ¿Cuantos drivers estás conectando? ¿Cómo estás realizando la conexión, compartida o independiente? ¿Con qué configuración en Marlin?
Por defecto, el archivo de pines de la RAMPS viene configurado para una conexión independiente de cada driver y en concreto, asigna los pines 59 y 64 al eje Y.
Buenos dias estoy probando con un solo driver en X y e cambiado los pines en pins_RAMPS.h y puse la siguiente configuración
Código: #if HAS_TMC_UART
/**
* TMC2208/TMC2209 stepper drivers
*
* Hardware serial communication ports.
* If undefined software serial is used according to the pins below
*
* Serial2 -- AUX-4 Pin 18 (D16 TX2) and AUX-4 Pin 17 (D17 RX2)
* Serial1 -- Pins D18 and D19 are used for Z-MIN and Z-MAX
*/
//#define X_HARDWARE_SERIAL Serial1
//#define X2_HARDWARE_SERIAL Serial1
//#define Y_HARDWARE_SERIAL Serial1
//#define Y2_HARDWARE_SERIAL Serial1
//#define Z_HARDWARE_SERIAL Serial1
//#define Z2_HARDWARE_SERIAL Serial1
//#define E0_HARDWARE_SERIAL Serial1
//#define E1_HARDWARE_SERIAL Serial1
//#define E2_HARDWARE_SERIAL Serial1
//#define E3_HARDWARE_SERIAL Serial1
//#define E4_HARDWARE_SERIAL Serial1
#ifndef X_SERIAL_TX_PIN
#define X_SERIAL_TX_PIN 63
#endif
#ifndef X_SERIAL_RX_PIN
#define X_SERIAL_RX_PIN 59
#endif
#ifndef X2_SERIAL_TX_PIN
#define X2_SERIAL_TX_PIN -1
#endif
#ifndef X2_SERIAL_RX_PIN
#define X2_SERIAL_RX_PIN -1
#endif
#ifndef Y_SERIAL_TX_PIN
#define Y_SERIAL_TX_PIN -1
#endif
#ifndef Y_SERIAL_RX_PIN
#define Y_SERIAL_RX_PIN 64
#endif
#ifndef Y2_SERIAL_TX_PIN
#define Y2_SERIAL_TX_PIN -1
#endif
#ifndef Y2_SERIAL_RX_PIN
#define Y2_SERIAL_RX_PIN -1
#endif
(Estaba probando en los pins 63 y 59, perdon)
En configuration.h tengo la siguiente configuración:
Código: #define X_DRIVER_TYPE TMC2209
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
Y en configuración avanzada no e tocado nada
Tengo los cables conectados en el tx y rx que sale en la siguiente imagen:
![[Imagen: 2209-V3-0.jpg]](https://i.ibb.co/WBv8Z5y/2209-V3-0.jpg)
Espero que puedas ayudarme, gracias de antemano
Si no has cambiado nada en el archivo Configuration_adv.h, se utiliza la dirección 0 (ADDRESS 0) para comunicar con el driver.
¿Cómo tienes configurados los puentes de la placa que se encuentran debajo del driver? Para configurar la dirección 0, no debes tener ninguno colocado.
(11-03-2023, 12:27 PM)Simemart escribió: Si no has cambiado nada en el archivo Configuration_adv.h, se utiliza la dirección 0 (ADDRESS 0) para comunicar con el driver.
¿Cómo tienes configurados los puentes de la placa que se encuentran debajo del driver? Para configurar la dirección 0, no debes tener ninguno colocado. Efectivamente no tengo ninguno puesto
Vale, creo que ya he descubierto cual es el problema: para la línea de RX, hay que utilizar un pin con capacidad de manejar interrupciones y tu has hecho una asignación que no cumple con esa condición.
Para solucionarlo, solo tienes que intercambiar los pines que has utilizado, asignando el 63 al parámetro X_SERIAL_RX_PIN y el 59 al parámetro X_SERIAL_TX_PIN: creo que con eso debería haber ya comunicación.
(11-03-2023, 08:36 PM)Simemart escribió: Vale, creo que ya he descubierto cual es el problema: para la línea de RX, hay que utilizar un pin con capacidad de manejar interrupciones y tu has hecho una asignación que no cumple con esa condición.
Para solucionarlo, solo tienes que intercambiar los pines que has utilizado, asignando el 63 al parámetro X_SERIAL_RX_PIN y el 59 al parámetro X_SERIAL_TX_PIN: creo que con eso debería haber ya comunicación.
Nada, acabo de probar asi y sigue igual, no se que puede estar pasando
Para poder aportar algo más, necesito saber que modelo de TMC2209 estás utilizando y cómo lo tienes conectado (el cableado, no los pines).
(13-03-2023, 06:29 PM)Simemart escribió: Para poder aportar algo más, necesito saber que modelo de TMC2209 estás utilizando y cómo lo tienes conectado (el cableado, no los pines).
Ok te mando unas fotos del driver
[/url][url=https://ibb.co/cND0s06]
En el chip pone lo siguiente:
TMC2209-LA
2204 A1320
GERMANY
Te mando tambien el enlaze de aliexpres (donde los compre) por si te sirve de algo.
Enlaze
14-03-2023, 10:38 PM
(Última modificación: 14-03-2023, 10:40 PM por Simemart.)
Siento decirte que esos TMC2209 no son de Fysect, que es el esquema que has utilizado y no tienen su misma circuitería interna, por lo que los pines en que has conectado no son los TX y RX de aquel.
Es bastante común confundir el driver con el módulo tipo Pololu: el driver propiamente dicho es el pequeño integrado con la serigrafía TMC2209-LA; el módulo es la plaquita con los componentes que el integrador (Fysect, Biqu, MKS, etc.) ha querido poner y que varía de unos a otros.
En el caso de los Fysect, incluyen la resistencia que debe colocarse en la linea TX, de forma que el módulo ya tiene las conexiones TX y RX incluídas y serigrafiadas, pero la mayoría de los demás integradores no lo hacen así, debiendo conectar un solo cable al pin PDN, que debemos desdoblar nosotros del lado de la MCU en RX y TX, este último con la resistencia de 1K.
En ese enlace que es puesto pueden verse cuales son los pines de ese módulo concreto y estás conectando en USART y CLK, de ahí que no te funcione: tienes que conectar solo en USART (o en PDN que supongo será el mismo) y desdoblar el cable en dos, conectando uno de ellos al pin que configures para RX en la placa y otro al pin de TX mediante una resistencia de 1K.
14-03-2023, 11:25 PM
(Última modificación: 14-03-2023, 11:28 PM por Otero.)
(14-03-2023, 10:38 PM)Simemart escribió: Siento decirte que esos TMC2209 no son de Fysect, que es el esquema que has utilizado y no tienen su misma circuitería interna, por lo que los pines en que has conectado no son los TX y RX de aquel.
Es bastante común confundir el driver con el módulo tipo Pololu: el driver propiamente dicho es el pequeño integrado con la serigrafía TMC2209-LA; el módulo es la plaquita con los componentes que el integrador (Fysect, Biqu, MKS, etc.) ha querido poner y que varía de unos a otros.
En el caso de los Fysect, incluyen la resistencia que debe colocarse en la linea TX, de forma que el módulo ya tiene las conexiones TX y RX incluídas y serigrafiadas, pero la mayoría de los demás integradores no lo hacen así, debiendo conectar un solo cable al pin PDN, que debemos desdoblar nosotros del lado de la MCU en RX y TX, este último con la resistencia de 1K.
En ese enlace que es puesto pueden verse cuales son los pines de ese módulo concreto y estás conectando en USART y CLK, de ahí que no te funcione: tienes que conectar solo en USART (o en PDN que supongo será el mismo) y desdoblar el cable en dos, conectando uno de ellos al pin que configures para RX en la placa y otro al pin de TX mediante una resistencia de 1K. Ok muchas gracias, no tenia ni idea de eso, acabo de pedir unas resistencias de 1k, en cuanto me lleguen te cuento.
Porque otra forma de conectarlos sin esa resistencia no hay no?
No, esa resistencia es la que permite utilizar un solo cable para transmitir y recibir.
hola, a todos,
estoy tuneando una hephestos 2 y quiero colocar los tmc2209 v3.0 en una placa ramps 1.4,en modo standalone,como tengo que colocar los jumpers en la placa ramps, para la maxima resolución 1/64 microstepping.
tengo que modificar algo en los pines MS1 y MS2 del driver?
o solo tengo que colocar los jumpers en la ramps
gracias
saludos
Hola, según la hoja de datos del TMC2209, para tener 64 micropasos en modo STEP/DIR (Standalone), hay que colocar el puente MS2 (el central) y dejar los otros dos vacíos.
De todas formas, indicarte que con eso no verás ningún cambio aparente respecto a configurar 16 micropasos, ni en el funcionamiento de la impresora ni en los resultados de impresión, simplemente harás trabajar más al ATMega2560.
|