Si está preguntando acerca de este Arduino Ethernet Shield, entonces tiene un esquema muy pobre relacionado con el Reiniciar. IC1 (CAT811TTBI-CT3) es responsable de la generación de restablecimiento y restablecimiento del riel + 3V3, pero se suministra (consulte su pin VCC) desde el riel + 5V. + 3V3 es generado por el LDO (IC2) desde + 5V también. Es difícil decir qué está sucediendo exactamente, pero este esquema podría originar el problema.
¿Por qué funciona cuando se alimenta desde un puerto USB de PC? Puede ser que no sea muy explícito, pero cuando una placa Arduino habilitada con UART (consola) FTDI FT232R o similar se conecta a una PC a través de USB, una línea del FT232R se conecta a través de un condensador a la línea de reinicio del chip Atmega y, correspondientemente, a la entrada IC1 / MR del escudo.
Cuando conecta la placa a USB, primero se aplica la alimentación, luego se enumera el dispositivo USB, luego comienza a controlar sus salidas (incluido el responsable del restablecimiento a través de la línea correspondiente) y, gracias a eso, el LDO tiene retrasos. un tiempo necesario para comenzar antes de que llegue un impulso de restablecimiento a la entrada / MR de IC1.
Cuando conecta la placa a una fuente de alimentación externa, el chip FTDI no se enumera y no controla ninguna salida, por lo tanto, no hay pulso de restablecimiento (adicional) una vez que el LDO está listo, por lo tanto, debe presionar el botón de reinicio para agregue ese pulso en el tiempo aceptable ("IC-ready-to-reset") manualmente.
Una solución posible en hardware es la siguiente: conecte el pin 4 (VCC) de IC1 a + 3V3, coloque una resistencia de 10k en serie entre el botón de reinicio (TS42) y el pin 3 (/ MR) de IC1. O use un pin / puerto Atmega / board i / o gratuito para controlar RESET_W individualmente --- conecte el puerto a la línea RESET_W a través de una resistencia de 10k en serie.