Skip to content

Los pines + del DM542 van a 3.3V, no a 5V: el driver no ve el cambio de DIR #20

Description

@mmggjj

Probando test_steppers_one con el motor en el banco, el motor giraba siempre hacia el mismo lado con + y con -. No es el sketch: la lógica de DIR es correcta.

Causa

Los pines PUL+, DIR+ y ENA+ del DM542 estaban conectados a 5 V, y el ESP32 es de 3,3 V.

Las entradas del DM542 son optoacopladores. Con los + a 5 V y el ESP32 poniendo la señal en alto, quedan 5 − 3,3 = 1,7 V sobre el opto. El LED cae ~1,2 V, así que siguen circulando ~2 mA: no llega a apagarse. El driver ve DIR permanentemente activado y no cambia nunca de sentido.

El STEP se libra porque son pulsos y el salto de corriente sí conmuta. DIR es un nivel estático, y ahí ese margen no da.

Arreglo

Pasar PUL+, DIR+ y ENA+ de 5 V a 3,3 V. Con eso el nivel alto del ESP32 deja 0 V sobre el opto y lo apaga de verdad; el bajo sigue dando corriente de sobra.

Cómo comprobarlo sin mover el motor

test_steppers_one tiene el comando d: alterna DIR con el driver deshabilitado y te dice qué medida corresponde a cada caso. Midiendo entre DIR+ y DIR-:

Lectura en ALTO Diagnóstico
~0 V Correcto, los + están a 3,3 V
~1,7 V Este fallo

Por qué importa más de lo que parece

Esto no es solo del banco. El firmware del robot usa los mismos pines y la misma lógica de DIR. Si el robot está cableado igual, los brazos solo subirán y nunca bajarán — y con el firmware completo corriendo eso se manifiesta como «la elevación no funciona», mucho más difícil de diagnosticar que con el sketch aislado.

Hay que comprobar cómo está cableado en el robot antes de flashear nada.

Aviso

A 3,3 V la corriente por el opto ronda los 8 mA, en el límite bajo de lo que pide el DM542. Es la solución estándar para controladores de 3,3 V y funciona, pero si tras el cambio el driver dejara de responder del todo, es que se ha quedado corto y haría falta un adaptador de nivel.

Criterio de aceptación

Con el comando d, lectura de ~0 V en estado alto. Y con + y - el motor gira en sentidos opuestos, en el banco y en el robot.

Documentado en docs/cadena_de_elevacion.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bloqueanteBloquea otros trabajoshardwareRequiere el robot o instrumentacionpuesta-en-marchaValidacion con el robot delante

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions