Go Down

Topic: programar atmega8 sin bootloader (Read 2649 times) previous topic - next topic

curro92

Mar 19, 2012, 07:46 am Last Edit: Mar 19, 2012, 08:16 am by curro92 Reason: 1
Hola,
Deseo hacer un programador para el atmega8 ( similar al del attiny85 de Txapuzas) usando ArduinoISP. Es un chip muy barato, y útil para proyectos sencillos. Como tiene memoria limitada a 8K, no deseo usarlo con bootloader.
Quiero programarlo a 8MHz con reloj interno. Pero no sé cómo definir una nueva board en boards.txt. Existe "Arduino NG or older w/ ATmega8" pero lleva bootloader.
He andado buscando, pero cuando empiezan a decir cómo hay que retocar los fuses... salgo corriendo.

Creo que tendría que ponerle algo así
Code: [Select]

......................................
atmega8.name=ATmega8 at 8MHz arduinoISP
atmega8.upload.using=arduino:arduinoisp
atmega8.build.f_cpu=8000000L
......................................

Pero no sé qué hacer con los fuses.
¿Conocéis una board que me sirva para esta configuración?
Gracias

pgmartin

Yo usé esto y me funcionó:


uatmega8.name=Unlocked  ATmega8
uatmega8.upload.protocol=stk500
uatmega8.upload.maximum_size=8192
uatmega8.upload.speed=19200
uatmega8.bootloader.low_fuses=0xdf
uatmega8.bootloader.high_fuses=0xca
uatmega8.bootloader.path=atmega8
uatmega8.bootloader.file=ATmegaBOOT.hex
uatmega8.bootloader.unlock_bits=0x3F
uatmega8.bootloader.lock_bits=0x3F
uatmega8.build.mcu=atmega8
uatmega8.build.f_cpu=8000000L
uatmega8.build.core=arduino


Para más info podés ver este hilo donde me dieron la solución:http://arduino.cc/forum/index.php/topic,62405.0.html

curro92

Muchas gracias, pgmartin
Haré la prueba.
Creo que es uno de los micros más baratos para montar un Arduino (más barato que el attiny85, y con muchas más entradas y salidas): en Ebay se ofrecen 5 unidades por 5€ y 10 unidades por 8,34€, y puede ser apropiado para pequeños proyectos (programas que ocupen menos de 8K), como por ejemplo, un cuentakilómetros con sensor hall y display LC que estoy haciendo.

curro92

Hola, pgmartin
he hecho alguna comprobación de ese board, y hay algo que no me encaja.
En esta página para el cálculo de fuses http://www.engbedded.com/fusecalc, si uno inserta los parámetros te calculan los fuses: Pero también funciona al revés: si pones el id del micro y los fuses, te muestra los parámetros correspondientes. Y en  esa board en concreto (high_fuses=0xCA, low_fuses=0xDF), uno de los parámteros que sale es "Ext. Crystal/Resonator High Frec..." No parece ser la configuración de reloj interno a 8MHz.
Seguiré mirando.

pgmartin

#4
Mar 22, 2012, 09:30 pm Last Edit: Mar 22, 2012, 09:35 pm by pgmartin Reason: 1
Es probable, ya que yo finalmente siempre lo usé con un cristal externo. Acordate que sin cristal vas a tener que ajustar las funciones de tiempos (como millis, delay y otras).
Creo que el dato importante para vos es esta parte:

uatmega8.bootloader.unlock_bits=0x3F
uatmega8.bootloader.lock_bits=0x3F

Con la que lo dejás libre de bootloader.
Espero te sirva.

dieguitofernandez

No entiendo mucho de este tipo de seteos internos del Atmega8, pero aquí encontré de casualidad un post de alguien que lo hace andar con su clock interno. Espero te sea útil.
http://www.spikenzielabs.com/blog/?p=434

Saludos.

Go Up