Pregunta:
Alimentación de un USB a serie desde USB
francisaugusto
2017-04-21 22:06:27 UTC
view on stackexchange narkive permalink

Estoy creando un PCB que es una modificación del Arduino en una placa de pruebas. Tengo la intención de comprar una conexión USB a serie de Adafruit para poder cargar mis bocetos en el atmega 328 que usaré.

Sin embargo, para reducir el consumo de energía (luego quiero hacer funcionar mi circuito usando algunas baterías AA), me gustaría apagar el USB a la conexión serial. Originalmente pensé en agregar un interruptor SPST para desconectarlo cuando no lo use, pero me pregunto si es posible alimentarlo desde el USB (cada vez que conecto algo) en lugar de tener que conectar su encabezado VCC a la potencia de 5v del circuito.

¿Es posible hacer eso? ¿O hay alguna otra forma de lograr esto en la que no estoy pensando?

ACTUALIZACIÓN: Para mayor claridad, explicaré mis opciones de diseño: quiero este circuito para alimentar algunas bombas peristálticas que funcionan con 12V. Por lo tanto, proporciono 12V para las bombas y uso un regulador para bajar el voltaje del circuito. No veo que esto sea un gran problema para el consumo de energía porque el circuito estará en baja potencia el 98% del tiempo, solo despertando un minuto por hora. A veces, funcionará con baterías, razón por la cual quiero eliminar el USB-to-Serial. Sin embargo, cuando esté conectado a un adaptador de corriente, quiero que el USB esté disponible.

Todo lo mejor,

Francis

