Como usar monitor serial en un atmega328 que no esta en la placa de arduino?

Hola como están?!

Esta vez estoy necesitando ver ciertos procesos de un chip que tengo en una placa de fabricación propia, o sea que tengo un atmega328p-pu en una placa pcb que maneja un motor y algunos switchs para activar ese motor, tengo algunas fallas con un timer a la hora de eliminarlo y necesito ver los estados de esa condición, es posible con un Arduino UNO R3 o con un Arduino NANO conectarlo de alguna manera a un Atmega328 que no esta en su misma placa y poder usar el puerto serial para leer dichos eventos?

Gracias de antemano!

Ya que dices que necesitas utilizar el monitor serie para ver los datos que envía el otro micrcontrolador, entonces ese Arduino tendrá que utilizar SoftwareSerial (no se deben usar los pines 0 y 1 mientras se necesite la comunicación serial vía USB).

Adjunto el código (creado por mi) para utilizar un Arduino como un “pseudo” convertidor USB/TTL. Si no lo vas a subir a un Mega, no hay que cambiar nada.

// Useful as a "USB to UART TTL converter", BUT NOT FOR SKETCH UPLOADING (unless reset is not auto-triggered)

#include <SoftwareSerial.h> // On some boards (like the Arduino Mega), this library is not necessary. Use Serial1 instead

#define BAUD_RATE 9600 // Set the baud rate for the serial communication

SoftwareSerial virtualSerial(10, 11); // virtualSerial(RX, TX)

void setup() {
  Serial.begin(BAUD_RATE); // USB UART (pin 0 and 1)
  virtualSerial.begin(BAUD_RATE); // External UART
  // Serial1.begin(BAUD_RATE); // External UART only for boards like the Arduino Mega,

}

void loop() {
  if (Serial.available()) {
    virtualSerial.write(Serial.read());
    // Serial1.write(Serial.read());
  }

  if (virtualSerial.available()) {
    Serial.write(Serial.read());
  }

  /*if (Serial1.available()) {
    Serial.write(Serial1.read());
  }*/

}

Según el código, debes conectar pin 10 (Arduino) al pin 3 (del microcontrolador a leer); y pin 11 (Arduino) al pin 2 (del microcontrolador a leer); no olvides unir las tierras (cualquier GND Arduino al pin 8 o 22 del microcontrolador). Te dejo una imagen para que veas dónde están los pines 2, 3, 8 y 22 de un ATmega328P:

PD: tienes que saber a qué tasa de baudios se mueve el microcontrolador a leer; de lo contrario solo obtendrías “caracteres basura”.

Excelente!!!

El microchip externo esta programado por mi asi que podre a 9600 para leerlo, la velocidad del cristal es de 16 asi que en teoria deberia ser como si el microchip estaria montado sobre la misma placa arduino no?!

Una consulta mas, esto lo hago con el atmega328 (original) instalado en el arduino UNO o le tengo que sacar el microchip interno para leer un microchip externo? imagino que si sino tendria que cargar este codigo a el microchip externo pero por las dudas prefiero evacuar dudas!

Muchas gracias!

Sacar el microcontrolador externo para introducirlo en una placa de Arduino Uno, implicaría que también tengas que conectar todo el hardware utilizado.

Como te había dicho antes, solo basta hacer la conexión por tres pines.

Si es para reprogramar un microcontrolador externo, será mejor que hagas el intercambio; ya que dudo que mi programa funcione para subir código (pero para el resto no lo dudo).

Lucario448: Sacar el microcontrolador externo para introducirlo en una placa de Arduino Uno, implicaría que también tengas que conectar todo el hardware utilizado.

Como te había dicho antes, solo basta hacer la conexión por tres pines.

Si es para reprogramar un microcontrolador externo, será mejor que hagas el intercambio; ya que dudo que mi programa funcione para subir código (pero para el resto no lo dudo).

Claro, me referia exactamente al contrario, de quitar el interno, pero te entendi perfectamente!

En un rato lo voy a probar y te cuento que onda!

Funciono perfecto!

Acá dejo el video de lo que estoy haciendo, es un agitador para la fabricación de las placas electrónicas.

https://www.youtube.com/watch?v=DsZKEf90cgk

Próximamente ira con detalles, código fuente y fotos a la sección de proyectos.

Saludos y gracias!

La pantalla a implementar es I2C?

Hector_A: La pantalla a implementar es I2C?

Hola, como estas? No, este tiene 3 cables de datos, clk, cs y din, luego quedan dos mas que son GND y VCC para la alimentación.

Saludos!

ALgo no entiendo: es un proyecto propio?
Si lo es porque no montas todo en un UNO, sacas las conexiones del UNO a los pines del ATMEGA328 que previamente has retirado y puedes ver en el monitor serie todo el funcionamiento y los problemas del timer.

