Sintetizador  LMX1501A - MB1501 - MB1504

I n t r o d u c c i ó n

El circuito integrado LMX1501A es un PLL fabricado por National Semiconductor para ser usado en teléfonos móviles y otros equipos de comunicaciones. Hoy día (finales de 2019) es el único chip PLL moderno que he podido conseguir en formato SMD tamaño SOP16 (separación entre pines 1,27 mm).

OJO : Existe un chip similar, el LMX1511T, que tiene 20 pines y un encapsulado mas pequeño, con separación entre pines de sólo 0,65 mm. No lo he probado porque, debido al poco espacio entre pines (0,65mm) , es difícil hacerle un circuito impreso adecuado usando métodos caseros.

El LMX1501A tiene una cobertura de frecuencias garantizada desde 100 Mhz hasta 1100 Mhz, aunque se ha usado con éxito en la Banda de 1240 a 1300 Mhz.

El circuito integrado MB1501 , fabricado por Fujitsu, parece totalmente compatible con el LMX1501A a nivel de estructura interna y programación de sus registros. Su cobertura de frecuencias es de 10 Mhz a 1100 Mhz, aunque es probable que alcance algo más.

El  LMX1501A y el  MB1501 tienen un prescaler interno de doble módulo que es conmutable entre los factores de división 128/129 y 64/65.

El circuito integrado MB1504 , fabricado por Fujitsu, es compatible a nivel de pines con los anteriores, pero está destinado a trabajar en frecuencias más bajas: desde 10 Mhz hasta 520 Mhz. Su Prescaler interno de Doble Módulo es conmutable entre los factores de división 64/65 y 32/33. Salvo por esta diferencia, sus registros internos y programación son compatibles con MB1501 y LMX1501A.
 
En esta página presento mi diseño de PLL y microcontrolador PIC en la misma plaquita de circuito impreso, con la intención de acoplarlo a cualquier transmisor basado en VCO y conseguir así un transmisor sintetizado.


Esquema teórico

El PLL está formado por el LMX1501A rodeado de unos pocos componentes. En el esquema está marcado como IC1. El circuito es básicamente el que figura en la documentación de National Semiconductor. Yo le he puesto un Cristal de Referencia de 6,4 Mhz (cristal estándar) porque tengo varios comprados hace tiempo. Se pueden utilizar cristales de otras frecuencias (por ejemplo 12,8 Mhz), pues el Divisor de Referencia del LMX1501A es programable.

El LMX1501A se alimenta a 5 V. Esto implica que el voltaje de control que entrega al VCO puede variar desde 0 hasta 5 V. (salida Vvco A).

Pero si  nuestro VCO necesita un voltaje de sintonía mayor, por ejemplo desde 0 hasta 10 V, será necesario amplificar de alguna forma el voltaje que entrega el LMX1501A. Esta es la función de IC2 , un LM258 ( doble amplificador operacional ) en cápsula SOP8, que entrega el voltaje amplificado por su pin1. (salida Vvco B). En este caso, alimentaremos IC2 desde la entrada marcada como + 8 ...30V, según el rango de voltajes que requieran los varicap del VCO usado. El voltaje de salida de IC2 puede descender hasta 0 V sin problema.

El LMX1501A se programa mediante el Bus de 3 Hilos (Data, Clock , Latch Enable). Esta es la función del MicroControlador PIC, un 16F628. Es compatible a nivel de pines con el obsoleto 16F84.

El esquema y la plaquita de circuito impreso tienen conexiones (islas) disponibles para conectar el PIC con varios pulsadores o interruptores y también un Display LCD alfanumérico estándar. Su funcionamiento depende del programa que grabemos en el PIC. En las aplicaciones más sencillas, en las que sólo necesitamos que el PLL genere una o dos frecuencias, no usamos display y sólo necesitamos un interruptor para seleccionar una u otra frecuencia.  En aplicaciones más complejas, se pueden usan varios pulsadores y un display.

Esquema del circuito

LISTA DE COMPONENTES:

R1 a R6 ----> 5K6 smd
R21 -------->  33K smd
C7 -------->  47 uF , 16 V.
R7 ----------> 39K smd
R22 --------> 100K smd
C8 -------->  1 nF smd
R8 ----------> 10K smd
R23 -------->  10K smd
C9 --------> 10 nF smd
R9 ----------> 5K6 smd
R24 -------->  1 M  smd
C14 ------->  47 uF , 50 V.
R10 , R11 --> 47K smd
R25 --------> 100K smd
CV1 -------> Trimmer 20 pF
R12 a R14 --> 150 R smd
R26 --------> 100K smd
DZ1 --------> Zener 3V9
R15, R16 --->  0 R
R27 ----> 100 R  o mayor
IC1 --> LMX1501A  smd
R17 ---------> 0 R   para LMX1501A
C1 ---------> 100 nF smd IC2 --> LM258  smd
R17 a R20   dependen del PLL,
C2 ---------> 22 pF IC3 --> 16F628A
frecuencia VCO  y step (ver siguiente tabla)
C3 ---------> 33 pF Q1, Q2  --> BC558
C10 a C13   dependen del PLL,
C4 ---------> 68 pF XT1 ----> 6,4 Mhz
frecuencia VCO y step (ver siguiente tabla)
C5, C6 ----> 100 nF smd
 

Valores ejemplo para LMX1501A y MB1504 indicados por sus fabricantes en sus respectivas Data Sheet:
LMX1501A   VCO = 886 Mhz   Step = 25 Khz
C13 = 2200 pF   R18 = 8K2   C10 = 18 nF   R19 = 120K   C11 = 78 pF   R20 = 0 R   C12 = No   R17 = 0 R
MB1504   VCO = 520 Mhz   Step = 12,5 Khz
C13 = No   R18 = 1K   C10 = 10 uF   R19 = 3K9   C11 = 100 nF   R20 = 3K9   C12 = 1 uF   R17 = 1K


Esta es la Hoja de Características del LMX1501A (archivo PDF)


Aunque los MB1501 y MB1504 son similares al LMX1501A , éste es más moderno y por ello el Filtro del Bucle es diferente: no necesita la resistencia R17 (se sustituye por un puente) pero necesita el condensador C13.
Por el contrario, los MB1501 y MB1504 necesitan la resistencia R17 pero habitualmente no usan el condensador C13.

Los componentes R20 y C12 forman un filtro pasabajos adicional y no suelen ser necesarios con el LMX1501A.
En este caso, la salida de voltaje de control al VCO (salida Vvco A ) se toma en el punto de unión entre R19 y C11.

En cuanto al PIC, aunque usemos un PIC 16F84 no necesitamos cristal, sino que usamos su "Oscilador RC" que consigue una frecuencia de reloj de unos 4 Mhz mediantte R1 (5K6) y C2 (22pF).

En lugar del 16F84 yo uso hace tiempo el PIC 16F628 , que tiene un Oscilador RC totalmente interno y por tanto no es necesario montar R1 ni C2. El tipo de oscilador se elige en el momento de programar el PIC. Si en el programador seleccionamos "Internal RC I/O", los pines 15 y 16 del 16F628 quedan disponibles para I/O (Entradas/Salidas).

El circuito especial de Reset usado aquí está formado por Q1, DZ1 y las resistencias asociadas. Es necesario para asegurar que el PIC reinicie y por tanto reprograme al LMX1501A siempre que el voltaje de alimentación descienda por debajo de unos 4 V. (y vuelva a subir a 5 V.)


M o n t a j e

Este es el diseño de la  placa de circuito impreso a escala 1:1  (archivo PDF)

La placa de circuito impreso mide 35 x 80 mm. Es de doble cara: la cara superior lleva las pistas y la cara inferior es totalmente de cobre porque es el plano de masa. Los componentes (muchos de ellos SMD) se montan por el lado de las pistas. Las resistencias y los condensadores SMD son del tamaño 1206. Los condensadores electrolíticos son convencionales.

La placa tiene pocos taladros, sólo los necesarios para dar masa a las pistas y a los componentes que lo necesitan.

En lugar del LMX1501A, es posible montar en esta placa de circuito impreso el MB1501, o bien el MB1504 , siempre que éstos sean SMD (cápsula SOP16) , pues todos ellos son compatibles a nivel de pines. A pesar de que los MB1501 y MB1504 son 1,5 milímetros más anchos que el LMX1501A, este circuito impreso está preparado para ellos.


Esta es la cara de pistas y de componentes:

Componentes

Esta es la disposición de componentes sin las pistas, para mayor claridad:

Cara de componentes


OJO: La silueta de Q2 está dibujada al revés. Su Colector debe ir a R23, tal como figura en el esquema.

Cada uno de los taladros debe llevar un hilo que conecte la cara de pistas y componentes con la cara posterior de masa.

OJO: Antes de soldar los pines de IC1, colocar el hilo en el taladro que tiene debajo, para darle masa a su pin 6.

Los pines de masa de algunos componentes convencionales deben ser soldados también por la cara de pistas: CV1, C10, C12, C14.

Los condensadores C10 y C12 pueden ser de valores bajos (según la Frecuencia y Step) y por tanto no-electrolíticos y tipo SMD. Pero no debemos olvidar pasar un hilo por sus respectivos taladros y soldarlo por ambas caras para dar masa a sus respectivas pistas.
 
En la cara de pistas y componentes hay que colocar un puente de hilo aislado. Está cerca de R7 y Q1 , dibujado con trazo grueso.

El uC PIC (IC3) va montado en un zócalo para poder intercambiarlo y así hacer posibles las pruebas. Los pines del zócalo de extienden horizontalmente y se sueldan a la cara de pistas y componentes, como si se tratase de un componente SMD.

Caso de no usar Display, no se monta P1.


Fotos de las fases de fabricación de la placa de circuito impreso:

PLL004 pcb , fase A

PLL004 pcb, fase B

PLL004 pcb , fase C


Foto del montaje completado:


Prototipo



Primeras pruebas

He probado el  LMX1501A junto con un VCO de UHF que tenía construído. Este VCO necesita un voltaje de control en el rango de 0 V. a 5 V. , por lo que he usado la salida VvcoA del PLL.

Tal como indiqué más arriba, los componentes R20 y C12 forman un filtro pasabajos adicional y no suelen ser necesarios con el LMX1501A.
Por tanto, la salida de voltaje de control al VCO (salida Vvco A ) la tomé en el punto de unión entre R19 y C11.

Todo ha funcionado bien: el PLL ha sincronizado al VCO en la frecuencia de 433,900 Mhz, dentro de la Banda ISM que va desde 433,050 Mhz hasta 434,750 Mhz.

 La portadora generada es limpia y estable. El enganche en fase (Lock) es muy rápido.


Pruebas posteriores

El VCO usado en esta segunda prueba necesita un voltaje de control en el rango de 0 V. a 8 V.
Por tanto, con este segundo VCO he usado la salida VvcoB , la cual puede suministrar un rango de voltajes amplificado respecto al que entrega la salida VvcoA (desde 0 V. hasta 5 V.)
La amplificación se determina por la relación entre R25 y R26, de acuerdo a la siguiente fórmula:
        R25 + R26
A = --------------
             R26
En esta prueba, al ser suficiente un rango entre 0 y 10 V. , es suficiente una amplificación por 2. Por tanto, según la fórmula, los valores de R25 y R26 deben ser iguales. He usado 100 K para ambas resistencias, con lo que la fórmula indica una amplificación de 2 :
         100 K + 100 K
A = ------------------- = 2          Por tanto, mientras el voltaje de VvcoA varía desde 0 V. hasta 5 V, el voltaje de VvcoB varía desde 0 V. hasta 10 V.
                100 K

Por otro lado, hay que recordar que los componentes R20 y C12 forman un filtro pasabajos adicional y no suelen ser necesarios con el LMX1501A.
En este caso, C12 no se monta y R20 será de 0 R (se sustituye por un puente) , a fin de que el voltaje de la salida VvcoA llegue al punto de unión entre R24 y el pin 3 de IC2.

Al probar la salida VvcoB del PLL, observé que al conectarla directamente al VCO, el voltaje en VvcoB comenzó a oscilar ampliamente. Esto sucedió porque el VCO tiene, en su entrada de voltaje de control, un condensador de 1 nF que va a masa. Un condensador de este valor (o superior), aplicado al pin 1 del LM258 provoca la oscilación de éste.
Esa oscilación se eliminó intercalando una resistencia de 100 R (o mayor) en la salida VvcoB , tal como podemos ver en el esquema actual, revisado en marzo de 2023. Esta  nueva resistencia es R27.
De esta forma, el funcionamiento de la salida VvcoB ya es correcto.

Componentes críticos del PLL

La siguiente tabla muestra los componentes criticos del Filtro del Bucle cuando usamos el LMX1501A.
 Estos componentes determinan la rapidez de respuesta y la estabilidad.
 Los valores mostrados me han dado buen resultado en las frecuencias y step indicados:

Frecuencias VCO
StepR17R18R19R20C10C11C12C13
1240 - 1300 Mhz25 Khz0 REn pruebasEn pruebasEn pruebasEn pruebas?En pruebas
430 - 440 Mhz25 Khz0 R680 R3K30 R3,3 uF100 nF---100 nF
430 - 440 Mhz12,5 Khz0 R680 R3K30 R3,3 uF100 nF---100 nF


Tiempo de enganche en fase del PLL

En las pruebas del LMX1501A en la Banda UHF de 430 a 440 Mhz usando un Step de 12,5 Khz , para un cambio de frecuencia de 7,6 Mhz he medido un tiempo inferior a 10 milisegundos.

El primer VCO utilizado para esta prueba es un circuito experimental que monté en los años 90 , basado en un BFR96S y varicaps BB405. Está alimentado a 5 V. Con el  voltaje de control que puede suministrar el LMX1501A ( salida VvcoA , desde 0 hasta 5V ) , este VCO experimental cubre ampliamente la Banda de 430 a 440 Mhz.

Con el segundo VCO, que requiere un voltaje de control entre 0 y 8 V, para el mismo cambio de frecuencia de 7,6 Mhz el tiempo de enganche en fase es también inferior a 10 milisegundos.




Programación del LMX1501A

El LMX1501A es más complejo que el TSA5511, puesto que tiene un Divisor de Referencia de 14 bits y un Divisor Programable de 18 bits con Prescaler de Doble Módulo.
Esta mayor complejidad le proporciona mayor versatilidad, aunque lógicamente hace que su programación sea un poco más complicada.

El cálculo del valor de los registros y su envío al LMX1501A es así:

1 - Registro del Divisor de Referencia y Modo del Prescaler:
 
1.1 - Decidir la frecuencia de referencia del comparador de fase (en Khz). Estos Khz serán el Step (Paso del PLL o espacio entre frecuencias). En este ejemplo, elegimos 25 Khz.

1.2 - Calcular el factor a cargar en el divisor de referencia para que entregue 25 Khz partiendo de nuestro cristal de 6,4 Mhz:

         6400 Khz
R = ---------------- = 256
           25 Khz

      Por tanto, de los bits S1 a S14, sólo el de "peso" 256 estará a 1. Es el bit S9. Los demás, a 0. (Ver punto 1.4)

1.3 - Decidir si el Prescaler de Doble Módulo debe trabajar en modo 128/129 o bien 64/65.
        Aquí, para frecuencias UHF (y también SHF), viene bien en modo 128/129, para lo cual ponemos a 0 el Bit  " P ". (Ver punto 1.4)

1.4 - El Registro de Referencia y Prescaler quedará así (vista según la documentación del LMX1501A) :

 Ultimo                                                                                             Primero en enviar
          C  S1 S2 S3   S4 S5 S6 S7   S8 S9 S10 S11  S12 S13 S14  P
          1    0   0   0     0   0   0    0      0    1    0    0       0     0     0    0
                lsb                                                                          msb
          C   Peso 1                                                          Peso 8192    P
          --------------     -------------     -----------------    -----------------
                     1                    0                       2                        0                   <=== Leer el valor Hex de derecha a izquierda.             
                       --- Byte 0 ---                            --- Byte 1 -----
                              $01                                           $02                                <=== Hex total $0201

El Bit " C " , para este registro debe enviarse a 1.

Incluyendo el Bit "C" y el Bit "P", en total son 16 Bits, luego parece conveniente agrupar todos en la variable tipo Word  Rpll.
Entonces, Rpll = $0201 . Sus dos Bytes son: Rmsb = $02 , Rlsb = $01

Estos valores nunca cambian durante el funcionamiento normal del PLL.


2 - Registro del Divisor Programable:


2.1 - Calculamos el factor de división del Divisor Programable para nuestra frecuencia de 433,900 Mhz:

                  433900 Khz
        N =  ---------------- = 17356
                     25 Khz

        En Hexadecimal, N = $43CC

2.2 - Estamos usando el Prescaler de Doble Módulo en el modo 128/129.
         En este modo, el Divisor Programable es de 18 Bits , designados S1 a S18 en la documentación del LMX1501A.
         El registro del Divisor Progranmable se verá así con el valor N de 17356 , o sea, $43CC :

 Ultimo                                                                                                                Primero en enviarlo
    C       S1 S2 S3 S4  S5 S6 S7 S8  S9 S10 S11 S12  S13 S14 S15 S16  S17 S18
              lsb                                                                                                         msb
     0        0   0   1   1     0   0   1    1    1     1     0     0      0     0      1     0       0     0
              ---------------   --------------   ------------------    --------------------     -------
                      C                    C                     3                            4                      0          <= Leer Hex de derecha a izquierda
                       --- Byte0 -----                         ------ Byte1 ------                 (Dos Bits)
                             $CC                                             $43                                 $0           <= $043CC

Vemos que nuestro N = $43CC  (en decimal 17356) necesita sólo 16 bits: desde S1 hasta S16.
Los bits S17 y S18 están a 0  para esta frecuencia de 433,900 Mhz y seguirán a 0 hasta frecuencias mucho más altas.
Por tanto, aquí es suficiente trabajar con un N de 16 bits, agrupando desde S1 hasta S16 en la variable tipo Word  Npll.
Entonces,  Npll = $43CC .  Sus dos Bytes son: Nmsb = $43 , Nlsb = $CC

El bit "C" debe enviarse a 0 para este registro.

Para cargar S18, S17, Npll y C en el registro del Divisor Programable, hay que enviar al PLL lo siguiente:

- Un Bit a cero (S18)
- Un Bit a cero (S17)
- La variable Npll (Bits S16 a S1)
- Un Bit a cero ( C )
- Poner a 1 la línea Latch
- Poner a 0 la línea Latch

Para subir o bajar de Frecuencia, hay que incrementar o decrementar Npll y volver a enviar al PLL lo anterior.


3 - Envío de estas variables al PLL

La subrutina "enviaPLL" se encarga de enviar correctamente las variables y bits al PLL.


A continuación podemos ver mi subrutina "enviaPLL", basada en la instrucción shiftout del Pic Basic Pro versión 2.45
(Esta Subrutina es válida sólo cuando el prescaler de doble módulo se selecciona en 128/129)

'-----------------------
enviaPLL:
'
' Líneas, pines LMX1501A y pines 16F628
'
' Datos ----- pin 10  <---- PortB.0  pin 6
' Clock ----- pin  9  <---- PortB.1  pin 7
' Latch ----- pin 11  <---- PortA.4  pin 3  OJO: Pin SALIDA del PortA
'
'Enviar datos al registro R del PLL :
'
'Envía un bit a 0 - --> Selecciona prescaler a 128/129
'Envía  R(14bits) ---> Valor del divisor de referencia
'Envía un bit a 1  ---> Bit control a 1  (Indica al PLL que cargue lo anterior en el registro R).
'En total son 16 bits que he agrupado en la variable Rpll
'Se envía primero el bit más significativo de cada variable (modo 1 de la instrucción shiftout )
'
shiftout Datos,Clock,1,[Rpll\16]
high Latch
low Latch
'
'
'Enviar datos al registro N del PLL:
'
'Envía el bit S18 a 0
'Envía el bit S17 a 0
'Envía los 16 bits siguientes (S16 a S1) agrupados en la variable Npll
'Envía un bit a 0  ---> Bit control a 0  (Indica al PLL que cargue lo anterior en el registro N).
'En total se envían ahora 19 bits.
'Se envía primero el bit más significativo de cada variable (modo 1 de la instrucción shiftout )
'
shiftout Datos,Clock,1,[0\1]
shiftout Datos,Clock,1,[0\1]
shiftout Datos,Clock,1,[Npll\16]
shiftout Datos,Clock,1,[0\1]
high Latch
low Latch
'
return
'-----------------------


 
Programa de pruebas para el LMX1501A

La subrutina detallada arriba es el núcleo del programa de pruebas que he grabado en el PIC para probar el LMX1501A. El programa es muy elemental: sólo configura al PLL para 433,900 Mhz y se detiene. Su tamaño en el PIC es de sólo 247 Bytes.

Este es el listado Fuente :  LMX1501A_628_004.pbp   Está escrito para el compilador Pic Basic Pro 2.45

Este es el archivo Ejecutable, para cargar en un PIC 16F628A : LMX1501A_628_004.hex

Un programa más práctico debería permitir subir y bajar de frecuencia y mostrar ésta en un display. Eso es lo que hace mi programa ejemplo para el TSA5511, que podemos encontrar en mi página  Sintetizador TSA5511

Actualmente estoy modificando ese programa ejemplo del TSA5511 para usarlo con el LMX1501A en Bandas de UHF y SHF.



Continuará ...


Obras...



Si tienes cualquier duda, puedes escribirme:   ea7glu arroba gmail punto com

EA7GLU, Diciembre de 2019.             Actualizado a finales de marzo del 2023.    

 
Volver a la Página de Cacharreo de EA7GLU