Estoy trabajando en la interfaz con un bus SPI que muestra algún... mal comportamiento.
El autobús sale de una caja de control en una batería de juguete. La caja de control es el maestro SPI y se puede encender y apagar con un botón incorporado. Un circuito separado que lee de los pads de batería es el único esclavo en el bus.
Lo que estoy haciendo es esto: básicamente he agregado un maestro al bus, en forma de microcontrolador. Sé que este no es un uso estándar de SPI, pero es para un proyecto de pasatiempo, así que no me importa. Los dos maestros nunca operan simultáneamente, por lo que no hay conflictos. Principalmente hago cumplir esto: si la caja de control está encendida, no conecto el cable USB al microcontrolador (estoy usando un Pro Micro). Además, si el microcontrolador detecta que la caja de control está encendida, el uC finalizará las comunicaciones SPI.
Aquí está mi circuito. Todavía necesito almacenar en búfer la línea MISO, pero aparte de eso, es lo que estoy usando.
Hay tres estados en los que puede estar este circuito:
Mi problema ocurre durante el estado 1. Aunque la caja de control está apagada, las líneas SPI que salen muestran 3.3V . Por alguna razón, la caja de control alimenta MOSI, CLK y CS a pesar de que su VCC muestra 0V. Cuando ni la caja de control ni el Pro Micro están encendidos, el búfer no tiene alimentación y las salidas ven 3,3 V. De alguna manera esto está alimentando a la inversa el búfer, que a su vez alimenta el resto de mi circuito.
Estoy usando un búfer SN74AHC125 .
Antes de comenzar a usar el búfer, conecté las líneas SPI directamente a mi microcontrolador (ATMega 32U4). Tuve el mismo problema: las líneas SPI alimentaban mi Pro Micro a través de los diodos de protección inversa en los pines.
Entonces, ¿cómo puedo conducir estas líneas cuando todavía están encendidas mientras el resto de mi circuito está apagado?
Ok, he resuelto esto. Agregué buffers entre la caja de control y el controlador del pad de batería. Esto se suma a los búferes entre el microcontrolador y el controlador del pad de batería.
Entonces, la configuración del búfer en (una) de las líneas se vería así, con otras partes del circuito omitidas con fines de demostración.
Los pines no conectados en los búferes son los pines de habilitación de salida, que no conecté (nuevamente, con fines de demostración).
Este circuito resuelve el problema porque nunca hay alimentación en la salida de un búfer cuando el búfer no está alimentado. Por lo tanto, no se produce flujo inverso.
bruno ferreira
Chris Laplante
bruno ferreira
Chris Laplante
bruno ferreira
Chris Laplante
bruno ferreira
Russel McMahon
Russel McMahon
Russel McMahon
Oli Glaser
Chris Laplante
Chris Laplante