fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

crash de PCF8574P (expansor de lineas) al controlar ULN2003

17 Respuestas
4 Usuarios
0 Reactions
5,567 Visitas
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

Estoy usando un PCF8574P Remote 8-bit I/O expander for I2C-bus para controlar el driver para dos motores paso a paso ULN2003, con el fin de ahorrarme 6 pines.

El caso es que cuando hice la prueba funcionó bien, pero al usarlo en el circuito final, donde he soldado los dos zócalos a una placa agujereada, y ver que no funcionaba nada, saqué el PCF8574P para probarlo en la protoboard y comprobé que estaba como colgado o roto, porque las 8 líneas estaban siempre activadas.

Pero resulta que tenía otro, y tras comprobar en la protoboard que éste sí funcionaba, pensé que el anterior estaría estropeado. Así que tras revisar las conexiones decidí colocarlo y probarlo, y entonces...... crash, le pasó lo mismo.

Entonces ahora ya no sé qué hacer, aparte de que compraré un par de PCF más. ¿realmente se han roto o habrá algún modo de reiniciarlos?. ¿Y cómo puede ser que se rompa así?, ¿cómo podría verificarlo?, ¿le habrá pasado a alguien esto antes?...... También compraré otro par de ULN2003 aprovechando que son baratos, porque igual pudiera ser que fuera eso lo que estuviera mal ¿no?

Con diodos, podría asegurarme totalmente de que no me volverá a pasar, ¿verdad?. ¿Debería colocar uno en cada línea?, ¿o bastaría con un Zener de 12v a la entrada del ULN2003?, ¿qué tipo de diodos debería colocar para las líneas entre los dos controladores?, ¿ 1N4148 ?

Responder
16 respuestas
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 19 años

Ahora mucho mejor 😀

El primer fallo que veo es en la dirección de pcf8574. ¿la X significa que están al aire? Estas entradas deben estar a un valor de tensión para asignarle la dirección.

Por lo demás volvería a hacer hincapié en las conexiones de alimentación ¿has comprobado con el polimetro que las tensiones son las adecuadas y que la masa esta en continuidad?

Por otro lado no veo las resistencias de pull-up del bus ¿las tienes colocadas en en master?

Responder
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

Pero es que en las pruebas en la protoboard sí que ha funcionado.

Las X al aire no tienen asignada una dirección de BUS por lo que según tengo entendido usa por defecto con la 0x70, y te puedo asegurar que funciona así. Creo que lo de asignarlas es para cuando se tiene más de uno.

Las conexiones y las tensiones las he comprobado y están bien, no hay cortos ni nada raro.

Lo de las resistencias pull-up pues la verdad es que no uso, porque en las pruebas con leds ha funcionado bien sin nada más que una resistencia para el propio led. Incluso creo recordar que hice la prueba con el ULN y también fueron bien, conectado directamente tal y como se ve en la imagen.

¿Pudiera ser que ahora son necesarias porque por algún motivo los PCF se hayan quedado cargados o se han quedao medio tontos?. Es que parece raro que se hayan roto, pero la cosa sucedió como te lo cuento. En la prueba de la protoboard apagaba y encendía bien el led en cualquiera de las líneas, y a partir de colocarlo en el zócalo de la placa, al volver a hacer las pruebas ya sólo se queda encendido siempre, y me ha pasado con los dos.

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 19 años

A las resistencias de pullup me refiero las de SDA y SCL.

Sobre lo de las direcciones, mejor asegurarse.

Responder
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

A las resistencias de pullup me refiero las de SDA y SCL.

Sobre lo de las direcciones, mejor asegurarse.

Ah, pues no sabía que tenía que poner resistencias pullup en el bus. De todos modos, aunque ese o el de las direcciones fueran el problema, no es motivo para que casque ¿no?.

Bueno, voy a ver si el lunes compro un par de ellas y lo pruebo de nuevo, aunque esta vez lo aislaré del ULN aprovechando que se puede desconectar, porque la conexión va por cables y jumpers. Si veo que va bien conectaré una de las líneas, pero sin conectar el motor, y a ver qué pasa. Aunque antes me gustaría protegerlo con diodos porque pudiera ser que sea el ULN lo que está mal.

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 19 años

Se me ocurre que puedes meter tensión directamente en en jumper para probar si el motor funciona. Aparte puedes colocar una resistencia de 1k en el jumper para saber si es ese el motivo.

PD: Vuelvo a insistir... Nada de terminales de entrada flotantes, cumplir con las especificaciones del bus y muy importante sobre todo cuando trabajas con cargas muy inductivas o con gran consumo, condensadores de desacoplo (por ejemplo 100nF) entre los terminales vcc y gnd de todos los integrados.

Responder
Página 2 / 4
Compartir: