USB a TTL (CH340G) y tal vez convertidor de nivel lógico a chips de programa

2

Ya que tengo un montón de Atmega328p-pu (5v), Attiny85 (1-5v), ESP8266 (3.3v) & Raspberry's (3.3v) ya era hora de conseguir:

  1. Un USB a TTL
  2. Convertidor de nivel lógico

Ahora, antes de comprar esas cosas, leí acerca de los convertidores de USB a TTL. Hay muchos de ellos. Algunos necesitan controladores especiales, otros destruyen chips si no son originales y otros cuestan mucho.

Encontré que en un CH340G , leí cosas buenas acerca de ese USB a TTL. La gente está contenta con el producto y por eso lo compré.

Como dije, lo necesito tanto para los chips Atmel como para el ESP8266 que es 3.3v . Funciona en el ESP8266 con un problema menor. Algunas fuentes dicen que necesita controladores para los sistemas operativos más antiguos u OSX. Estoy en win8.1 y funciona de manera aparente, incluso si intenté instalar & desinstalar los controladores especiales.

Primer problema:

No consigo que funcione con Atmega328-p pu. Solo obtengo "el dispositivo no funciona correctamente no reconocido" .No hay un puerto COM que aparezca en la lista de arduino ide. Como el dispositivo CH340G solo tiene TX RX 5v (also3.3v) & GND y NO DTR & RESET i gueess necesito poner el chip (Atmel) en algún tipo de modo de conexión & pullup / down algo. What?

Segundo problema:

Como he dicho, funciona con el ESP8266. Pero tuve un poco de sospecha después de varios errores de transmisión y la medición de TX & RX. De hecho, el voltaje fue de 3.65v y cayó justo después de un segundo a 3.58v. Ahora, la Hoja de datos de ESP8266 dice que el límite es de 3.6v y por eso probé mi convertidor de nivel lógico (Uno basado en el PCA9306 , uno en mosfets). Los dos no funcionan. Dispositivo no reconocido. ¿Está bien 3.65v si el máximo debería ser 3.6v? si no, ¿por qué no funcionan esos traductores de nivel lógico?

nota: para probar el convertidor de nivel lógico usé un AMS11117 3.3v regulator on el lado ESP8266 y ajuste el CH340G a 5v. Básicamente, si quieres 3v de lógica, puentea el pin de 3.3v, si quieres 5v, puentea el pin de 5v al PIN de VCC.

Información adicional:

En realidad, obtuve los convertidores de nivel lógico solo para control una tira led WS2812B Adresable (5v) de una frambuesa (3.3v ). Leí que los convertidores de nivel lógico de mosfet / transistor hechos por nosotros mismos no funcionan correctamente. También probé con algunos mosquetes BSS138 (uno de los primeros convertidores de nivel lógico de sparkfun), sin suerte. Y así conseguí los "caros". Uno está basado en el PCA9306. Acabo de darme cuenta de que el segundo también es solo una variedad de mosfets. Básicamente, el único convertidor de nivel lógico "bueno" es el PCA9306. no entiendo por qué no funciona con USB2TTL.

EDITAR relacionado con las preguntas del comentario.

Los chips 328p-pu tienen un optiboot .. el predeterminado (Arduino IDE). Y sí me gustaría programarlos en una placa de pruebas. Es por eso que me conseguí un usbtottl. Es frustrante quitar el chip cada vez que tienes que cargar algo nuevo.

Estoy usando 2 arduino UNO original para programar attiny's y atmega328p-pu .. pero como mencioné anteriormente, es mucho trabajo eliminar el chip cada 2 segundos.

Para programar el Attiny85 hice mi propio "escudo" con el condensador relativo. y conexiones a la placa UNO. También un simple parpadeo para ver si el cargador de arranque está programado correctamente la primera vez ... o si cambio la frecuencia. Pero usa diferentes pines ... no tx rx.

EDIT2

Segundo problema resuelto

  

Funciona en el ESP8266 con un problema menor.

     

Para probar el convertidor de nivel lógico, utilicé un AMS11117 3.3v   Regulador en el lado ESP8266 y ajuste el CH340G a 5v.

Agregué una fuente de alimentación externa adicional solo para el ESP8266. Siempre utilice el AMS11117 . pero esta vez alimentado por un cargador de teléfono normal de suministro de energía. Parece que cuando se programa, se necesita mucha energía. No hay más errores de transmisión. Así que supongo que este sobrevoltaje de 0.05 no tiene nada que ver. Y no debe dañar al mcu.

el problema principal sigue sin resolverse.

    
pregunta cocco

1 respuesta

2

Para su primer problema, es irrelevante que su ATMega328p esté o no conectado al convertidor de USB a TTL; Si aparece en el Administrador de dispositivos, la conexión de la computadora al convertidor está funcionando correctamente. Todos los dispositivos serie también deberían aparecer en el IDE de Arduino. Como no aparece en el IDE de Arduino, primero verifico el Administrador de dispositivos; si no está allí, entonces es muy probable que tenga un convertidor USB-a-TTL defectuoso. Esos tableros CH340G son muy baratos y, bueno, digamos que obtienes lo que pagas.

Nota: He visto al menos una versión de la placa que tiene un puente que le permite controlar el voltaje de E / S con 5 V o 3,3 V, lo que es muy útil. Si olvida el puente, termina no encendiendo el CH340G, lo que provocaría que Windows / Arduino no lo detecte. Aquí hay una foto de la placa CH340G en la que he visto el puente antes:

Ahora,unavezquehayasdetectadoeldispositivoenelAdministradordedispositivos,tambiéndeberíadetectarseenelIDEdeArduino;Sinoesasí,reinicieelIDEdeArduino.Unavezquesedetecte,deberíaspoderprogramartuATMega328pconlaplacaserieUSBconunaadvertenciamuyimportante:debestirardelalíneadereinicioaladerechacuandoprogrameselchipparareiniciarlomanualmenteenelcargadordearranque.EstosedebeaquesuplacanotienelasseñalesDTR/RTSqueArduinoUnoutilizaparareducirlalíneadereinicio.

Siesonofunciona,asegúresedequerealmentesabeloqueestáhaciendo,conrespectoalasconexionesdelaplacadepruebas.ElATMega328esunMCUbastantemalo;necesitauncristalexterno,condensadoresdedesacoplamientoyunpull-upenelpindereiniciosoloparahacerquefuncione(aunquetieneunosciladorde8MHzmáslentoeinexacto,perosinmodificarelcargadordearranque,nopodráusalo).

Segundoproblema:SupongoquesuconvertidordeUSBaseriefuncionaanivelesdeE/Sde5V;cuandoconduceunaseñalde5VaunaMCUde3.3VcomolaESP8266,losdiodosdeprotecciónseactivan,ylimitanlaseñalaaproximadamente3.6V(dependiendodelatensióndirectadelosdiodosdeprotección).Nuncadebeconducirdirectamenteseñalesde5Vaunapartede3.3V(inclusosidicequeestolerantea5V).CorreríalaseñaldeTXatravésdeunaresistenciade1kenelpinRXdelESP8266.Estoharáquesea"más fácil" para el diodo de protección cortar la señal. O bien, usted podría obtener un convertidor de USB a serie de 3.3V. Mantengo un montón de ambos tirados alrededor.

    
respondido por el Jay Carlson

Lea otras preguntas en las etiquetas