Proyecto transmisor FM con microcontrolador y PLL de transmisor de auto

Hola a todos , caro Don Rodrigo cuanto a la questión 2 te recomendo activar lo preenfasis , caso NO ustedes tienes que hacer eso externamente con una red "R" y "C" en cada entrada de audio (derecho y esquierdo).
NO si enpleya preenfasis entre lo encoder estereo y lo modulador FM , como en ese CI tudo es ya interno y sin la posibilidad de intervenciones externas debes entonses acionar lo preenfasis .
Att,
Daniel Lopes.
 
Última edición:
.


Rodrigo

Lee todo bien desde el principio que en dos ó mas post ya D@rkbytes te dijo como colocar todo para compilarlo.

Aparte te indico donde deberías tener la totalidad de los 8 (ocho) archivos y las correcciones a realizar para que compile bien, estas haciendo algo mal tu por que Ricbevi logro compilarlo también sin problemas.


Si te perdes con la vista normal, usa la vista de "Versión Imprimible" que tenes en herramientas arriba del primer post de cada pagina.


En Elemon tenes que agregar el IVA !!!!.


Si bien son precios de otro proveedor solo los puse para comparar el 883 contra el 886.




Saludos, JuanKa.-

juanka no hay diferencia entre el pic 16f883 3.21+10.5
16f886 3.33+10.5

no se considera comprar el 883 con la poquita diferencia que hay de precio , mas vale para los proximos encargo 16f886 y lo hago trabajar mucho mas aliviado , gracias por hacerme fijar , pense que habia mucha diferencia pero no
 
OK. Ahora ya se puede compilar sin errores.

Sólo se tiene que abrir con PIC C Compiler de CCS, el archivo "TransmisorFM.c"

Posteriormente se tienen que realizar dos correcciones...
En la librería "flex_lcd.h" corregir lo siguiente:
#include "D:\Mis documentos\etc\CCS\Librerias\flex_lcd.c"
Por...
#include "flex_lcd.c"
Y en la librería "pantallas.h" corregir lo siguiente:
#include "D:\Proyectos varios\Rodrigo Postigo\Codigo\pantallas.c"
Por...
#include "pantallas.c"

Con esos cambios ya se puede compilar sin errores.
Aparecerá una advertencia:
>>> Warning 216 "TransmisorFM.c" Line 164(1,2): Interrupts disabled during call to prevent re-entrancy: (TopeFrec)

Eso no dará problemas, pero para evitarlo, se puede escribir lo siguiente al principio de "TransmisorFM.c"
#ignore_warnings 216

Eso es todo, ya podrán compilar el programa sin inconvenientes.

Nota:
Posteriores modificaciones sin cambiar de PIC, requerirán optimización del programa porque ya se está usando la ROM al 99 %

Suerte.

D@rkbytes. Hablando de optimizar la ROM. ¿Si saco una función, la debo eliminar de todas las librerías, una por una?
Porque la parte que no entiendo es cómo el PIC le manda una orden al KT.
¿Me darías un ejemplo? Ya realicé todos los pasos y logra compilar sin errores.

Guardé el proyecto con las modificaciones que me diste y al grabar el PIC le cambié el tamaño de la pantalla de SIZE 21 a SIZE 25 y no me aparecen más los @@ ni rayitas en la pantalla.

¿Qué debería cambiar para habilitar el Audio Limiter en el lugar del RF dBu?
Dejando este último por defecto a 108dBu. Sería cambiar uno por otro.

Otra cosa que no entiendo, es cómo manda los datos. Leo las hojas de datos del KT0803K y la del KT0803L (El que anda )
No sé dónde está la diferencia de registros, ubicaciones y demás.
Si tienes un tiempo me lo explicas. Debería arrancar a conocer los comandos básicos para no molestar y hacer las modificaciones.

Desde ya, y como siempre, mil gracias a toda la comunidad por ser tan amables en prestar ayuda.
Es todo un orgullo ser parte de este foro. :):):)
 
Última edición por un moderador:
Hola a todos , a titulo de conocimento un nivel de 108dBu es equivalente a 1mW :eek: :eek: :eek:
Att,
Daniel Lopes.


Daniel solo a eso equivale 1mw ?:unsure::unsure: viste que los kit que compraste vos y yo te pase los pdf de componentes y demas lleva el KT0803k , luego lo amplifica con un s9018 smd+c3355+c2053+rd15hvf1

yo lo que estoy usando es el KT0803+bfr91+bfr96+c1971 y logro entre 6 a 8W maximo dependiendo de la alimentacion y calibracion de los trimmer
 
Las cuentas son las seguintes : 1uV equivale a -107dBm @ 50R ,entonses +108dBuV equivale a +1dBm @ 50R o sea un poquito mas de 1mW , pero menos que 1,5mW.
Cuanto a tu resultado , lograste una ganancia de 46 o 47dB en todo paso amplificador (bfr91+bfr96+2sc1971) lo que es muy bueno , creo jo que debido a lo optimo ayuste entre estagios .
Att,
Daniel Lopes.
 
