Preamplifiicador PGA2311
| #1 Preamplifiicador PGA2311 |
|
downcount
|
Hola a todos! estoy realizando un proyecto de un preamplificador basado en el control de volumen PGA2311PA y este esta controlado mediante un microcontrolador PIC18F452. El proyecto es casi el mismo que salió en la revista elektor, lo que yo estoy realizando todo el software y hardware de nuevo, aqui podeis encontrar el proyecto de elektor http://www.dh3ben.de/html/electronics/pga2311_preamp.shtml.
El PGA2311 es un control de volumen de alta fidelidad, en el qual el volumen se controla digitalmente mediante SPI. Por el momento lo he montado en una placa de pruebas y he conseguido variar el volumen con pulsadores. El codigo lo he escrito en CCS, las funciones SPI del CCS no no me funcionan, pero lo he conseguido hacer funcionar con unas funciones SPI por software. Tambien quiero que se pueda variar el volumen con mando a distancia (codigo RC5 de phillips), he utilizado el codigo que hay publicado en el foro, lo malo es que no funciona por interrupciones y no me acaba de funcionar del todo bien, a veces detecta bien el codigo y a veces no. Estoy diseñando las placas de cirtcuito impreso, de momento he hecho la fuente de alimentacion y ahora voy a hacer la placa principal del microcontrolador con el control de volumen, pero todavia no tengo claro que puertos del PIC utilizar. Necesito a alguien que me ayude con la programacion del codigo en CCS, gracias. |
|||||||||||
|
|
||||||||||||
| #2 |
|
downcount
|
Este és el codigo para decodificar el mando a distancia, he puesto unos mensajes por el RS232 para saber si funciona la decodificacion, por el momento no me funciona. Estoy hablando con el que ha escrito el programa para ver si se puede solucionar.
//main //******************************************************************************* // // Simple program to decode commands of RC5 infrared remote controls // // // 01/01/2006 by Daniel Porzig www.base32.de.vu // // // // // ATTENTION! All timervalues just fit, if the controller runs with 20 MHz! // When you use another frequency, the values have to be adapted! // // // // //******************************************************************************* #include <18F452.h> #fuses NOWDT,HS, PUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #include <IR.c> void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); EXT_INT_EDGE(H_TO_L); enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); rc5.state=0; //input(PIN_B0);// this sets up PIN B0 as an input pin. You could use "set_tris_b(...)" too. set_tris_b(0b00000001); while(1) { if(rc5.state==1) { puts("works"); rc5.state=0; enable_interrupts(INT_EXT); } } } //Libreria IR.c #define IR_INPUT PIN_B0 #define IR_STATUS (!input(IR_INPUT)) typedef struct { int8 data[2]; int8 state; } rc5_struct; rc5_struct rc5; int1 get_RC5(void) { int16 tmp,t; int i; int1 inp; set_timer1(0); while(IR_STATUS == 1); t=get_timer1(); puts("debugg2"); if ((t<400) || (t<800)){ puts("not works"); return 0; } for (i=0;i<13;i++) { inp=IR_STATUS; set_timer1(0); puts("debugg3"); while (IR_STATUS==inp) { t=get_timer1(); if (t>800) return 0; } tmp<<=1; if (inp==0) tmp++; set_timer1(0); while (get_timer1()<776); } tmp=tmp | 0x3000; tmp=tmp & 0x37FF; rc5.data[0]=tmp & 0xFF; tmp>>=8; rc5.data[1]=tmp & 0xFF; rc5.state=1; disable_interrupts(INT_EXT); return 1; } #int_EXT void EXT_isr() { puts("debugg1"); get_RC5(); } |
|||||||||||
|
|
||||||||||||
| #3 |
|
| Temas de interés | |
|---|---|
| Envio de 4 bits por radio frecuencia, distancia 15 m. | |
| Adaptar un mando de play para controlar un robot a distancia | |
| Comando a distancia simple | |
| Mando a distancia para garaje | |
| Medidor de distancia por infrarrojos | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad

