uControl
Septiembre 09, 2010, 02:48:16 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 2 »   Ir Abajo
  Imprimir  
Autor Tema: Programador USBasp para Atmel  (Leído 4214 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« : Septiembre 20, 2009, 11:22:39 »

Hola ha todos... en un tiempo libre que he tenido y con el deseo de aprenden todo sobre los micro-controladores de Atmel, y buscando en un poco encontré este magnifico programador de uso libre. He diseñado la pcb del programador realizando le algunas mejoras, funciona bajo windows y Linux, lo mejor de todo es que esta soportador por el Winavr. con un poco de esfuerzo en el diseño del socket Zip, este puede usarse para cualquier tipo de DIP, este aun esta bajo revisión. Espero que les sea de mucha ayuda como a mi.




Esta basado por USB Virtual, utilizando un Atmega8 o 48:

http://www.obdev.at/products/vusb/index.html

Firmware Usbasp:

http://www.fischl.de/usbasp/

Firmware Socket-Zif:

http://www.mediafire.com/?jmiwtzer5tq

Diseño Eagle

Programador:

http://www.mediafire.com/?nweyzgzjziq

Soket Zif:

http://www.mediafire.com/?4umzlnyi2ih

Documentación

http://www.mediafire.com/?eekumv0miwt

Interfaces de programación

AVR8 Burn O Mat:

http://www.mediafire.com/?uimqyh42tzw

SignaPro:

http://www.mediafire.com/?idyynzk2lmi
« Última modificación: Junio 04, 2010, 03:59:08 por trunksx64 » En línea

Trunksx64
Moyano Jonathan
PIC12F
**
Desconectado Desconectado

Mensajes: 208


Con muchos proyectos y poca $


« Respuesta #1 : Octubre 07, 2009, 03:09:52 »

Yo estoy en proceso de diseño y fabricación de ese programador....en cuanto tenga algo listo lo voy a postear  bang
En línea
MiCrOBiT
PIC10F
*
Desconectado Desconectado

Mensajes: 21


« Respuesta #2 : Octubre 08, 2009, 06:58:45 »

que bien amigo eso del zif esperemos mas resultados....el link del software Khazama AVR Programmer no esta funcionando...quien sabe porq estara caido hace un tiempo entre y descargue ese soft...
En línea
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #3 : Marzo 26, 2010, 03:03:50 »

Luego de algun tiempo..... claro esta.... he probado las series del atmega, 8,16,32,128... y han funciando perfecto.... he realido algunos cambios en la PCB agregando los diodos zener para proteccion de los datos del conector USB, los cuales son recomendados en el uso del driver USB...

Los links Funcionan bien, debe ser algun tipo de problema de la pagina,,, no se...

Por ultimo... aunque importante hay que tener encuenta la configuracion de los fuses ya que algunos amigos han programdo el atmega 8 sin estos y han bloquedo el micro solo pudiendose programa de nuevo por el metodo paralelo... quien sabe que configuracion le han cargado...

estos son los fuses:

# TARGET=atmega8    HFUSE=0xc9  LFUSE=0xef
# TARGET=atmega48   HFUSE=0xdd  LFUSE=0xff
« Última modificación: Mayo 28, 2010, 07:32:28 por trunksx64 » En línea

Trunksx64
jam0_0
PIC10F
*
Desconectado Desconectado

Mensajes: 4


« Respuesta #4 : Mayo 28, 2010, 04:00:48 »

Hola Trunks, primeramente quisiera agradecerte por el trabajo que te has dado en realizar tu diseño del zócalo zif para el usbasp, te comento que lo he armado pero hay algunos problemas:

-El grabador lo reconoce sin problemas.
-He notado que no usas cristal para darle señal de clock al micro a grabar, pero he visto que se puede programar de esa forma sin problemas o usas un cristal en un proto y le pones al micro a grabar?
-Revisando tu diseño del zócalo zif especialmente para el atmega8 y 16, con el atmega 8 hay un problema, como se coloca invertido en el zocalo zif (según tu esquemático) con los pines 20 y 22 del atmega8 que son AVCC y GND, los cuales tienen comunicación con los pines 7 y 8 respectivamente, entonces en tu zócalo zif están conectados a MOSI y SCK respectivamente, con lo que ocurre un error y el programa no lo reconoce, igual ocurre con el atmega16, no se si lo has probado con el zócalo ZIF y si no has tenido problemas porfa me podrías indicar si algo que he hecho está mal? porque por ejemplo los pines TX y RX no los he llevado al zócalo ZIF

Saludos y gracias nuevamente
En línea
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #5 : Mayo 28, 2010, 08:08:04 »

Hola jam0_0, gracias por avisarme, y me he puesto con al tarea de revisar, y tienes razón, el atmega 16 no rula. pero los otros si, entonces me comprado los siguientes para revisar, attiny45, attiny2313, atmega32 "bien caro en estos lares este ultimo", y el atmega32 no funciona, me he puesto lupa en mano ha revisar y todo se debe al los disposición de pines, tienes razón respecto a los pines 20 y 22, no lo había probado por que no tenia los micros y tengo que reconocer que la ¡embarre!  Cry

Hace algunos días por falta de tiempo estaba en la tarea de re diseñar el soket incluyéndole un generador de reloj externo cuando los micros no están configurados por su oscilador interno, me he tomado la tarea de re-diseñar todo, y arreglar el error, como comentario, y gracias tu aviso, no es posible hacer el programador con un solo soket zif, y tanteando un poco he realizado este diseño, en estos días lo terminare y lo subiré, por el momento les muestro como va el diseño el cual he tomado un Attiny45 para generar la señal de reloj y funciona de maravilla.

Con respecto a las linea de Tx y Rx, estas están diseñadas para realizar futuras actualizaciones, como algún debuger o control externo pero dependen del firmware y no son necesarias incluirlas en el diseño del soket.

De nuevo les pido disculpas por el diseño del soket zif  cabezaso a la pared, a los que hayan realizado, afortunadamente el error solo se presenta en el diseño del soket y no del programador, he actualizado los vínculos y los archivos para evitar mas errores.

« Última modificación: Mayo 29, 2010, 03:27:33 por trunksx64 » En línea

Trunksx64
jam0_0
PIC10F
*
Desconectado Desconectado

Mensajes: 4


« Respuesta #6 : Mayo 30, 2010, 01:38:24 »

Hola Trunks, gracias por tu respuesta, entonces estaba bien lo que te hacía ver con respesto a los pines 20 y 22 del atmega8.

Tenía una consulta sobre tu diseño y quería saber porqué usas una bobina de 10uH porque en el diseño original del usbasp no lo usa.

Por otro lado quería comentarte que he visto algunos diseños en Internet en el cual usan un reloj externo y solo lo hacen con un cristal de 4 Mhz, no crees que esa sea una forma más fácil y económica en vez de usar un atiny para generar el clock?

Saludos y gracias por tu respuesta.
En línea
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #7 : Mayo 30, 2010, 03:05:10 »

El uso de la bobina y el condensador pertenece a circuito de desconexión y este se usa para proteger el mismo de algún sobre pico, tal vez no sea necesario pero prefiero que sea así, por que he tenido algunos accidentes por USB, ademas si se fija en la misma pagina, algunos diseños contienen estas protecciones hasta el uso de tri-states.

Respecto al uso del cristal, veo como mas sofisticado hacerlo así, por que se puede generar mas variedad de velocidad de reloj, ademas el Tiny45 consume realmente poco, también al programar me he percatado "Corrijanme si me equivoco" que es posible poner cualquier cristal, pero si la velocidad se aproxima a la configurada en la programación se efectuá sin problemas, y por que cuando estaba realizando las pruebas con los cristales se me ocurrió generar la señal mediante otro micro-controlador por falta de no tener mas variedad cristales a la mano.

También se me acaba de ocurrir esto: la programación de los Atmel debe estar sincronizada con la señal se reloj y la del oscilador interno, seria posible hacer esta sincronización tomando tomando muestras de la linea SCK y generando la señal correspondiente por la linea Xtal1, obviamente pues averiguando si esto es posible en la documentación del Atmel... solo es una idea... haber si estoy del todo bien o errado ya que veo que el Tiny45 se presta perfectamente para esto. duda
En línea

Trunksx64
jam0_0
PIC10F
*
Desconectado Desconectado

Mensajes: 4


« Respuesta #8 : Mayo 30, 2010, 03:23:55 »

Ahh ok, entiendo entonces lo de usar el attiny pero de que forma vas a cambiar las velocidades de clock que pretendes generar?

Saludos
En línea
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #9 : Mayo 31, 2010, 01:55:59 »

He averiguado un poco en internet encontré que el pin (XTAL1) no es obligatorio controlarlo desde el programador, La única restricción que debe cumplir es que el periodo de esta señal debe ser como mínimo la cuarta parte del empleado en la señal (SCK).

Entonces lo que quiero hacer es, simplemente es que el Tiny45 genere estas señales, mirando la documentación, el programador Usbasp maneja las velocidades de menor a mayor de 1,5 Mhz en la linea de (sck).

Y observado el datasheet de los atmega se hace referencia a:

" Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods
     for the Serial Clock (SCK) input are defined as follows:

     Low:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz
     High:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz"


Por lo tanto la señal de reloj (sck) depende de la configuración de (CKSEL), lo cual permite restringir el número de velocidades las cuales (Xtal1) debe funcionar, por lo que es mas fácil generar las señales, tomando lo primero que enuncie, podría generar señales de 1,2,4 y 6 Mhz, y combinarlas como se desee.

La información la tome de este lugar http://www.tolaemon.com/proyectos/telavr.htm, la cual explica como generar la señales para programar los micros Atmel por medio del modulo serial y le puerto paralelo.

Voy a ponerme en la tarea de generar el código y hacer las pruebas, que tal me va, ademas de observar que el Tiny45 posee un PLL interno, solo seria cuestión de averiguar que velocidades puedo generar con el PWM que tiene.

« Última modificación: Septiembre 03, 2010, 10:38:16 por trunksx64 » En línea

Trunksx64
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #10 : Junio 01, 2010, 04:36:22 »

Hi... bueno luego de luchar con Eagle, y tratando de hacer de nuevo el diseño del socket de una sola capa, para minimizar gastos, ya que por estos lares es bastante costoso hacer una PCB doble capa, por fin he terminado el diseño  Wink, lo adjunto en el primer post, ahora me pondré en la tarea de  realizar ajuste con el Tiny45, esta ya lo he armado en protoboard y he configurado el atmega8 para hacer las pruebas, y funciona según lo que he planeado, por lo que por el momento solo es posible programar los micros sin reloj externo, cuanto tengo la programación terminada subiré el correspondiente archivo...

Ya por ultimo, gracias a  jam0_0, que me aviso del error y me puso en la tarea de corregir, que por seguro ni me doy cuenta, esa cuestión de falta de tiempo.... Tongue, tambien cualquier error que vean no duden en decirme, contarme etc...

En línea

Trunksx64
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #11 : Junio 03, 2010, 09:15:39 »

Hi de nuevo,  pues me he puesto hacer la tarea de programar el tiny45, y realizando las pruebas con todas las configuraciones del reloj externo posibles con un Atmega8, Atmega16, Tiny2313.

la velocidad debe estar por debajo de 250 Khz si el jumper (SCK) del Usbasp este puesto que la velocidad del reloj se limita de 375 kHz a 8 kHz. ya cuando la velocidad suba a mas de 1,5Mhz si el jumper (SCK) esta libre, la velocidad de (xtal1) puede de ser de 1Mhz.

Con todas lo pruebas nuca logre que los micro-controladores funcionaran con una velocidad de mas de un 1Mhz por (xtal1), con o sin el jumper (SCK), no se cual sera el motivo, por lo que en el momento no incluiré estas velocidades. las velocidades que están disponibles son:

125 Khz, 150 khz, 200 Khz y 250 Khz.

Los indicadores quedaron así:

El led que dice Busy, indica cuando se detecta la señal de Reset proveniente del Usbasp, y se activa el PWM.
El led que dice Opción, indica la frecuencia que se ha elegido, variando la luminosidad del mismo.
El botón cambia las frecuencias pres establecidas, de 0 Khz hasta 250 Khz.

También he realizado algunos cambios en el diseño de Eagle, para justar algunos caminos y corregir algunos errores.

estos son los fuses para el Tiny45:

# TARGET=attiny45  LFUSE=0x41 HFUSE=0xDF EFUSE=0xFF

« Última modificación: Septiembre 03, 2010, 10:36:04 por trunksx64 » En línea

Trunksx64
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #12 : Junio 11, 2010, 08:49:31 »

Hi a todos... Como tarea pendiente acá les tengo las fotos del socket ZIF en funcionamiento... perdón por las fotos... mi celular no da mas   Lips Sealed.



Y por ultimo el pantallazo de como fue reconocido por avrdude en Windows 7 (x64), sin y con la señal de reloj.  bang
« Última modificación: Junio 11, 2010, 10:59:20 por trunksx64 » En línea

Trunksx64
Moyano Jonathan
PIC12F
**
Desconectado Desconectado

Mensajes: 208


Con muchos proyectos y poca $


« Respuesta #13 : Agosto 11, 2010, 06:58:07 »

Te quedo genial el programador  rolleyes2 rolleyes2
En línea
trunksx64
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 20



WWW
« Respuesta #14 : Agosto 13, 2010, 01:20:07 »

Gracias Jonathan, es un alago que aprecie mi esfuerzo con todo y errores jejeje  bang ..... thanks...
« Última modificación: Septiembre 03, 2010, 10:39:18 por trunksx64 » En línea

Trunksx64
Páginas: 1 2 »   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.9 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 válido! CSS válido!

Página creada en 0.337 segundos con 22 consultas. (Pretty URLs adds 0.013s, 2q)