¿Por qué no hacerlo de manera que pueda conectar el usb a serie, solo cuando lo necesite? Agregue algunos encabezados femeninos a la ruptura y algunos encabezados masculinos a su tablero. PD: si quieres una buena duración de la batería, usar el regulador 7805 no es lo mejor.
@CurtJ.Sampson: Gracias. ¿Realmente necesito el DTR? En el enlace de la placa de pruebas anterior, no lo están usando.
@Gerben: ¡En realidad, es una muy buena idea! Sencillo y agradable. Mi única preocupación es que la placa se vuelva un poco "más alta" de lo que debería ser, y será más difícil en caso de que le haga una carcasa personalizada. ¡Pero definitivamente vale la pena considerarlo! En cuanto al 7805, tiene razón, y lo consideré, pero el circuito funcionará en modo LowPower la mayor parte del tiempo, así que supongo que no hará esa diferencia.
El 7805 tiene una corriente de reposo de alrededor de 5 mA. Así que solo eso drenará un AA en unos 20 días. En cuanto a los encabezados. También hay encabezados en ángulo recto. Para que pueda enchufar el módulo desde el lateral.
@francisaugusto: Solo necesita DTR si desea que la PC reinicie automáticamente el Arduino al cargar bocetos. Si no le importa tener que presionar el botón de reinicio manualmente cuando hace esto, puede dejar de DTR.
Ésta es una buena pregunta específica sobre cómo hacer algo en particular. Sin embargo, usted menciona que su objetivo general es reducir el consumo de energía y, en un [comentario a continuación] (https://arduino.stackexchange.com/questions/37366/37381#comment74941_37369), que está suministrando energía de 12 V a el lado Arduino del sistema. Esto cambia mucho las cosas, y en lugar de tratar de solucionarlo aquí, le sugiero que haga otra pregunta, dando más detalles sobre todo el sistema (incluido _todo_ conectado a él, y haga la pregunta general sobre cómo puede reducir su consumo de energía.
Tres respuestas:
Enric Blanco
2017-04-22 02:40:35 UTC
view on stackexchange narkive permalink

Es posible que esté pensando demasiado en esto. Como señala Gerben en los comentarios, es posible que desee considerar conectar la placa de conexión USB a serie solo cuando sea necesario, en lugar de convertirla en una parte permanente de su prototipo.

Lo hago yo mismo de dos maneras , dependiendo de lo que necesite.

Opción 1:

Cuando preveo mucha depuración a través del Monitor serial, uso un encabezado de pin permanente para poder adjuntar y desacoplar la ruptura tablero fácilmente.

En este caso, utilizo un cabezal de clavija en ángulo recto para mantener un perfil bajo. Como en este Arduino Pro Mini:

90-deg pin header

Opción 2:

Cuando solo necesito subir el boceto a Arduino y sé que no usaré la placa de conexión a partir de ese momento, no sueldo el encabezado del pin en su lugar.

En su lugar, modifiqué otra placa de ruptura usando pines pogo (sondas de prueba de resorte):

USB to Serial board with pogo pins

Este La placa modificada es lo que utilizo para cargar el código en Arduino sin ningún encabezado de pin. Algo como esto (tomé la foto solo con fines ilustrativos):

Code upload via pogo pins

¡Gracias Enric! Son muy buenas ideas. Creo que haré algo en ese sentido, pero sigo pensando que tal vez usar un botón para encender y apagar el usb puede ser una mejor alternativa. Eso, o ejecutar el chip USB, bueno, usando energía USB.
Jot
2017-04-21 23:34:28 UTC
view on stackexchange narkive permalink

Eso no es fácil de hacer. Puede probar diodos y mosfets como interruptores, pero de una forma u otra, probablemente habrá alguna corriente de fuga. El 6N137 requiere energía para la señal de recepción.
Otros optoacopladores comunes pueden tener una corriente de fuga en el rango nA para la salida del transistor. Eso podría ser posible. Conecte los GND. El RX y TX a través de optoacopladores. DTR para RESET con 100nF como de costumbre. Tal vez no necesite inversores adicionales cuando las salidas de transistor se utilizan como seguidores de emisores.

¿Podría realizar su proyecto con el ATmega328P sin el módulo usb-to-serial? El Arduino Pro Mini tampoco tiene un usb a serial.
Ahora que menciono el Arduino Pro Mini: en lugar de hacer un circuito compatible con Arduino con un ATmega328P, también puedes comprar un Arduino Pro Mini 8MHz y quitar el regulador de voltaje y el led de potencia. Entonces tienes lo mismo.

Ese tutorial de Arduino de tablero tiene + 5V conectados a AREF. Por favor, no hagas eso. Mantenga AREF abierto o conecte un capacitor de 100nF para reducir algo de ruido para lectura analógica.

En el modo de suspensión más profunda, el ATmega328P puede funcionar durante más de un año con tres baterías AA. El temporizador del WatchDog se puede utilizar para despertar.
El voltaje de las tres pilas AA está conectado directamente al VCC del ATmega328P, sin regulador de voltaje.

Un muy buen tutorial sobre ahorro de energía es esto: Nick Gammon sobre el ahorro de energía

¡Gracias @jot! Respondiendo a sus preguntas: Sí, necesito que el USB a serie esté conectado, ya que a veces cambiaré los bocetos y, cuando esté conectado a la alimentación, quiero poder transferir datos de los sensores a una RaspPi conectada . Cuando esté en batería, quiero que se desconecte, y por eso pregunto. Como hay algo de voltaje en el cable USB, me gustaría poder usarlo en lugar del circuito. Mi proyecto usará 12V (baterías 8AA), por eso necesito el regulador. Daré energía a otras cosas conectadas que requieran 12V (antes del regulador de voltaje, por supuesto).
En cuanto al AREF, haré una lectura muy sencilla y rápida. Aparte del ruido, ¿será un problema conectarle los 5V?
¡Deberías haber mencionado lo de 12 V en tu publicación principal! Definitivamente desea evitar el uso del regulador a bordo si le preocupa funcionar durante mucho tiempo con las baterías. Eso está desperdiciando mucha más energía de la que haría un chip USB / Serial alimentado pero inactivo.
francisaugusto Cuando se selecciona la referencia de voltaje interno con AREF conectado 5V, causará un atajo interno. Está mal, no lo hagas. @CurtJ.Sampson Tiene razón, alimentar un chip ATmega con 12V no es de baja potencia, y hace que toda esta pregunta y todas las respuestas sean triviales.
Eche un vistazo a este: https://www.pololu.com/product/2843 Tiene una corriente de reposo de 200µA. No digo que sea una buena solución, porque no conocemos todo el circuito y su función, porque todo ha cambiado ahora que se usa 12V.
@CurtJ.Sampson y Jot: Actualicé la pregunta con una descripción mejor. Como explico allí, supongo que debido a que ejecutaré el circuito en modo de baja potencia el 98% del tiempo, el regulador de voltaje no será un gran problema.
cjs
2017-04-22 04:35:35 UTC
view on stackexchange narkive permalink

Usar fuentes de alimentación independientes al mismo tiempo para diferentes partes de su sistema es una mala idea; nunca querrá dos fuentes de alimentación separadas que puedan empujar la corriente entre sí. El uso de fuentes de alimentación de + 5V independientes para diferentes chips, pero compartir un terreno común en el dispositivo y conectar solo líneas de datos, también es problemático; que yo sepa, no es trivial hacerlo de forma segura. A menos que sepa realmente lo que está haciendo, el camino a seguir es el aislamiento total entre los componentes alimentados por separado.

Las dos partes del sistema de las que estamos hablando aquí, el convertidor USB-Serie y el resto del sistema, intercambian datos digitales solamente, y eso en solo tres puntos, todos los cuales son unidireccionales: TX serial, RX serial y DTR. (DTR, cuando la PC lo baja, reinicia el Arduino). Por lo tanto, si podemos aislar estos enlaces para que no intercambien corriente cuando se comunican, podemos alimentar por separado los dispositivos a cada lado de esta barrera de aislamiento.

Este es en realidad un problema común en cosas como las fuentes de alimentación (donde desea que los datos del lado de alto voltaje se envíen al lado de bajo voltaje, pero no quiero el riesgo de que alguien que toque el lado de bajo voltaje pueda electrocutarse) y tableros de control del motor (donde los motores a menudo usan una fuente de alimentación separada lógica del controlador para reducir el ruido que pasa a la lógica del controlador). Una solución común es utilizar optoaisladores (también llamados optoacopladores). Por lo general, estos usan un LED y un sensor que lo mira desde un espacio; cuando el LED se enciende por un lado, el otro lado lo ve y genera una corriente.

El 6N137 (como se usa en esta respuesta) o un chip similar debería funcionar para esto: 10 MHz es suficiente ancho de banda para ejecutar un enlace en serie de 115,200 baudios. Cada optoacoplador sería alimentado por el lado receptor (Arduino para su RX y DTR, USB-serial para TX de Arduino) y en el otro lado conectaría los datos al pin V F + y tierra al pin V F . De acuerdo con la nota 1 en la página 4, necesitará tapones en las entradas de la fuente de alimentación, y también tendrá que agregar inversores si usa este optoaislador en particular, ya que invierte la señal; un 74HC04 le dará seis de ellos. Si desea ahorrar un dólar, no podría molestarse en conectar la línea DTR y simplemente restablecer el Arduino manualmente cuando desee cargar un programa, si eso no es demasiado inconveniente.

Advertencia al consumidor aquí: I ' En realidad, no he construido este circuito (aunque me gustaría intentarlo algún día), por lo que podría haber algo que me esté perdiendo aquí. (Con suerte, alguien más experto que yo hablará si ese es el caso).

Si va a pasar una cantidad significativa de tiempo conectado a la alimentación USB y todo su sistema puede funcionar con menos de 500 mA (el límite del suministro USB de muchas PC), es posible que desee considerar alimentar todo el sistema desde USB mientras está conectado. Esto se puede hacer de una manera similar a cómo la placa Arduino Uno desconecta la alimentación USB cuando recibe alimentación en Vin : cámbielo con un comparador y un MOSFET.

¡Muchas gracias! Lo tendré en cuenta. Parece ser que la mejor opción hasta ahora es simplemente poner un botón SPST en el circuito para encender y apagar la placa. Pero tuve curiosidad: ¿cómo obtengo energía de USB usando el adaptador que planeo usar?


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...