Traduccion o creacion de manual para microcontroladores AVR

Estimados, quisiera aportar con info. Yo también me he encontrado con la falta de información en español. Ahora, tengo la ventaja de saber inglés y alemán, por lo que me arreglo y sugiero que de a poco empiezen a estudiar inglés (junto con el C, jaja) porque es y será (a menos que los chinos impongan) el lenguaje para la electrónica y demases. Para hacer mi proyecto de título utilizé el AVR Atmega168 pero obviamente tuve que aprender a programarlo antes! Por eso leí y estudié y practiqué con el micro famoso, que es bueno y potente. Todo eso terminó en un conjunto de circuitos y códigos en C que organizé en un trabajo de Licenciatura. Lo acabo de subir hace poco al foro:

https://www.forosdeelectronica.com/f24/uso-programacion-avr-atmega168-mediante-gcc-67340/

Utilizo el AVR Studio 4 (versión 4.18) adjuntando el compilador AVRGCC, que muestro cómo hacerlo también. El AVR Studio es un entorno muy bueno y completo, lo pueden descargar gratuitamente (Ahora está el 5 disponible) y les servirá para programar en Assembly o en C (con GCC) como gusten. Yo me viré hace tiempo al C (de hecho nunca aprendí ASM) que les aseguro tiene muchas ventajas hoy en día sobre ASM (Tiempo de desarrollo, compatiblidad, estandarización, etc.) pero eso no quiere decir que saber Assembly no sea bueno, de hecho yo ahora lo estoy estudiando de a poco porque sirve para muchas cosas (desensamblar, ingeniería inversa, optimización, rapidez, etc.).
Espero les sirva la info y que les de un aventón a aprender C (Hay varios libros buenos rondando, en inglés y español) ya que es un lenguaje excelente. De ahí se van al C++ para aplicaciones en PC, comunican con el micro en C y se toman el mundo!!jaaja
Saludos
 
Saludos, he trabajado mucho con los PIC`s, pero no hay duda en cuanto a la potencia y flexibilidad de los AVR`s desde todos los ángulos, ya que están orientadso bajo la premisa del "Software Libre". Tengo una Guia paso a paso para AVR en español, partiendo desde cero con el ATmega8 q es el mas popular, de hecho les digo que si aprenden a trabajar con el Atmega8, aprenden a trabajar con todos los modelos, AT90xxxx, ATtinyxxx, ATmegaxxxx, ATxmegaxxx, ya sea en "Assembler", "Basic" (con BASCOM-AVR) o C (con AVRSTUDIO4).


Hola rafa387, estaba buscando en el foro información sobre microcontroladores avr y me encontré con un tema donde tu indicas que tienes una buena información, me podrías por favor compartir esta información

Gracias de antemano
 
Saludos amigos como les dije hace unas semana nos toco realizar un folleto con varias practicas para el ATmega 8 asi que aqui les dejo el capitulo tres de mi proyecto que se trata de todas las practicas desde las mas faciles que es ensendido de un led hasta manejo de servos, espero que les sirva y si tienen alguna duda no duden en preguntar!!.
Hasta la proxima.

http://www.4shared.com/file/wuJOiMds/CAPITULO_3.html

Nota: Como era muy grande y no se puede adjuntar por aca les dejo un enlace de 4shared ojala no lo eliminen.
 
Pido disculpas tengo algunos problemas al subir el archivo, al parecer no puede subir archivos por alguna configuraciondentro mi PC publicare la traduccion cuando solucione el problema...
 
Última edición:
Hola, bueno ahora logre subir el archivo tuve algunos problemas con el proveedor de Internet...

Se trata de una traducción que hice de la Nota de Aplicaciones AVR040 - EMC Design Considerations (Consideraciones de diseño de CEM) CEM = Compatibilidad Electromagnética.
Contiene importantes criterios e información acerca del diseño CEM.

Muy útil para quienes diseñan sistemas en especial microcontrolados y dessean hacer sus sistemas con buena inmunidad al ruido, transitorios, ESD (Descargas electroestáticas), OEM (Ondas electromagnéticas), criterios de diseño de PCB de 1,2 y multicara, Uso de diodos, capcitores de desacople y bobinas en serie entre otros...

Espero les sirva mucho :) y aunque estoy corto de tiempo quisiera traducir algún otro material relacionado tal vez la nota de aplicación AVR042 consideraciones de diseño de Hardware, pero antes necesito alguna retroalimentación acerca de la primera traducción acerca de posibles errores de traducción...
 

Adjuntos

  • Traduccion AVR040.rar
    961.8 KB · Visitas: 83
Hola StrySG:

Has puesto hasta gráficos o esquemas incluidos.Por la cantidad de textos te has pegado un tiempo y dedicación. Nos ayuda mucho a entender los AVR.

Buen trabajo.
 
Un consejo para los que creen tener conocimiento acerca de CEM y dessen ir directamente al grano del documento tomen en cuenta los siguientes puntos:


punto 3: Tratar con fenómenos de CEM.

punto 4: Reglas de diseño.

Supongo que son las partes más útiles del documento para quienes ya están dentro el diseño de sistemas, en otros casos también recomiendo leer todo el documento..

Nota.- El documento original (en inglés) esta publicado en este tema por alepusto solo basta con revisar la página 15 para verificar partes que creen que estan mal traducidas :D
 
pues en mi escuela estamos viendo el ATMEGA8 y los capitulos que nos dieeron para estudiarlo estan muy buenos y en español, se los adjun to para que puedan checarlos a ver si les sirve, saludos a todos...


Yo tambien tengo los mismos apuntes pues yo creo que estudiamos en la misma escuela, solo que en los programas y uno de los capitulos tienen errores, asi que si quieren correr los programas chequen bien
 
A si me imagino que son los disipulos de baldera, jejeje, Aun sigue pidiendo que se aprendan cada nombre de cada bit de cara registro del micro controlador?????

Qee pesado
 
Bunas....hace ya tiempo aprendi lo muy basico para programar en avrstudio para un atmega8, en realidad estoy en blanco ahora...alguien me podria dar alguna pauta para poder programar solamente un pequeño pulso y necesito que dure 6.44us...es para una practica que tengo que hacer para disparar un mosfet....solamente necesito la pauta porfavor jeje...muchas gracias!!
 
jajaja yo no soy disipulo de balderas solo entre a su clase y ya =P y



Bueno si quieres generar un pulso que dure 6.44 micro segundos debes configurar algun timer de los 3 que tiene el ATmega8 para que te genere ese tiempo, pero no se si llegaste a congfiurar los mismos? en base a como divides el reloj y si pones un valor determinado al registro que lleva la cuenta es como puedes generar un pulso a determinada frecuencia, pero necesito que me digas hasta donde viste para ayudarte, saludos.
 
Última edición:
orale....gracias amigo.....pues en realidad no recuerdo mucho ya tiene como 3 años que no toco este tema...pues recuerdo que hay que declarar primero las entradas y las salidad y me referenciaba en el manual del atmega para activar una rutina...pero no recuerdo bien donde viene lo del timer....
 
Pues en el manual viene donde dice Timer/counter ahi puedes checar los registro que intervienen para lo que tu quieres necesitas ver el registro TCNT0 del Timer 0 TCNT1H,TCNT1L del Timer 1 y TCNT2 del Timer 2 y los registros de control TCCR0,TCCR1B,TCCR2
 
graciotas viejo....psss ahorita a darle..jeje....chido one



una ultima preg...para el pulso necesito un cristal no recuerdo si es de 4Mhz??o de que depende
 
Última edición:
necesito hacer un pulso que este en estado alto durante solo 6.4us


$regfile = "M8def.dat"
$crystal = 1000000
Config Portb.0=Output

Pinb.0=0
Waitms 2000
Pinb.0=1
Waitus 6.4
End

en que estoy fallando?
 
Oye Javisco si estar usando un reloj de 1Mhz una instruccion dura 1 us entonces no vas a poder obtener 6.4 uS, en toda caso prueba un cristal mas grande por ejemplo 10Mhz asi cada instruccion o incremento en el TCNT sera de 0.1uS asi si podras obtener los 6.4uS, dejame buscar yo lo hice igual para dispara un triac



No se como le vallas a hacer para dispara el pulso de 6.4uS, yo lo haria con la interrupcion INT0, por ejempl asi.

Código:
F_CPU 1000000
void configurar_interrupcion()
{
	MCUCR |= (1<<ISC01)|(1<<ISC00); //Interrupcion por INT0 con el filo de subida
	GIMSK |= (1<<INT0);			//Habilitamos interrupcion por INT0
}
ISR(INT0_vect)					//Cuando flanco de subida en INT0 
	OCR1A = 60;	//Valor al cual se debe llegar y generar interrupcion 60 cuentas = 60uS @ 1Mhz
	TCNT1 = 0x00;   //Habilita interrupcion por igualacion de OCR1A con TCNT1
	GIMSK |= (0<<INT0);		//deshabilitamos interrupcion por INT0
	TIMSK |= (1<<OCIE1A);        //Habilitamos interrupcion cuando TCNT1 = OCR1A
         salida_on                  //Salida encendida
	sei();
}
ISR(TIMER1_COMPA_vect)	//Cuando se halla cumplido el retardo entonces desactivamos la salida
{	cli();				
	salida_0ff;
	TIMSK |= (0<<OCIE1A);
	GIMSK |= (1<<INT0);	//Habilitamos interrupcion por INT0 para empezar de nuevo
	sei();
}
void configurar_modo_CTC()
{	
	//Modo CTC comparado con OCR1A, sin prescala por tanto se incremente en uno cada microsegundo
	TCCR1B |= (1<<WGM12)|(1<<CS10);
}

void main()
{
   void configurar_interrupcion();
   configurar_modo_CTC();
while(1);
}
 
Última edición:
Atrás
Arriba