Go Down

Topic: Programar Atmega328 con USB to RS232 (Read 194 times) previous topic - next topic

luisvb24

Oct 12, 2017, 01:11 am Last Edit: Oct 13, 2017, 01:01 am by surbyte Reason: Cambio RS323 por RS232
Buenos días

Me pueden ayudar? Necesito programar un atmega328 con un conversor USB to rs232.
De tal forma como si estuviera ocupando un arduino UNO, (osea necesito que el atmega haga la funcion de un arduino uno)

Me podrían ayudar desde las conexiones como deben de ir? y si el codigo en el IDLE de arduino necesita algo en especial.

Muchas gracias por la ayuda!!!




Lucario448

Necesito programar un atmega328 con un conversor USB to rs232.
¿Está o no el microcontrolador en un Arduino Uno?

De no estarlo; no es tan sencillo como conectar cables y listo. Un Atmega328P sin placa Arduino necesita tener bootloader; y dependiendo de este último, un cristal oscilador con la velocidad correcta.

luisvb24

No, el atmega no esta en un arduino uno, es solo el integrado sobre una protoboard. Y necesito poder programar ese atmega  utilizando el conversor UBS a RS232 cuya imagen adjunte en el post.

podrías por favor explicarme un poco más, como le podría hacer??

surbyte

has dejado los pines correspondientes al ICP In Circuit Programming?

10, 11, 12, y 13

Lucario448

#4
Oct 12, 2017, 08:31 am Last Edit: Oct 12, 2017, 08:32 am by Lucario448
has dejado los pines correspondientes al ICP In Circuit Programming?

10, 11, 12, y 13
No, el atmega no esta en un arduino uno, es solo el integrado sobre una protoboard.
En ese caso no podemos hablar de pines según la IDE; el microcontrolador está en una protoboard y por ende hay que referirse a los pines en el chip.

ICSP es técnicamente el método de programación; que se pueda hacer por puerto serial es sólo un agregado llamado "bootloader". Sin este, no sería posible a como lo planeas.
Lo que surbyte dice que es del 10 al 13, en el chip sería del 16 al 19. No olvidemos las líneas de voltaje (pin 7 o 20 en el chip) y de tierra (pin 8 o 22 en el chip).


Si el microcontrolador carece del antes mencionado "bootloader", tendrás que grabárselo mediante ICSP al menos una vez. Si lo trae, posiblemente sea de 16 MHz; entonces también necesitará un oscilador de cristal de dicha frecuencia, entre los pines 9 y 10 del chip (junto con dos capacitores/condensadores de 22 picofaradios conectados a tierra).


Supongamos que ya lo tiene todo para programarse, entonces la conexión sería:

5V   ----> 7 o 20
TXD ----> 2
RXD ----> 3
GND ----> 8 o 22


El adaptador carece de DTR, por lo tanto tendrás que hacer el reset manualmente. Al no haber botón con esa función, lo que queda es hacer un puente temporal entre el pin 1 y tierra (8 o 22)

luisvb24

Listo!! ya queme el bootloader en el atmega328, y ya conecte como me mencionas

Resistencia de 1M a vcc junto con push boton a tierra  ---->  pin 1
TXD del modulo USB a RS232 ---->  2
RXD del modulo USB a RS232 ---->  3
Vcc  ---->   7 y 20
GND  ---->  8 y 22
Cristal de 16M lo comparten los pines  9 y 10 y de cada uno de estos sale un capacitor de 22pf a GND

pero aun así el IDE de arduino no me lo programa (cabe resaltar que ya instale el driver del modulo usb a rs232 por lo cual el IDLE de arduino ya me lo reconoce y lo selecciono)

Muchas gracias por tu anterior respuesta fue de mucha ayuda!!!!!

Lucario448

pero aun así el IDE de arduino no me lo programa
Si quemaste el bootloader de un Arduino Uno, pues Arduino Uno es lo que se debe seleccionar.

Ahora, al tener que hacer el reset manualmente debes proceder de la siguiente manera:
Dale al botón de subir. En la parte inferior de la interfaz de la IDE, apenas aparezca la palabra Subiendo, disparas el reset una vez.


El bootloader debe ser para oscilador de 16 MHz (existe uno para utilizar el oscilador interno de 8 MHz); de lo contrario el prescaler USART para la programación no coincidirá con los 57600 bps establecidos por el protocolo STK (desfase por oscilador incorrecto).

Go Up