D@rkbytes. Hablando de optimizar la ROM. ¿Si saco una función, la debo eliminar de todas las librerías, una por una?
Porque la parte que no entiendo es cómo el PIC le manda una orden al KT.
¿Me darías un ejemplo? Ya realicé todos los pasos y logra compilar sin errores.
Eliminar funciones no usadas es parte de optimizar un programa, pero principalmente se debe tener cuidado con el tamaño de las variables.
Muchas veces usan funciones de 16 bits para retornar valores de 8 bits y eso no está bien.
El uso de "printf" consume mucha ROM y usar cadenas largas y repetitivas, también.
Guardé el proyecto con las modificaciones que me diste y al grabar el PIC le cambié el tamaño de la pantalla de SIZE 21 a SIZE 25 y no me aparecen más los @@ ni rayitas en la pantalla.
Eso fue una suposición, se necesitaría estudiar la rutina de escritura para hacer que funcione con pantallas de 20 letras.
¿Qué debería cambiar para habilitar el Audio Limiter en el lugar del RF dBu?
Dejando este último por defecto a 108dBu. Sería cambiar uno por otro.
No tengo idea. No conozco ese chip ni he leído la hoja de datos.
Otra cosa que no entiendo, es cómo manda los datos. Leo las hojas de datos del KT0803K y la del KT0803L (El que anda )
No sé dónde está la diferencia de registros, ubicaciones y demás.
Si tienes un tiempo me lo explicas. Debería arrancar a conocer los comandos básicos para no molestar y hacer las modificaciones.
Las funciones de lectura y escritura del chip están en el archivo "KT_Comm.c" y las definiciones de registros están en el archivo "KT_Comm.h"
Ahí se puede ver que para la escritura y la lectura se han definido dos constantes:
#define WRITE_COMMAND 0x7C
#define READ_COMMAND 0x7D

Por lo general en I2C, el comando de lectura es un bit más al de escritura. (Incluye dirección del chip)

Los registros se encuentran enseguida:
#define REG_00 0x00
#define REG_01 0x01
#define REG_02 0x02
#define REG_04 0x04
#define REG_13 0x13

Para entender cómo funciona el protocolo I2C necesitas estudiarlo.
Es muy sencillo y su funcionamiento fue muy bien explicado por su creador. Philips.
Documento adjunto, cortesía de mcc-us
Las instrucciones básicas en PIC C Compiler para usar I2C, son las siguientes:
i2c_start();
i2c_write();
i2c_read();
i2c_stop();


En PIC C de CCS para hacer un Restart, se hace otro i2c_start(); antes de detener la transmisión.

El resto es estudiar para comprender el programa.
 

Adjuntos

  • Philips Semiconductors I2C Handbook.pdf
    277.2 KB · Visitas: 97
Gracias D@rkbytes prometo estudiar y tratar de hacer modificaciones comentando los avances del proyecto ,espero no se me haga tan dificil , a lo que entendi si hago modificaciones de registro en kt_comm puedo cambiar una funcion por otra y compilar para probar si hace lo que yo quiero , como siempre gracias por tomarte el tiempo de responderme las dudas o preguntas una por unas , muy agradecido con usted D@rkbytes !!!!
 
Eliminar funciones no usadas es parte de optimizar un programa, pero principalmente se debe tener cuidado con el tamaño de las variables.
Muchas veces usan funciones de 16 bits para retornar valores de 8 bits y eso no está bien.
El uso de "printf" consume mucha ROM y usar cadenas largas y repetitivas, también.

Eso fue una suposición, se necesitaría estudiar la rutina de escritura para hacer que funcione con pantallas de 20 letras.

No tengo idea. No conozco ese chip ni he leído la hoja de datos.

Las funciones de lectura y escritura del chip están en el archivo "KT_Comm.c" y las definiciones de registros están en el archivo "KT_Comm.h"
Ahí se puede ver que para la escritura y la lectura se han definido dos constantes:
#define WRITE_COMMAND 0x7C
#define READ_COMMAND 0x7D

Por lo general en I2C, el comando de lectura es un bit más al de escritura. (Incluye dirección del chip)

Los registros se encuentran enseguida:
#define REG_00 0x00
#define REG_01 0x01
#define REG_02 0x02
#define REG_04 0x04
#define REG_13 0x13

Para entender cómo funciona el protocolo I2C necesitas estudiarlo.
Es muy sencillo y su funcionamiento fue muy bien explicado por su creador. Philips.
Documento adjunto, cortesía de mcc-us
Las instrucciones básicas en PIC C Compiler para usar I2C, son las siguientes:
i2c_start();
i2c_write();
i2c_read();
i2c_stop();


En PIC C de CCS para hacer un Restart, se hace otro i2c_start(); antes de detener la transmisión.

El resto es estudiar para comprender el programa.

D@rkbytes me darias una mano para modificar las funciones o programa del chip , optimizar , usar otra funcion y probarla sin tener que comprar el pic 16f886 (lo que me demandaria mucho tiempo ) para poder dejar todas las funciones y agregar la que quiero ya que si la pruebo y me da resultado la funcion ALC podria tener el transmisor de fm ya con un compresor expansor de sonido incluido , yo te dejo la hoja de datos del KT 0803L y le pegas un vistazo si te parece
 