Bueno acabo de ver todo tu montaje en otro post (realmente muy bueno!!) y me encuentro que tienes todo el código y tal como pregunté en el post anterior porque consultas por monitorear todo de forma Supuestamente dificil cuando puedes hacerlo naturalmente desde los pines 0 y 1 usando sea un conversor Serie a USB o un MAX232 conectado a un puerto Serie de PC?

Y hablando del tema, noté que...

|500x281

NO HAY AGUJEROS PREDISPUESTOS PARA LOS PINES DEL PUERTO SERIAL.

Como sugerencia para futuros proyectos así, considera siempre dejar agujeros que conecten a los pines 1, 2 y 3 del microcontrolador (y opcionalmente, colocarles una cabecera de tres pines); esto facilita demasiado la depuración/reprogramación, con el simple hecho de no tener que quitar el microcontrolador para tales efectos (ni tampoco tener que recrear todo el hardware necesario para una depuración adecuada).

Pero no te culpes, si yo hubiera sido tú... tampoco se me hubiera venido a la mente la sugerencia que acabo de darte, ya a la hora de "materializar" el proyecto.

Oh, y olvidé mencionar también que deberías dejar algún punto/agujero/cabecera que haga más fácil una conexión a tierra.

surbyte: ALgo no entiendo: es un proyecto propio? Si lo es porque no montas todo en un UNO, sacas las conexiones del UNO a los pines del ATMEGA328 que previamente has retirado y puedes ver en el monitor serie todo el funcionamiento y los problemas del timer.

surbyte: Bueno acabo de ver todo tu montaje en otro post (realmente muy bueno!!) y me encuentro que tienes todo el código y tal como pregunté en el post anterior porque consultas por monitorear todo de forma Supuestamente dificil cuando puedes hacerlo naturalmente desde los pines 0 y 1 usando sea un conversor Serie a USB o un MAX232 conectado a un puerto Serie de PC?

Hola surbyte! como estas tanto tiempo?

No se a que te referís con difícil, era si existía un microchip de forma externa, tal vez sonó raro porque sinceramente no tenia idea si esto existía y mucho menos como se le decía. Por otro lado, pude monitorear sin problemas con como me explico el usuario Lucario488! Esta mas que claro que desperdiciar un Arduino UNO para mi proyecto era innecesario, es por eso que compre un Atmega328 y lo monte sobre una placa que diseñe y asi poder seguir usando mi Arduino UNO para futuros proyectos, el costo del Atmega en Argentina es de $55 pesos/3.6 dls y el del Arduino UNO R3 es de $300/25 dls. Porque no conecte todo al Arduino uno, ya lo habia hecho y funcionaba todo sin problemas, pase a la etapa de diseño y soldado de la placa principal y me encontre con este problema. A futuro cada diseño que haga voy a colocar 2 pines con terminales para poder monitorear con el puerto serial!

Saludos!

Lucario448: Oh, y olvidé mencionar también que deberías dejar algún punto/agujero/cabecera que haga más fácil una conexión a tierra.

Tal cual Lucario488! A mi no se me paso esto por la cabeza, imaginate que yo arranque con Arduino hace no mas de 3 meses y para este proyecto hice un montón de cosas y sinceramente esto de monitorear por puerto serial ni sabia que existía, soy autodidacta y todo lo que se lo aprendo de internet, es por eso que muchas cosas las van a ver así, pero siempre con la mejor intención!

Respecto a los pines, si totalmente de acuerdo, de ahora en mas voy a diseñar las placas con los pines 1, 2, 3 y GND accesibles para futuros testeos!

Gracias por los consejos y la mano!

Bueno nadie nació sabiendo. Yo antes de hacer algo miro muchos esquemas similares o como han hecho otros cosas similares. Nunca armé algo sin un ICSP y una salida Serie incluso con el max232 o la conexión directe a serie TTL, aunque nunca los use. Tu placa es grande así que hay lugar para montar todo. Pero el ICSP no puede faltar y en tu caso, un simple conector de 3 pines, GND TX y RX tampoco. Para la versión 2 ya lo mejorarás.

Buenos dias, muy buen foro, yo pienso que podriamos integrar los diagramas de hardware para poder realizar la comunicación en serial sin la placa UNO, ya que yo estoy intentando hacerlo con las indicaciones aqui puestas y en otras paginas por internet pero no logro que esto se comunique. Estoy haciendo la prueba en un protoboard y para poder interfacear uso un FDI que hace la conexión serial con la computadora es el ftd232rl y aun con esto no hay forma de hacer la comunicación, podrian por favor poner el circuito electrónico, de antemano gracias