Definitivamente, el comportamiento que obtienes no es normal.
Es posible que exista algún problema con el código, ya que para que se caliente de esa manera, es porque se está creando un corto circuito que eleva la corriente y por eso el calentamiento.
Ya que si estuvieras activando todas las entradas al mismo tiempo a 0, y si estas tienen el pull-upo interno activado, la corriente que circula por cada entrada es extremadamente pequeña:
I = 3.3/100K = 33uA!!!
Si activas las 8, entonces sería 33uA x 8 = 264uA!!!! Eso no calentaría para nada al MCP23S017, por lo que estoy casi seguro que de alguna manera estás generando un corto. Y esto puede ser porque en tu código estés configurando el puerto de entrada como salida en un periodo de tiempo pequeño y eso obviamente alestar conectado a GND, estarías generando un corto por un periodo de tiempo pequeño, pero si este se hace oscilatorio, entonces de ahí la razón del problema.
Sería bueno que publicaras tu código de prueba para echarle una mirada.
elreypic.
Hola
No se si he entendido bien, pero eso de conectar salidas a entradas del circuito dependiendo como esten configuradas ¿no te puede estar provocando un corto? A mi me suena que en el curro para el amigo que trabajo tiene algun montaje con este circuito integrado en algun que otro pcb y lo ha usado para conmutaciones rapidas desde un software USB asi como para circuitos con cargas (creo que ataca mediante otra etapa de mosfet) y ha funcionado correctamente sin ningun problema de esos, se mantiene frio y sin consumo exagerado. Es para un sistema de debug que se reconfigura según la placa que se conecta (yo lo suelo usar para reparar algun equipo de otras compañias que cascan y lo desarrollo para hacer un chequeo ahorrando tiempo en reparaciones), tiene otra version con una fpga que hace mas funciones, pero han funcionado correctamente y no tiene diodos ni nada por el estilo, alguna resistencia si, pero no se si es para eso o que (no he mirado el esquema para saber si estan en los pines de I/O)
Tambien tiene otras placas con un micro similar de infineon, según el porque le gusta más esta marca para proyectos mas serios, por algo de ESD, por si te puede servir de referencia. Pero yo creo, según lo poco que se y lo que he visto con este integrado, que igual van por ahi los tiros, algun problema de reconfiguracion de las entradas/salidas.
Saludos !
puede ser que se configuren en algún momento las e/s erróneamente.
Para ello asegurarse 'no sé si ya lo haces' es verificar siempre los valores escritos en el registro .
algo asi :Código: C
/*******************************************************************/ void Write_Byte_MCP23S17_L(int8 Addr , data){ /*******************************************************************/ spi_write_L(Addr,data); /* VERIFICA */ if (spi_read_L(Addr) != data){ /* reintentar x intentos y si falla resetear MCP23S17 configurar todo lo necesario*/ } }
lo triste es que si pruebas con todo eso , no identificaras el origen y no lo podras "meter en tu cabeza como aprendizaje"
no te pareceria bueno el ir probando de a uno estos cambios ??
1.- no lo toco,
2.- uso fuente externa
3.- y un condensador más pequeño
te quedara la duda siempre de que ? lo provoco y si esto mismo se te puede dar en una placa de algo importante, por eso me parece interesante que le tomes el tiempo .
cosas que yo haria ?
yo buscaria provocar esa falla.
es lo bueno de un micro: lo podes programar:
1 -- un pin para un pulsador, que si lo pulsas te prenda un led y de paso te ponga todo en entradas ( por ejemplo) .
NO meterle mano a el reset forzado.
con esta prueba te podras dar cuenta si el chip se colgo , o si sigue trabajando.
o bueno, un par de pienes para que un par de leds oscilen asi ves realmente si el chip se colgo ( leds quietos ) o si el chip sigue corriendo .
y de paso : el pulsador para mandar todo como entradas, ( si no se ha colgado )
2 ---en cualquier caso , veria de activar el watch dog, no puede ser que se cuelgue con el wach dog o lo que se use hoy dia activado.
3 --- si se cuelga de verdad y queda en ese estado , pues veria como sigo.
pero el tema es pescar eso , sino, ni cuenta te das y un dia lo repites con placas que sacas a al venta... y aunque se de eso cada 2 meses, basta 1 vez y chau.