D@rkbytes la verdad que lo que llegue a hacer es imprimir todo el codigo fuente mas todas las hojas de datos de los dos integrados , KT0803k y KT0803L y leer buscando coincidencias pero no entiendo mas de lo que me marcaste , los registros usados y el envio y recepcion asignado para la coomunicacion , esto es todo nuevo para mi no entiendo nada D@rkbytes
 
El protocolo de comunicación es I2C, en C no es nada complicado.
Inicias comunicación: i2c_start ();
Envías dirección y comando de lectura o escritura: i2c_write (dir_esclavo | lectura_escritura);
Lees el dato indicando si requieres acuse de recibo (ACK): dato = i2c_read (ack_no_ack);
Terminas la comunicación: i2c_stop ();

O sea, lo básico.
 
facil para vos que lo entendes D@rkbytes, te digo que para mi es chino basico , o sea tengo miedo de borrar algo y hacer macana que deje de andar o bien capas que en vez de borrar cambio registros y hace lo que quiero , hasta lo de los registros llego despues se me termina el ingenio

son muchos lugares donde se deben hacer los cambios y tampoco se si reemplazo algo.... si la otra funcion queda por defecto o desaparece
 
Fácil para vos que lo entendes D@rkbytes.
Te digo que para mi es chino básico, o sea tengo miedo de borrar algo y hacer macana que deje de andar o bien capaz que en vez de borrar cambio registros y hace lo que quiero, hasta lo de los registros llego después, se me termina el ingenio.
De eso se trata, de comprender el funcionamiento y hacer pruebas.
Por acá decimos que... echando a perder, se aprende. ;)
 
De eso se trata, de comprender el funcionamiento y hacer pruebas.
Por acá decimos que... echando a perder, se aprende. ;)

claro D@rkbytes pero justamente asi como me decis vos empiezo a borrar por borrar y si no compila mas que hago ? arrancar denuevo con una copia del original a hacer espacio ? sin entender como se hace es mas facil hechar a perder :unsure:
 
claro D@rkbytes pero calcula que lo hizo un amigo al programa yo de eso no entiendo nada , tengo mas de 50 micros nuevos con zocalo y los Kt0803k y tambien los KT0803L , pero la progracion la mande a hacer D@rkbytes por ese motivo soy nulo total , encima formatie la pc y no me quedo ni el grabador de pic ni el compilador , mas que de cero tengo que arrancar , por eso te preguntaba si vos no me arias la programacion del micro
 
Saludos.
Disculpa, pero obviamente no, el programa del PIC es algo que necesitas tú, no yo.

Todos empezamos desde cero, y si queremos saber algo algo, lo aprendemos.
Lo que es software y hardware de programación se puede volver a conseguir, así que no es pretexto.
Yo por ese lado no me preocupo, lo que si cuido son mis programas y nada más a eso le hago respaldo.

Ten la iniciativa de ser tú quien haga el programa y en el Foro se te podrá colaborar.
 
Saludos.
Disculpa, pero obviamente no, el programa del PIC es algo que necesitas tú, no yo.

Todos empezamos desde cero, y si queremos saber algo algo, lo aprendemos.
Lo que es software y hardware de programación se puede volver a conseguir, así que no es pretexto.
Yo por ese lado no me preocupo, lo que si cuido son mis programas y nada más a eso le hago respaldo.

Ten la iniciativa de ser tú quien haga el programa y en el Foro se te podrá colaborar.

Bueno me voy a poner a empezar según la programación que tengo y si necesito ayuda casi seguro les voy preguntando , veremos como empiezo y les voy comentando , como siempre gracias por el incentivo y ayuda en el foro
 
Hola Amigos del foro como va tanto tiempo , una consulta alguien sabe como se hace el cable BALUM para entrada y salida de 50 OHM tipo modulo RVR , ando por hacer unas placas , ademas le consulto si an relizado alguna placa sumando 2 RD15HVF1 en una misma placa , no se como hacen los chinos pero con 4.7v de gate y solo 11.8v de alimentacion le sacan 20W banda ancha , la idea seria sumar 2 RD15HVF1 y asi lograr unos 40w tranquilo , que opinan ustedes ??



Saludos.
Disculpa, pero obviamente no, el programa del PIC es algo que necesitas tú, no yo.


D@rkbytes te hago una consulta sobre otro tema que tengo una inquietud , a mi proyecto que creo vos compilaste y lo pasaste a pic 16f886 , se le puede agregar un pin que al entrar en modo servicio ese pin haga de resistencia variable para que yo conecte una resistencia a la alimentacion del micro y en pantalla al mostrar un porcentaje de 0 a 100 en pantalla 0 sea 0 volts y valla subiendo hasta llegar a 100% que serian los 3.3v o 5v maximos que daria , es muy complicado las funciones estas ? gracias
 
Última edición:
Atrás
Arriba