martes, 2 de junio de 2015

Transceptor multibanda de HF, conversion directa con phasing y SDR (En desarrollo)

Comienza un nuevo desafio; hacer un equipo de radioaficionado para HF multibanda. Por suerte la tecnologia al alcance hoy en dia hace que no tengamos que enfrentarnos a resolver todos los subsistemas de un equipo de radio de manera analogica. Al pasarnos al plano del tratamiento de señales digitalmente no se requieren tampoco tener el mejor instrumental como si se quisiera hacer un equipo completamente analogico.  

Radio definida por software (SDR) 

Un SDR (Software defined radio) es un equipo que resuelve de manera digital, por software, varias etapas que se pueden observar en un receptor o transmisor de radiofreciencia. En mi caso en particular no voy a usar un conversor analogo digital por hardware sino que voy a hacer un receptor y un transmisor de conversion directa y utilizar el metodo de doble fase para obtener las señales par un tratamiendo con la computadora y un software para SDR y viceversa para la transmision.
Pero tambien me gustaria poder usar mi equipo sin depender de la computadora; obviamente suplir de manera analogica todo lo que hace el software es un poco complicado, la ventaja de que esto se hace en la parte de baja frecuencia (audio) y si bien nunca hice algo asi creo que es menos complicado que hacerlo con mixers y filtros de cristales apareados y en frecuencias mas altas los cuales son algo dificiles de conseguir por donde vivo; espero que el tiempo me de la razon.

Me gusto la explicacion del amigo Croata YU1LM y despues de leer algunas hs sus articulos me decidi por el DR2D que utiliza una entrada con DDS basado en AD9850 el cual consegui comprar por 7usd en ebay. Les recomiendo visitar su sitio porque es realmente muy instructivo y tiene una muy buena explicacion sobre el funcionamiento de un SDR con salida I+Q (In Phase and Quadrature). http://yu1lm.qrpradio.com/

Link a mi version de DR2D

Filtros Pasabanda

Algo muy importante en los receptores de conversion directa (DC) son los filtros pasabanda en la entrada y los atenuadores ya que el rango dinamico suele ser pobre al no tener control automatico de ganancia. Para los filtros pasabanda encontre el articulo de Lew Gordon publicado originalmente en una revista QST de la ARRL el cual presenta un Butterworth de 3 polos, bastante facil de hacer.
http://www.arrl.org/files/file/Technology/tis/info/pdf/8809017.pdf 

Luego tambien encontre estas calculadoras online para armar los filtros a la medida que nosotros queramos para cada banda; en el caso de un radioescucha es probable que quiera armar los filtros ajustandolos a sus bandas preferidas.
http://www.wetnet.net/rf_design/3pole.main.cgi

Aqui podemos tener toda la info sobre los toroides de ferrite
http://toroids.info/

Siempre es util tener a mano esta calculadora!
http://www.1728.org/resfreq.htm

Hice el diseño de una plaquita para el filtro en Eagle con el siguiente circuito:
Aqui hay algunas fotos de las placas hechas con el metodo de la transferencia del toner de una impresion laser.

Placa de las tres primeras bandas (80,40 y 20m) casi terminada.


DDS VFO con Arduino! 

Para el VFO con DDS lo que hice fue comprar un Arduino UNO ademas del AD9850 y modifique el programa original de AD7C y le hice muchas mejoras! Le agregue un boton para guardar memorias, un boton para RIT, otro para escaneo de memorias, otro para cambiar de modos y otro para el step de frecuencia. Hice ademas un controlador serial de solo dos cables para el display de 16x2 con un shift register y como dial use un motor paso a paso con 50 posiciones y no un encoder digital de 20 y que ademas son algo dificiles de conseguir a menos que lo saquemos del boton de scroll de un mouse en desuso.

Display con solo dos cables
Una vez hecho funcionar el display con solo 2 cables! Llego el turno de hacer funcionar el modulo del AD9850. Para esto me hice un shield a partir de una placa de pruebas.
Materiales necesarios; ademas de la placa experimental, necesitamos los pines hebras y machos

Se sueldan del lado del cobre!

Se arma el zocalo a la medida del modulo AD9850

El modulo puesto en su lugar
Del lado de alimentacion y entradas analogas no es problema coincidir los pines

De este lado, el espaciado esta desfasado de la placa de pruebas!!
Se soldaron los pines hembra para utilizar el resto de los pines IO de Arduino

Luego de calar el lugar para los pines se cablearon con cobre

Luego se sello con epoxi los pines para que queden firme en su lugar definitivo

Codigo para controlar modulo DDS con Arduino

El codigo como se explico antes, me base en el codigo de AD7C, el cual me sirvio para reutilizar algunas de sus cosas pero tambien para plantear y mejorar muchas otras!. Sin mucho preambulo aqui esta el link para su descarga.
DDS VFO LU1MAW Code

Caja del transceiver

El diseño de la caja es propio, consegui dos tapas de aluminio de una vieja caja de un drive USB externo y le hice con planchuela el bastidor central para que luego se pueda trabajar sin problemas por arriba o por debajo del equipo sin problema. Tambien le puse un instrumento para medir dB porque al principio pense que le haria un receptor standalone superheterodino simple con un LM610 o similar, pero probablemente lo utilice en algun AGC en la etapa de audio del receptor DC, funcionara?.

No usar botones cuadrados o tendras que limar un buen rato
Etapa de potencia de RF y botones colocados!
El bastidor de metal es le da mucha rigidez
Con la base lista para agregarle las placas

Atenuador de entrada de recepcion

Para hacer el atenuador debi tomar la desicion entre tres opciones, ya que quiero el control de ganancia en el frente del equipo y no queria llevar señal de RF hasta el frente para evitar que se llene de ruido producido por la parte digital. Las opciones que manejaba eran tres:
  1. Hacer un tanque LC resonando en una frecuencia por encima de 20MHz produciendo atenuacion en las bandas bajas, mientras mas baja mas atenuacion. Para este tanque usaria un diodo varicap tipo BB212 o similar para poder controlar los dB desde el panel frontal
  2. Otra opcion seria poner un potenciometro para atenuar resistivamente como si se tratase de audio. La gran desventaja de este metodo es la desadaptacion de impedancia que se produce hacia la antena y a la etapa siguiente. 
  3. La opcion correcta para atenuar manteniendo la impedancia en 50 Ohms seria hacer una serie paralelo de resistencias y controlar su activacion desde una llave en el panel y un rele doble inversor. Al poner uno de estos solo tenemos una atenuacion fija, supongamos 10dB, lo ideal seria poner 2 o 3 de estos y controlarlo con 3 llaves y combinarlos entre si para lograr valores intermedios, si se hace uno de -10dB otro de -20dB y el tercero de -30dB podemos lograr un maximo de -60dB al activar los tres al mismo tiempo. La desventaja es que es mas caro que los otros dos. Aqui hay un link para ajustar los valores segun los dB que se quieran obtener.
Para hacer las primeras pruebas me decidi por la segunda opcion, poniendo un alargue del eje para poder poner el potenciometro en la parte trasera.
Control analogico de atenuacion de antena.

Primeras pruebas

Necesitaba saber si el VFO funciona bien asi que luego de hacer el shield para el AD9850 para el Arduino utilizando la menor cantidad de pines para luego usarlos en otras funciones hice un receptor muy simple de conversion directa con el NE602 y LM386. El circuito es el siguiente: http://www.waveguide.se/?article=ne612-receiver-experiment A diferencia del mio, que yo no le hice el circuito del AGC para evitar complicaciones... aunque es una idea que encuentro muy interesante!



Un video de las funcionalidades de mi VFO funcionando. Notese que le falta el shield para el AD9850.



Finalmente un video del equipo funcionando con un receptor de conversion directa muy simple sin filtros ni nada mas.



Filtro de CW

Aqui se puede ver el articulo donde se describe el filtro

Circuito de control y DDS transceptor

Aqui esta el circuito de control con Arduino y todos los perifericos desarrollados hasta ahora. Los puertos analogos seran usados como entradas y los pines digitales de I/O seguramente seran la salida para un registro de desplazamiento con dos 74HC595 para activar las los filtros pasabandas y algo mas.
Click para agrandar


Continuara....
73s de LU1MAW

18 comentarios:

  1. Hola Alejandro,serias tan amable de publicar el circuito del VFO por ejemplo donde van las teclas que le agregaste al cicuito de AD7C y en la copilacion falta un archivo ShiftRegLCD123.h> Desde ya muchas gracias LU2DLT 73 y de x

    ResponderEliminar
    Respuestas
    1. Hola Luis, No me habia percatado de que no publique el circuito!, En un rato veo si lo hago y lo subo; el circuito aun esta mutando, pero te lo subo como para que se entienda mejor. La libreria que necesitas podes descargarla del sitio oficial: https://code.google.com/p/shiftreglcd123/wiki/Software

      Para hacer andar los botones del frente, lo que se hace es hacer un circuito de resistencias en serie con derivaciones intermedias y tomar lectura del valor analogico en un solo pin de entrada; por eso tengo 5 botones en un solo pin, es una manera de ahorrar pines!
      Aca te dejo un link con una explicacion mas detallada:
      https://johnboxall.wordpress.com/2012/02/29/tutorial-analog-input-for-multiple-buttons-part-two-2/

      Eliminar
    2. Ok.gracias por contestar Alejandro ,espero el circuito pero ya entiendo ,otra cosa el display se usa como en el circuito original.Gracias LU2DLT 73 y de X

      Eliminar
    3. Hola Luis, disculpa la demora. Ya esta actualizada la entrada con el circuito al final. No es el circuito final porque como dice el articulo aun esta en desarrollo y lo que estaria faltando serian los regstros de desplazamiento para activar los filtros pasabanda segun la frecuencia. Cualquier duda que tengas avisame!

      Eliminar
  2. Hola Alejandro,te olvidaste del circuito lo espero ,Gracias 73 y Dx...

    ResponderEliminar
  3. Hola ,después de mucho tiempo te molesto al compilar el programa con arduino me sale error en el RIT .Gracias

    ResponderEliminar
  4. impresionante lo tuyo. Ya estoy haciendo un qrp. en cuanto vaya avanzando te mando fotos y comentarios. Muchas gracias por tu gran aporte. abrazo. LU9VI

    ResponderEliminar
    Respuestas
    1. Muchas gracias por leer mi blog y espero ansioso esas fotos. 73!

      Eliminar
  5. Hola Juan Marcelo, gracias por leer el blog. Por mudanza y taller desarmado por ahora deberá esperar la continuación

    ResponderEliminar
  6. Hola Alejandro. H estado leyendo tu desarrollo y me ha gustado.
    Por favor coméntame en rasgos generales como piensa implementar la parte del receptor y transmisor. Has de usar PC o lo harás standalon, y en este ultimo caso como piensas implementarlo?.
    Si puedo colaborar estaré atento.
    Saludos. Enrique-LW5EJV

    ResponderEliminar
    Respuestas
    1. Por ahora solo receptor. El transmisor no lo he diseñado. Pero la idea era hacer algo standalone completamente sin la necesidad de conectar y desconectar una PC

      Eliminar
  7. you utilize algo parecido un VFO DDS y un pixie ahora trabajo toda la banda de HF, super facil.

    ResponderEliminar
    Respuestas
    1. Efectivamente, una vez que tenes el DDS podes hacer multibanda cualquier equipo, solo hay que tener en cuenta la conmutacion de los filtros o un buen preselector

      Eliminar
  8. ahora estoy con el ne602 toda una maravillas banda corrida y recepcion mejor que los radio comerciales. instalare tu firmware veo que la memoria es muy necesaria 73s.

    ResponderEliminar
  9. Horas de trabajo! Cuando tengas a mano uno roto,probá de hacer el encoder con el motor de un disco duro. Queda super suave.73

    ResponderEliminar
  10. HI LU1MAW, I need your VFO DDS code but link is dead (DDS VFO LU1MAW Code) can you share again?

    ResponderEliminar