Buscador
YoReparo.com La Web 

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

Como programar micro Atmel...

comentario del autor Sab May 27, 2006 3:44 pm
   
Hola gente linda...

He aqui como siempre con mis locuras...

He encontrado un microcontrolador Atmel AT89C51 y quisiera saber que circuitos y programas necesito para poder programarlo... Y si saben del lenguaje que debo usar...

Lo unico que tengo es el datasheet... Me meti en la pagina de Atmel y no encuentro nada...

De ya que les agradezco la ayuda...

Saludos...

IlNapolitano...

Napolitano

Reputación

sin valorar Sab May 27, 2006 6:15 pm
   
aca tenes ejemplos de programacion y otras cosas , si tu ingles es bueno tenes bastante para leer , espero te sirva
http://www.atmel.com/dyn/products/product_card.asp?part_id=1930

corrientecontinua
Moderador
Reputación

sin valorar Dom May 28, 2006 8:47 am
   
Si te fijas en el manual, te daras cuenta que ahi especifica que el at89c51 es: "compatible with the industry standard MCs-51 instruction set and pinout ", o lo que es lo mismo es un clon de los microcontroladores intel, si no me equivo debe ser un clon del microcontrolador de Intel 8051 (segun confirma este link:http://www.iguanalabs.com/8951pin.htm), de hecho son todos tan compatibles que cuando estudie el 8031 de intel me guie totalmente en el manual de atmel de microcontroladores (Set de instrucciones, arquitectura, pinout, conexiones ... etc), si te interesa el manual lo obtuve totalmente gratis de la pagina de atmel ( es el MiCROCONTROLLER Databook ) lo mandaron sin cargo hasta a mi casa y es muy util en mis epocas de estudiante me ahorro mucho dinero y tiempo.

Respecto al software para programarlo y realizar simulaciones, la verdad no me acuerdo cual use para simularlo y realizar el programa, para programarlo puedes usar algun programador comercial o realizar el tuyo propio si tienes tiempo y quieres experimentar un poco, la informacion sobre como programarlo esta en el mismo manual, es relativamente facil:

1.- Pones la direccion de memoria que deseas grabar en el bus de direciones.

2.- Pones el dato que vas a grabar en el bus de datos.

3.- pones la combinacion se señals que indican que vas a grabar (la info esta en el manual)

4.- aplicas el famosisimo Vpp de 12 V y listo.

5.- Incremetas la drieccion de memoria y repites todo hasta que termines.

Como lo ves el mecanismo de grabacion es el mismo que el de escritura de una RAM (salvo por lo del Vpp), con unos cuantos circuitos y un programa que saque los datos del PC por el paralelo y ya tienes tu programador listo.

Todo lo anterior te lo explica claramente el manual en lsa seccion: Programming the flash y Programing Algorithm.



Te dejo algunos links que puede serte utiles:

Pagina oficial de la familia MCS-51:

http://www.intel.com/design/mcs51/

Pagina de descargas de la familia MCS-51:

http://www.intel.com/design/mcs51/docs_mcs51.htm#SoftwareSupport

Descripcion del AT89c51:
http://www.iguanalabs.com/8951pin.htm

Un posible programador comercial:
http://www.iguanalabs.com/2051prog.htm

Pagina con software y diagramas de programadores diversos, software de programacion todo para diversas marcas y modelo (todo al parecer gratis):

http://www.batronix.com/electronic/circuits/index.shtml

De la pagina anterio aqui esta el esquematico del programadora Micros atmel de 40 pines como el tuyo:

http://www.batronix.com/electronic/circuits/mc-programmer-2-layouts.shtml

De aqui descarga el software requerido para ensamblar, debuguear y programar:

http://www.batronix.com/electronic/downloads/assembler.shtml

Espero que sea de ayuda.

Saludos y suerte.

pikotoro

Reputación

sin valorar Dom May 28, 2006 9:06 am
   
Se me olvidaba comenarte, en el mismo manual hay diagramas basicos, de tiempos y tablas de verdad para realizar la programacion, si ya lo tienes revisalo.

Si tienes prisa y el proyecto te lo permite, recuerda que puedes usar un programa externo colocado en una memoria externa lo haces funcionar similar a un sistema basado en un CPU (sistema minimo) salvo que en este caso no necesitara memoria RAM (aunque si so deseas tambien puedes aumentarla de este modo), con ello te olvidas del programador del 89c51 y solo buscas volcar tu programa en una eprom, eeprom o flash que es mas facil, aunque eso si el circuito se complica algo porque le puerto cero funciona primero como bus de direciones (la parte baja) y luego como bus de datos, por lo que hay que usar algo de logica digital para poder usarlo, eso si esta superdocumentado este modo de operacion, el problema es que la disposicion de los pines de los circuitos utilizados (en especial del latch recomendado) no ayudan en nada a la hora de hacer el PCB.

Saludos

pikotoro

Reputación

sin valorar Lun May 29, 2006 3:12 pm
   
que los microcontroladores de atmel no son los mismos de intel? el el mismo fabricante segun tengo entendido tambien se que los mas faciles de programar son los de microchip luego siguen los motorola y luego los atmel. ademas que en internet encuentras programadores para armar y todo lo que puedas ocupar de los microchip de la familia 16f8xx

morphy

Reputación

comentario del autor Mar May 30, 2006 12:50 pm
   
Oh... Gracias por toda la informacion...

Lo que me gustaria ver PikoToro... Es lo que comentabas de la Memoria externa...

La programacion de una memory externa me seria mas comodo, puesto que programando para el LPT me defiendo bastante... Ademas he de tener una memoria de 4K que la saque del mismo lugar que encontre el micro (un monitor ^_^)...

Si me podeis pasar algo de info, joya...

Les agradezco...

Il Napolitanus

Napolitano

Reputación

sin valorar Mie May 31, 2006 9:58 am
   
Claro que si, como tu sabes el micro ese (atc89c51) tiene 4 Kbytes de memoria de programa interna, pero al tener un bus de direcciones 16 bits, le permite poder direccionar hasta 64 Kbytes.

Ahora fijate ne la figura que te pongo, nota como el puerto P0 es usado tanto de salida (para la parte baja de direcciones ) como para entrada (lectura de la memoria de programa), por tal razon se usa un latch o registro que pueda poner en tercer estado sus entradas (alta impedancia) la cosa funciona asi :

Supongamos que se va a leer la intruccion el al direcion 1278H, sucede lo siguiente:

1.- El micro saca por el puerto P0 la pate baja de la direciion a leer ( 78H), en este punto recuerda que tanto el latch/registro como la memoria tienen sus entradas/salidas en alta inpedancia.
2.- Se da la señal ALE, que esta conectada directamente al Latch/ registro, esta la usas para cargar la parte baja de la direcion al chip, por lo dependiendo del chip la usarias para hacer load y chip select, si usa el latch 74ls373 es mucho mas facil pues la puenteas directamente al pata LE, si lo sacaste de un equipo seguro que este esta tambien por ahi. Hasta aqui la memoria ya tiene la parte baja de la direccion.
3.- El micro saca por P2 la parte alta de la direccion a leer ( 12h), al estar conectada directamente a la memoria (A8....AXX) la memoria esta lista para entregar el contenido de la direcion 1278H.

4.- Por ultimo da la señal PSEN que se usa para el OE de la memo, asi el micro lee la instruccion.


Como sabras hasta ahora tienes 3 modalidades de operacion, para eligir la que quieres se usa la patita EA (External Access) del micro de acuerdo a lo siguiente.

1.- Solo memoria Interna: para este modo conectas la pata EA a 1 (5V) y el micro operara solo con su memoria interna.

2.- Memoria interna + Externa ( hasta 60Kb externa): para este modo conectas la patita EA a 1 (5V) y le conectas la memoria externa como esta en la figura, en esta forma el micro leera internamente el programa de la direciion 0000H hasta la 0FFFH, para leer mas alla de estas direciones usara la memoria externa usando el proceso que te explique arriba. En pocas palabras con este modo tienes que programar en el micro los primeros 4k y en la memo el resto, lo que lo hace algo complicado.

3.- Solo memoria externa (hasta 64 Kb): para esto solamente conecta la pata EA a tierra (como esta en la figura) y el micro accesara desde la direccion 0000h hasta la FFFFh de la memoria externa, asi solo tienes que programar la memoria.

Espero que te sirva, si puedes conseguir el manual, toda la info esta en el capitulo 2 del manual de Atmel de microcontroladores, prueba buscar informacion tabien basada en el 8031 y 8051 que son mas comunes.

Saludos y suerte.

diagrama.jpg  (11,77 KB)

diagrama.jpg

Diagrama a bloques para conectar memoria externa al AT89c51 y otros de la misma familia.

pikotoro

Reputación

comentario del autor Vie Jun 09, 2006 5:33 pm
   
Bien... Pero antes de meterme con lo que seria el circuito me gustaria saber de la programacion... Alguien tiene algo de info de eso...

IL NAPOLITANO

Napolitano

Reputación

sin valorar Lun Jun 12, 2006 12:39 pm
   
Hola amigo!.

Aca te adjunto unos archivos que te serviran para grabar ese micro.Un archivo que se llama simple_prog.zip contiene un ejecutable que es el sift para programar el micro.Debes arrancarlo por linea de comandos.Si tenes el XP o 2000 hacelo con CMD en inicio,ejecutar.

EL otro archivo easy_89C2051 tiene ejercicios escritos en C muy sencillos como para que empieces.Igual te serviran para tu micro ya que son compatibles.


Un saludo!


Kilopondio.




Napolitano escribió:Hola gente linda...

He aqui como siempre con mis locuras...

He encontrado un microcontrolador Atmel AT89C51 y quisiera saber que circuitos y programas necesito para poder programarlo... Y si saben del lenguaje que debo usar...

Lo unico que tengo es el datasheet... Me meti en la pagina de Atmel y no encuentro nada...

De ya que les agradezco la ayuda...

Saludos...

IlNapolitano...

Easy_89c2051.zip  (265,48 kb) -

simple_prog.zip  (1,81 kb) -

kilopondio

Reputación

comentario del autor Jue Jun 15, 2006 2:42 pm
   
Bien... Por lo que he visto es pura programacion en C... O me equivoco...?

Napolitano

Reputación

sin valorar Mie Dic 13, 2006 7:09 pm
   
Que interesante, me gustaria saber un poco mas sobre la ALU de este micro.

alejo8214

Reputación



Hacer una pregunta

Reglamento / P+F

Foros

Miembros / Expertos