Pages: [1]   Go Down
Author Topic: ¿Se puede quemar Sketch con pto serial sin bootloader en atmega8?  (Read 1727 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un fraternal saludo a toda la comunidad....

Ensamblé una board Arduino Serial Monocara (http://arduino.cc/es/Main/ArduinoBoardSerialSingleSided3) ya que en mi país no se consigue una ni para remedio. Por allí leí en algún momento que era posible grabar el .hex en el Atmega8 sin la necesidad del bootloader a través del pto serial (db9) para efectos de aprovechar la totalidad de la memoria y sin el cable icsp.

¿Es esto posible?

Aun no he hecho la prueba por que me da miedo averiar el micro y en mi país son difíciles de conseguir y por ende costosos.

¡¡¡Mil gracias a todos!!!
« Last Edit: January 30, 2012, 10:32:33 am by jaiben » Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No se puede.

tienes que programarlo por ICSP por fuerza, lo de programarlo por serie es precisamente lo que hace el bootloader.

podrías programarlo de la manera que tu quieres usando otro arduino como programador ICSP.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Como te dice Srdongato , necesitas programar primero el bootloader por icsp , es decir necesitas un programador o otro Arduino

Tienes programadores muy sencillos y economicos que puedes incluso construirte pero has de programar sus micros
o sea que te quedas con el mismo problema
Busca a alguien en tu entorno que te pueda hacer la primera grabacion , es la solucion mas sencilla

Hay micros como el 32U4 que traen grabado de fabrica un bootloader , no se si se podra subirle un programa para utilizarles de grabadores , miralo pop google

Un saludo
Logged

COM22
Offline Offline
God Member
*****
Karma: 6
Posts: 702
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si no dispones de uno puedes hacerlo mediante el puerto paralelo del ordenador, yo no lo he probado pero esta en la pagina de arduino como posible alternativa económica.

http://arduino.cc/es/Hacking/ParallelProgrammer

Un saludo!
Logged


Gran Canaria
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola

Por lo que entiendo, lo que tu quieres es utilizar el Arduino IDE para hacer los programas y luego subirlos al microprocesador directamente. Nada de utilizar un bootloader.

Tienes que forzosamente contruirte un programador. El programador puede conectarse al ordenador por el puerto paralelo (LPT) o por el puerto serial (COM).

Si quieres hacerte un programador que se conecta al puerto paralelo coloca en Google "stk200 schematic" y selecciona ver solamente las imágenes. Este modelo de programador es de los mas sencillos, y es el que yo he utilizado para subir mis archivos *.hex al ATmega168. En mi caso he utilizado un 74LS245 que era lo que tenía a mano.

Estas direcciones también te pueden ser de utilidad:

http://www.lancos.com/prog.html#avrisp
http://elecrom.wordpress.com/2007/10/15/make-your-own-ultra-simple-universal-avr-programmer/

El programador basado solamente en resistencias no es de mi gusto. No me parece una buena idea conectarle un periférico al puerto paralelo, sin tener un circuito buffer de por medio. Yo no lo he utilizado.

En el Arduino IDE la opción de 'programador - puerto paralelo' no se corresponde con este modelo (stk200) de programador por puerto paralelo. No recuerdo el nombre del archivo que debes de modificar, para que puedas programar el microprocesador directamente desde Arduino IDE. El programador por LPT que viene configurado por defecto es el que te indican en una de las respuestas anteriores.

Me parece que el modelo de Arduino que haz construído es algo antiguo, porque hablabas de utilizar el puerto serial y no el puerto USB. En la siguiente dirección explican como construir un programador por puerto serial:

http://electronics-diy.com/avr_programmer.php

Como puedes ver utilizan PonyProg como aplicación para subir el archivo hex al microprocesador. De hecho eso fue lo primero que yo hice. Programé en Arduino IDE y subí el archivo binario al microprocesador utilizando PonyProg.

Saludos
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mil gracias a todos por sus aportes me pondré ya mismo a probar todas las opciones!!!! y les contare lueguito
Logged

Argentina
Online Online
Full Member
***
Karma: 0
Posts: 186
Sé feliz
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Podés tambié armar un programador utilizando el modo BitBang del chip FTDI. La forma más fácil es con otro Arduino board, pero también hay placas que vienen con el FTDI soldado (creo que las tiene Sparkfun, entre otros). Acá hay un tutorial (desconozco si está actualizado):

http://www.geocities.jp/arduino_diecimila/bootloader/bitbang_w_ide_en.html

Digo esto porque la mayoría de las PCs hoy ya no traen puerto paralelo, y menos serie.

Para grabar un AVR hay 2 métodos:

1. Con bootloader, como todos sabemos. Hay 2 tipos de bootloaders: los que coloca el usuario, y los que vienen, en algunos micros, de fábrica. Éste último tipo no siempre se adapta al hardware que uno tiene. Por ejemplo: El ATMega32U4 viene con un bootloader para utlizar el FLIP, que es un soft gratuito de Atmel, pero ya viene configurado con una freq de cristal específica y con los fusibles de tal forma que no siempre funciona en las placas que uno se arma.

2. Con ISP (In System Programming), que es la forma por defecto de programar un micro AVR cuando no se tiene bootloader. De hecho, por el ISP se puede programar al bootloader en sí. Para esto se necesita un programador. Éste puede ser serie (como el antiguo kit STK500), paralelo, como el STK200 (si mal no recuerdo) o como otros programadores caseros, o USB, como el Atmel Dragon o FTDI en modo bit banging (con el soft adecuado, claro). También se puede utilizar un Arduino estándar en modo Programador, para lo que hay que bajarle el ejemplo de "Programmer" con el IDE a dicha placa, y luego conectar todo como indica el tutorial (está en algún lado en el web de Arduino). Yo probé esto último con algún que otro clon, y la verdad sólo me funcionó con los Arduino originales (si mal no recuerdo con el UNO). Los pines para el ISP estándar en la mayoría de los AVR son los del bus SPI (que las siglas se parezcan no quiere decir nada). Aunque a algunos micros se los puede programar por el DebugWire en el pin de reset.

Hay una última forma de programar al micro que es con ISP de alta tensión, para cuando se escribieron los fusibles y el ISP común no funciona. Esto generalmente se hace con un kit de Atmel.

¡Saludos!
Julián
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mil gracias Mariobac, te cuento que seguí tu consejo de construir el avr-programmer y sí, dio resultado con el ponyprog 2000.

Gracias a ello logre grabar satisfactoriamente un sketch de prueba, lo malito es que creo que algo debe estar fallando por que solo me permitió grabar el micro tan solo una sola vez y ademas, solo me permitió grabarlo por la opción "Write device" y no por la que dice: "Write Program Memory device (Flash)" lo que me parece un poco extraño ya que no concuerda con las instrucciones de los manuales que he leído. A pesar de todo, probé el funcionamiento del sketch en mi arduino serial monocara y funcionó correctamente con las instrucciones dadas.

Cuando quise reprogramar el atmega8 por el ponyprog me aparece el error -24 como si no tuviera nada conectado. Entonces mis nuevas preguntas son:

- ¿estos micros se bloquean una vez son grabados o puede ser problema del grabador?
- ¿esta bien grabarlo por la opción "Write device" y no por "Write Program Memory device (Flash)" ?
- ó ¿puede ser por eso que ahora no me lo reconoce?

Voy a revisar el avr haber si es problema de este. De todas maneras quedo infinitamente agradecido y apenas afine estos detallitos haré mi pequeño aporte a la comunidad como retribución a la ayuda recibida. (es lo mínimo que puedo hacer)
Logged

Argentina
Online Online
Full Member
***
Karma: 0
Posts: 186
Sé feliz
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Jaiben, aunque no uso el PonyProg desde hace mucho, te comento algunos posibles errores de grabación que podrían impedir que un AVR pueda luego ser grabado de nuevo:

1. El programador reescribe los fusibles de oscilador. Por ejemplo: Si tu circuito no tenía cristal/oscilador externo, al principio no habría problema porque el AVR viene configurado de fábrica para usar el oscilador interno a baja frecuencia. Pero eso se configura en los fusibles justamente a través del programador. Si el programador cambió estos seteos (había una ventana de fusibles en el PonyProg, si mal no recuerdo), es posible que tu AVR no pueda ser reprogramado con tu hardware actual. La solución en ese caso sería intentar determinar qué oscilador quedó configurado y soldarle un cristal.

2. Más grave suele ser que el programador escriba el fusible que deshabilita la programación In-system. Esta es una de las razones por las que yo no recomiendo el PonyProg. El AVRStudio da un warning con un cartel en pantalla si detecta que se va a escribir uno de estos fusibles más críticos.

3. Similar al punto 2, en muchos AVRs es posible reconfigurar al pin de Reset como un pin de I/O más. Eso se usa en diseños que necesitan todos los pines posibles. Pero esa opción hace que el programador no pueda resetear al micro, por lo que suele utilizarse en producción, y no cuando uno tiene que reprogramarlo.

Si te pasó alguna de las últimas 2 opciones, y no tenés un kit o un programador que pueda usar el modo programación de voltaje alto (para el caso 3) o no podés agregarle oscilador externo, o determinar cuál necesitás, entonces lo más apropiado es poner un Mega nuevo y ser cuidadoso con la configuración de fusibles

Espero que sirva.
Saludos!
Julián
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Juliandasilva.... gracias pero te cuento que el problema radica en alguna conexión nada mas. pasados como dos horitas de haber expuesto mis inquietudes descrubrí el problema y estoy en la tarea de solucionarlo. De todas maneras tendré muy en cuenta las observaciones que me haces en cuanto al uso del pony y el tema de los fusibles.

Logre grabarle varios sketch. Aun no logro que la arduino me grave pero si me los ejecuta perfectamente según la simulación de proteus.

a penas solucione los problemillas haré un recuento de todo para que quien tenga estos mismos logre solución fácil.....

a todos un abrazo desde este este rinconcito del mundo
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas venturas a todos

Les cuento que me ha ido regio con el avr-programmer aun que por culpa de no leer detenidamente el tema de los fuses he bloqueado un micro pero bueno .... ni modos ahora me tengo que poner a construir un hv-programmer para avr y poder recuperar el micro... (eso es otro tema)

lo que me tiene en ascuas es esto de los fuses, Mariobac, si ves este mensajito apiadate jejeje que sos el duro de esto... el cuento es que para estar seguro de qué fuses me programaba el ide arduino me di a la tarea de programar el bootloader con el ide el resultado esta en la imaen que le sdejo abajo.

leyendo el datasheet me dice que el uso del Sut1 y Sut0 y otros depende mucho del cristal instalado en el circuito... pero alli es donde me vienen las dudas:

¿Cuando se refiere al cristal es el cristal con el que va a trabajar definitivamente o con el que se va a programar???
  • mi avr-programmer tiene un cristal de 4Mhz y mi placa arduino tiene uno de 16 mhz que es con el que trabajará
¿Puedo grabar el micro con el setting de fuses con el que me lo gravo el arduino con cristal de 16Mhz (ver imagen adjunta) a pesar de que mi avr tiene uno de 4 Mhz sin que se me bloquee??


mil gracias y ojala que me puedan ayudar !!!!



* config fuses atmega8 - ponyprog2k - leidos.bmp (1993.41 KB, 1079x630 - viewed 20 times.)
Logged

Gran Canaria
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con el que va a trabajar. Mira estos sitios sobre bits de configuración (FUSES). Yo he utilizado el fuse calculator del que hablan en el sitio ladyada.net.

http://www.ladyada.net/learn/avr/fuses.html
http://elecrom.wordpress.com/2007/10/15/configuring-avr-fuse-bits-for-clock-selection/

ATMEL Fuse Calculator: http://www.engbedded.com/fusecalc/

Aquí hablan sobre tu duda SUT_CKSEL: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=70464&start=0

Para saber que combinación de bits programar, tienes que leer las páginas del manual del ATmega8 sobre el tema y ver que pasa en el fuse calculator.

En tu caso utilizas un cristal externo de alta frecuencia y ponle el start-up time más prolongado.

Logged

Gran Canaria
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lee este blog:

Setting fuse-bits on Atmel Atmega8 AVR: http://blog.louic.nl/?p=161

Creo que te podría servir de algo.
Logged

Pages: [1]   Go Up
Jump to: