Transmisor FM, PLL (Redfield29) ver. 2.0

hola tengo un codigo que no engancha en basic donde puede estar el fallo parece que no me envia el word D

Device 16F628A
Xtal 4
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Declare LCD_Interface 4 ' imposta dati lcd a 4 fili
Declare LCD_Lines 2 ' imposta linee lcd
Declare LCD_DTPin PORTB.0 ' assegna porta C4 alla DT lcd
Declare LCD_ENPin PORTA.3 ' assegna porta B6 alla EN lcd
Declare LCD_RSPin PORTA.2 ' assegna porta B5 alla RS lcd
All_Digital true


Dim mem2 As Byte
Dim mem1 As Byte
Dim frequenza As Word
Dim ultimafreq As Word
Dim frequenzaR As Word

Symbol Up = PORTA.0
Symbol Down = PORTA.1
Symbol lock = PORTA.4
Symbol clb = PORTB.4
Symbol dlen = PORTB.5
Symbol dataa = PORTB.6
''''''''''''''''''''''''''''''''''''''''''''''''''''
TRISA.0 = 1
TRISA.1 = 1
TRISA.4 = 1
TRISB.4 = 0
TRISB.5 = 0
TRISB.6 = 0
clb = 0
dlen = 0
dataa = 0

DelayMS 200


' WordB 01110110010101
'0101 'Controllo del pin 18
'0000=1; 0001= contatore prg; 0100=Frec. Ref.; 0101=Lock/Unlock
'1 BRM controllo del bus 1 = sw automatico; 0 = sempre in ON
'00 PDM Detector di fase digital 0X = on/off automatico; 10 = on; 11 = off
'1 SLA Modo Latch A 1 = síncrono; 0 = asíncrono
'1 SB2 on/off ultimi 8 bits della wordB 1 = on; 0 = off.
'(da SLA a T0) 0, gli ultimi 8 bit sono collocati in 00000000
'1110 Guadagno di corrente per la tensione di errore 0000=0.023; 0001=0.07; 0010=0.23; 0110=0.7; 1110=2,3
'0 Freq.rifermento 0 = 1Khz; 1 = 1.25Khz
'1 modo FM/AM; 1 = FM; 0 = AM


EWrite 0,[232,3,0] ' EEPROM 3,232 = 1000 = 100.0 Mhz
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
mem1 = ERead 0
mem2 = ERead 1
frequenza = mem2 * 256 +mem1
ultimafreq = frequenza
Low dlen
DelayMS 100
Print At 1,1,"TEST PLL 1 "
DelayMS 1000 'wait
Cls

'''''''Write WordB SAA1057


dlen = 1
SHOut dataa, clb, 1, [01110110010101]
dlen = 0
dataa = 0
DelayUS 5
clb = 1
DelayUS 1
clb = 0
DelayMS 100
GoSub wiritefreq ' write @saa1057
GoSub writelcd 'write @ LCD
Cls
DelayMS 100
'*******************START********************
loopstart:
GoSub writelcd
If Up=1 Then
DelayMS 200
frequenza = frequenza + 1
If frequenza < 1081 Then
Else
frequenza = 1080
EndIf
EndIf

If Down = 1 Then
DelayMS 200
frequenza = frequenza-1
If frequenza > 874 Then
Else
frequenza = 875
EndIf
EndIf
DelayMS 1
'''''''''''''''''''''''''''''''
If lock = 0 Then
Print At 1,1, "Unlock"
lock = 0
Else
Print At 1,1, "Lock "
lock = 1
EndIf


DelayMS 1
GoTo loopstart
'''''''''''''''''''''''''''''''''''write @saa1057
wiritefreq:
frequenzaR = frequenza * 10
dlen = 1
SHOut dataa, clb, 1, [frequenzaR\16]
dlen = 0
dataa = 0
DelayUS 5
clb = 1
DelayUS 1
clb = 0
DelayMS 1
Return
'***************************************************
writelcd:


mem1 = frequenza
mem2 = (frequenza-mem1)/256

If ultimafreq <> frequenza Then
EWrite 0, [mem1]
EWrite 1, [mem2]
EndIf
GoSub wiritefreq
If frequenza < 1000 Then

Print At 1,9, Dec (frequenza/10), ".", Dec1 frequenza, "Mhz"
Print At 2,1,@frequenzaR
Else

Print At 1,9, Dec (frequenza/10), ".", Dec1 frequenza, "Mhz"
Print At 2,1,@frequenzaR
EndIf


Return

End
 
Vuelvo nuevamente ésta vez para compartir una mejora del Verónica, quizás para algunos ya no se parezca. Es el producto de la simplificación del esquema del oscilador doble a un oscilador simple con un solo transistor, eliminando el condensador variable de sintonía, y de paso reduciendo significativamente el tamaño del PCB. El PLL ésta vez ha cambiado al SAA1057, las demás etapas amplificadoras de RF es igual a sus antecesores. Cuatro pulsadores con acceso a menú, permiten ahora cambiar la frecuencia y la 2da línea del LCD.

Espero que les agrade ésta nueva versión y si hay sugerencias y/o comentarios al respecto trataré de responderlas en la medida que el tiempo me lo permita.

Saludos.
hola,¿podrias poner las medidas de la pcb?
Lo digo porque a la hora de imprimir seria mas comodo.
Gracias
 
hola,¿podrias poner las medidas de la pcb?
Lo digo porque a la hora de imprimir seria mas comodo.
Gracias

Redfield29 no creo que conteste a éstas alturas. Abre el archivo con algún programa que te permita verlo a medidas reales de impresión, y mira a ver si el tamaño es bueno.
De todos modos tienes algunos componentes, (Por ejemplo los integrados), sobre los que te puedes referenciar para obtener las medidas exactas de la placa. Con un Photoshop, es sencillo.

Saludos.
 
Última edición:
hola tengo un codigo que no engancha en basic donde puede estar el fallo parece que no me envia el word D

Device 16F628A
Xtal 4
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Declare LCD_Interface 4 ' imposta dati lcd a 4 fili
Declare LCD_Lines 2 ' imposta linee lcd
Declare LCD_DTPin PORTB.0 ' assegna porta C4 alla DT lcd
Declare LCD_ENPin PORTA.3 ' assegna porta B6 alla EN lcd
Declare LCD_RSPin PORTA.2 ' assegna porta B5 alla RS lcd
All_Digital true


Dim mem2 As Byte
Dim mem1 As Byte
Dim frequenza As Word
Dim ultimafreq As Word
Dim frequenzaR As Word

Symbol Up = PORTA.0
Symbol Down = PORTA.1
Symbol lock = PORTA.4
Symbol clb = PORTB.4
Symbol dlen = PORTB.5
Symbol dataa = PORTB.6
''''''''''''''''''''''''''''''''''''''''''''''''''''
TRISA.0 = 1
TRISA.1 = 1
TRISA.4 = 1
TRISB.4 = 0
TRISB.5 = 0
TRISB.6 = 0
clb = 0
dlen = 0
dataa = 0

DelayMS 200


' WordB 01110110010101
'0101 'Controllo del pin 18
'0000=1; 0001= contatore prg; 0100=Frec. Ref.; 0101=Lock/Unlock
'1 BRM controllo del bus 1 = sw automatico; 0 = sempre in ON
'00 PDM Detector di fase digital 0X = on/off automatico; 10 = on; 11 = off
'1 SLA Modo Latch A 1 = síncrono; 0 = asíncrono
'1 SB2 on/off ultimi 8 bits della wordB 1 = on; 0 = off.
'(da SLA a T0) 0, gli ultimi 8 bit sono collocati in 00000000
'1110 Guadagno di corrente per la tensione di errore 0000=0.023; 0001=0.07; 0010=0.23; 0110=0.7; 1110=2,3
'0 Freq.rifermento 0 = 1Khz; 1 = 1.25Khz
'1 modo FM/AM; 1 = FM; 0 = AM


EWrite 0,[232,3,0] ' EEPROM 3,232 = 1000 = 100.0 Mhz
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
mem1 = ERead 0
mem2 = ERead 1
frequenza = mem2 * 256 +mem1
ultimafreq = frequenza
Low dlen
DelayMS 100
Print At 1,1,"TEST PLL 1 "
DelayMS 1000 'wait
Cls

'''''''Write WordB SAA1057


dlen = 1
SHOut dataa, clb, 1, [01110110010101]
dlen = 0
dataa = 0
DelayUS 5
clb = 1
DelayUS 1
clb = 0
DelayMS 100
GoSub wiritefreq ' write @saa1057
GoSub writelcd 'write @ LCD
Cls
DelayMS 100
'*******************START********************
loopstart:
GoSub writelcd
If Up=1 Then
DelayMS 200
frequenza = frequenza + 1
If frequenza < 1081 Then
Else
frequenza = 1080
EndIf
EndIf

If Down = 1 Then
DelayMS 200
frequenza = frequenza-1
If frequenza > 874 Then
Else
frequenza = 875
EndIf
EndIf
DelayMS 1
'''''''''''''''''''''''''''''''
If lock = 0 Then
Print At 1,1, "Unlock"
lock = 0
Else
Print At 1,1, "Lock "
lock = 1
EndIf


DelayMS 1
GoTo loopstart
'''''''''''''''''''''''''''''''''''write @saa1057
wiritefreq:
frequenzaR = frequenza * 10
dlen = 1
SHOut dataa, clb, 1, [frequenzaR\16]
dlen = 0
dataa = 0
DelayUS 5
clb = 1
DelayUS 1
clb = 0
DelayMS 1
Return
'***************************************************
writelcd:


mem1 = frequenza
mem2 = (frequenza-mem1)/256

If ultimafreq <> frequenza Then
EWrite 0, [mem1]
EWrite 1, [mem2]
EndIf
GoSub wiritefreq
If frequenza < 1000 Then

Print At 1,9, Dec (frequenza/10), ".", Dec1 frequenza, "Mhz"
Print At 2,1,@frequenzaR
Else

Print At 1,9, Dec (frequenza/10), ".", Dec1 frequenza, "Mhz"
Print At 2,1,@frequenzaR
EndIf


Return

End
kakemarake a que código corresponde este texto?
 
Buenas noches desde España, estoy viendo el PLL y puede que me anime a montarlo pero viendo las fotos del post original de Redfield se observa que la resistencia de 22 ohmios (R18) está quemada, he leido en el hilo que hablan de cortocircuitarla, osea, no colocar ninguna resistencia por lo que he podido leer.

Por otro lado he visto otro mensaje donde se habla de un "plagio" en tesis en la universidad de Ica en Perú... hasta se habla de diferentes archivos HEX para el 16f628a, mi pregunta definitiva: ¿con todo el contenido que Redfield publicó originalmente es posible llevar a buen puerto la construcción del PLL?

Desde siempre he querido armar un PLL y experimentar con el, siempre he estado engendrando con las fases de potencia y hasta con codificadores estéreo pero me queda la espinita de armar desde cero un PLL, en su dia barajé armar el verónica pero había muchos componentes dificiles de conseguir.

Creo que si el primer 2N4427 se sustituye por un 2N3866 que proporcione a su salida sobre 500 mW y en la fase final sustituimos el 4427 por un 2N3924 o un 2N6255 podremos tener más de 1 W, diría que con el 2N6255 rozariamos los 3 W.
 
Hola....Lo que te puedo aportar es que el 2N3866 no tiene mejores características a esa frecuencia y tensión de trabajo que el 2N4427 al contrario.

La resistencia es solo para que no caliente tanto el 7805 y bajar parte del voltaje que "sobra" antes de entrar a este y solo hay que aumentar el tamaño(disipación) si tiene de 1/4W pasar a 1W y separarla un poco del PCB.

Generalmente y a menos que se haga de ex-profeso no es buena idea poner etapas que generan calor( ejemplo, etapas amplificadoras ) cerca de donde esta un oscilador LC ya que este, atenta contra la estabilidad del mismo.

Nunca lo he armado por lo que no puedo decir nada mas al respecto pero hay bastante información a lo largo de este tema, en esta publicación.

Saludos.

Ric.
 
Por otro lado he visto otro mensaje donde se habla de un "plagio" en tesis en la universidad de Ica en Perú... hasta se habla de diferentes archivos HEX para el 16f628a, mi pregunta definitiva: ¿con todo el contenido que
Hola....Lo que te puedo aportar es que el 2N3866 no tiene mejores características a esa frecuencia y tensión de trabajo que el 2N4427 al contrario.

La resistencia es solo para que no caliente tanto el 7805 y bajar parte del voltaje que "sobra" antes de entrar a este y solo hay que aumentar el tamaño(disipación) si tiene de 1/4W pasar a 1W y separarla un poco del PCB.

Generalmente y a menos que se haga de ex-profeso no es buena idea poner etapas que generan calor( ejemplo, etapas amplificadoras ) cerca de donde esta un oscilador LC ya que este, atenta contra la estabilidad del mismo.

Nunca lo he armado por lo que no puedo decir nada mas al respecto pero hay bastante información a lo largo de este tema, en esta publicación.

Saludos.

Ric.
Efectivamente, llevas mucha razón porque el calor que irradia puede afectar al VCO y hacerlo más inestable. De todas maneras estoy valorando construir el verónica "de toda la vida".
 
Última edición:
No soy un experto en el tema pero creo haber entendido que hay distintos archivos hex por que también hay distintas placas con distintos IC PLL(SAA1057, LM7001, etc).

Hay infinidad de proyectos por la WEB con diferentes juegos de IC controladores de algún IC PLL(carga Serie, I2C, etc), tipos de componentes y tipo de control desde un simple pulsador para subir y bajar hasta con un teclado con LCD pasando por los eternos Jumper's o Dip Switch en la región de FM comercial como para entretenerse un rato largo.

Ric,
 
No soy un experto en el tema pero creo haber entendido que hay distintos archivos hex por que también hay distintas placas con distintos IC PLL(SAA1057, LM7001, etc).

Hay infinidad de proyectos por la WEB con diferentes juegos de IC controladores de algún IC PLL(carga Serie, I2C, etc), tipos de componentes y tipo de control desde un simple pulsador para subir y bajar hasta con un teclado con LCD pasando por los eternos Jumper's o Dip Switch en la región de FM comercial como para entretenerse un rato largo.

Ric,
Jo soy un perfecto ignorante en desahollo de Software para programar los CIs PLLs modernos , jajajajajajajaja
Por encuanto me conformo en saper como calcular y programar paralelamente los Dip Switch .
Saludos cordeales desde Brasil!.
Att,
Daniel Lopes.
 
Don Daniel Lopes es similar a lo que haces para los "clásicos" de carga paralela MC145151 o 2 pero nada mas que usando otro método y lo calculado se manda en el formato que el IC "entienda". Solo cambia la forma de comunicarse con él para que haga lo que nosotros pretendemos.

Saludos.

Ric.
 
Siii , coincido plenamente caro Don ricbevi , pero lo que se pasa e que jo nunca tuve bueno relacionamento/entendimento con tecnicas Digitales y peor aun con desahollo de Software.
Tengo 10 CIs BA1414K que es un PLL progamado serialmente y aun contiene internamente un encoder estereo , pero NO se como desahollar un Software para cargar un PIC o un uP para progamar serialmente ese CI , comunicar con una Pantalla LCD , botoneras para setar frequenzias "arriba" y "abajo" , etc.....
O sea tengo que pagar $$ a algun capo en ese tema para puder ayudarme en esa enpreita.
Att,
Daniel Lopes.
 
Hoy doy mi aporte que me gustaría con gusto complementarlo con el nuevo proyecto de Redfield29. Mi aporte es un detector de ROE digital que puede tomar la lectura de directa y reflejada una fuente de RF para a trevés de un pics 16F873 en las escalas de frecuencia de la banda comercial. En el archivo zip está el archivo .hex el esquema general con la pcb.

Si Redfield29 me lo permite puedo ir trabajando en la integración de su nuevo diseño de PLL con el sistema de SWR digital y diseñar una nueva versión de PLL que pueda fijar la frecuencia por la LCD y a su vez que pueda detectar en tiempo real la potencia de salida y de retorno y se pudiera agregar una función adicional, que si la potencia de retorno supera en SWR 3.0 dispare una alarma de advertencia en la LCD.

Bueno amigos espero les guste la idea saludos, y de nuevo gracias…

hola amigo jhonattan2185 e visto tu pll sintetizador se ve muy sencillo de la placa la construcción de la misma falto algo que es la programación del pic y como poder programarlo a este pll, quiero referirme a como programar la frecuencia de transmisión, y de como ponerle su parte de potencia como es el previo de rf para poder conectarlo al power de rf quiero decir que ,falta información de la fuente y de su previo de rf o booster como lo llamen para la construcción de un excitador de fm listo para su ensamblaje ok saludos desde Lima Perú.
 
para Redfield ,espero usted pueda contestarme por que se produce la inestabilidad en la frecuencia casi en todos los circuitos de fm que hice en la fecha ,circuitos simples que al rato se mueven de frecuencia solo ,, es por el calor ??? y luego otra pregunta los que funcionan con pll ,como se produce la estabilidad ,, gracias por anticipado ..
 
para Redfield ,espero usted pueda contestarme por que se produce la inestabilidad en la frecuencia casi en todos los circuitos de fm que hice en la fecha ,circuitos simples que al rato se mueven de frecuencia solo ,, es por el calor ??? y luego otra pregunta los que funcionan con pll ,como se produce la estabilidad ,, gracias por anticipado ..
Hummmmm no creo que Don Redfield te conteste , el ya nomas conparece por aca (foro) aomenos a 2 años.
Att,
Daniel Lopes.
 
para Redfield ,espero usted pueda contestarme por que se produce la inestabilidad en la frecuencia casi en todos los circuitos de fm que hice en la fecha ,circuitos simples que al rato se mueven de frecuencia solo ,, es por el calor ??? y luego otra pregunta los que funcionan con pll ,como se produce la estabilidad ,, gracias por anticipado ..
Yo le contesto amigo...

La deriva de frecuencia en un transmisor fm basado en vfo (oscilador de frecuencia variable) se debe a varios factores no solo el calor, tambien construccion mecanica, estabilidad del voltaje de alimentacion,blindaje y muy importante los componentes que se utilizan.
Si se da el tiempo de buscar esquemas de osciladores en la web se dara cuenta que siempre se utilizan condensadores de coeficiente positivo y negativo para compensar las variaciones de temperatura. Ahora si imagina una bobina de alambre de 1mm de diametro (voy a ser exagerado)por ejemplo a 20°c y ese alambre lo calentamos a 30°c ese metal se expande por lo tanto la inductancia de la bobina se vera afectada.
Otro ejemplo es que al usar un transistor bipolar como oscilador este tendra mayor corrimiento debido a la construccion interna del transistor bipolar. Por eso la mayoria utiliza fet ya que el gate del fet no se ve afectado por la temperatura.
Eso le puedo explicar respecto a los osciladores y valido para cualquier frecuencia.

Ahora que es un PLL basicamente es un lazo enganchado en fase. Un pll esta costituido por bloques electronicos basicos estos son un oscilador de referencia (el cristal externo), un divisor de referencia( con este determinamos el paso de frecuencia en fm 50 100 200 khz tipicamente), un filtro de lazo(con este convertimos los pulsos que salen del comparador en una tension dc limpia que controla un diodo varicap en el circuito oscilador) y un divisor N (con este determinamos el dato para la frecuencia deseada a traves de dip switch), un preescaler (aveces incorporado dentro del chip pll es el encargado de lograr que una frecuencia mayor pueda ser utilizada por un pll con una frecuencia de entrada menor.
Por ejemplo el pll MC145151P2 de motorola que solo llega a 18mhz, entonces se hace necesario el uso de un prescaler que no es mas que un divisor digital por un valor fijo por ejemplo ÷64, y por ultimo tenemos el mas importante de todos el comparador. Que hace esta seccion del pll?. Éste compara el valor de frecuencia obtenido desde el divisor R y el valor obtenido por el divisor N, por ejemplo divisor R tiene un valor fijo de 400khz y el divisor N =401khz (este valor depende directamente del oscilador que se esta controlando que para tal efecto llamaremos VCO (oscilador controlado por voltaje), como las frecuencias son levemente diferentes el pll enviara una tension de correccion desde el comparador atraves del filtro de lazo(sea esta correccion positiva o negativa) hasta que ambos valores esten iguales.

En pocas palabras espero haber explicado un poco el funcionamiento interno del pll. Usted puede asumir que el comparador es como una balanza que mantiene el equilibrio de esta forma la frecuencia se mantiene fija.
Atte Gabriel7747.image016.jpg
 
Última edición por un moderador:
Muchas gracias por atenderme don Grabiel ,me ha sido muy útil su explicación ,necesitaba una explicación coherente como la dicho y me será de gran utilidad en presente y futuro ,para nuevos proyectos , un abrazo muy atentamente ..
 
Hola,
Deseo hablar con todos ustedes sobre el transmisor fm pll muy antiguo, ¿podría alguien aquí saber cómo entender que este código de piezas tiene un paso de 50 Khz? usar 3.2Mhz de cristal.

Aquí está el código:
Código:
 'If FREKANS_step > 2160 Then FREKANS_step=1750 'içerik 10800 dan büyük ise 8750 yap
  If FREKANS_step > 1080 Then FREKANS_step=875 'içerik 10800 dan büyük ise 8750 yap
 
  FREKANS_Onda = FREKANS_step//10

  FREKANS_Tam =  FREKANS_step/10

Estos son códigos RDVV


Gracias,
 
Hola,
Deseo hablar con todos ustedes sobre el transmisor fm pll muy antiguo, ¿podría alguien aquí saber cómo entender que este código de piezas tiene un paso de 50 Khz? usar 3.2Mhz de cristal.

Aquí está el código:
Código:
 'If FREKANS_step > 2160 Then FREKANS_step=1750 'içerik 10800 dan büyük ise 8750 yap
  If FREKANS_step > 1080 Then FREKANS_step=875 'içerik 10800 dan büyük ise 8750 yap

  FREKANS_Onda = FREKANS_step//10

  FREKANS_Tam =  FREKANS_step/10

Estos son códigos RDVV


Gracias,

No se entiende la consulta pero la forma de tener Step de 50KHz con cristal de 3.2MHz, es si se dividió este último por un factor de 64 ya que 3200KHz / 50KHz = 64.

Esa linea del condicional If esta para que llegado el caso de que se llegue a la frecuencia máxima de 108MHz, loa variable se hace 87.5MHz para que se mantenga dentro de la banda de FM comercial.

Las otras dos son operaciones matemáticas para resolver el tema de los decimales cuando se opera con enteros. Algo de ello lo tienes aquí tratado.
 
Atrás
Arriba