Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas

lunes, 1 de mayo de 2017

Receptor de Conversion Directa para CW

Esta publicación es para ampliar la publicación anterior sobre el desarrollo de un quipo de CW a partir de un Cahuane.

Consideraciones para diseñar un receptor de conversión directa


El receptor de conversión directa es muy fácil de lograr y funciona muy bien si se tienen en cuenta que hay que resolver algunos problemas previos:

1) Como es un receptor que obtiene audio directamente de la RF, se debe amplificar en audio varias veces y es muy facil amplificar una señal espúrea de los 50Hz de linea 220v o alguno de sus armónicos en 100Hz o 250Hz. Por eso es muy importante tenes un filtro de audio.
Tambien el blindaje puede ayudar para evitar este ruido.
Distribución de la ganancia en un superheterodino y en uno de conv. directa.



2) Microfonismo, este problema es porque los osciladores y todos los componentes sensibles en su posicion pueden variar la frecuencia con las vibraciones, esto produce como efecto que las vibraciones salgan amplificadas en la etapa de audio como si se tratase de un microfono.
La solucion es hacer el circuito lo mas rigido posible sin, componentes sueltos o con partes sueltas como los nucleos de las bobinas.

3) Radiacion del VFO, este problema no le afecta al receptor, pero si a los receptores cercanos ya que un conversion directa emite parte de su energia en uW por la antena ya que pasan por el mixer hacia la antena. La solucion es tener un filtro pasabanda con un preamplificador de audio para separar las etapas, un mezclador de FET doble compuerta o de celda Hillbert tambien evita que ocurra esto.

Teniendo en cuenta estos consejos, que son mejor explicados aqui, El diseño de mi receptor es con un NE612 y un TL081 como primer etapa, luego vendran los filtros y el amplificador de audio final.


V1 es la salida del NE612 (Detector de producto), al tomar una salida balanceada es muy facil eliminar los ruidos por nodo comun como el del punto 1, luego la ganancia no es muy grande para evitar los problemas de microfonismo y con un preamplificador de RF a la entrada del NE612. Vcc es de 9v, y la resistencia de 20Mg es para simular la impedancia de entrada de la etapa siguiente, la cual es el filtro de AF antes de amplificarlo en la etapa final.

Probando el receptor

En el siguiente video se ve como funciona el receptor sin filtros y la recepcion es bastante limpia.



Prueba con filtro de CW




viernes, 28 de abril de 2017

Transmisor de CW con DDS AD9850

Esta publicación es para ampliar la publicación anterior sobre el desarrollo de un quipo de CW a partir de un Cahuane.

Transmitiendo en CW

El transmisor de CW es el mas facil de construir; consiste en generar una señal de RF desde un oscilador y amplificarla hasta obtener la potencia que se pretenda en la antena interrumpiendo esa señal con el manipulador o key (cuando se cierra, emite la señal de RF no modulada).

Es simple pero en términos de energía muy eficiente ya que la potencia de salida no se distribuye en mucho ancho de banda lo cual tiene ademas la ventaja de que es muy fácil de filtrar en un receptor.

En mi caso el oscilador es un módulo DDS con un AD9850, una de las salidas analógicas se inyecta en un buffer formado por dos 2n2222.


Este amplificador es alimentado por una fuente de alimentacion de tension variable con un LM317 controlado por una salida PWM del Arduino.

Click para agrandar
Luego del este amplificador le puse la etapa que saque de la placa original del Cahuane con el 2n3866 en clase A. Luego viene la etapa del MRF476 como driver para el pushpull de dos MRF456.

Para interrumpir la señal de RF y producir el CW hay dos opciones, se puede usar un PNP con el circuito como carga luego del emisor o bien usar un NPN con la carga en serie con el colector y el emisor a masa. En mi caso como la salida del Arduino entrega un 1 cuando se cierra el key a masa, utilice un NPN, el cual en la foto es un TIP41 pero luego lo reemplace por un BC557 para ahorrar espacio ya que de este lado del chasis no se cuenta con tanta altura como del otro lado.
Circuito del TX en prueba.


Etapa con el 2N3866 con el método de construcción Manhattan


jueves, 27 de abril de 2017

Control de DDS y funciones del tranceptor de CW

Esta publicación es para ampliar la publicación anterior sobre el desarrollo de un quipo de CW a partir de un Cahuane.

Para el control del equipo utilicé un Arduino Nano, el cual tiene estas características.

  • Control del DDS AD9850
  • Lectura de la posición de la llave selectora de banda
  • Lectura del encoder rotativo de cuadratura
  • Lectura del botón del encoder (axial)
  • Lectura del botón de RIT
  • Lectura de la tensión de batería para mostrarla en display
  • Lectura de tensión reflejada para proteger el equipo (ALC)
  • Salida en PWM para control de potencia a través de LM317
  • Salida en PWM para producir un tono al transmitir (sidetone)
  • Menu para ajustar tono de recepcion (shift de RX)
  • Menu para ajustar la potencia de salida desde 1W a 100W
  • Menu para seleccionar el step o paso en cada click del encoder rotativo
  • Intercambio de frecuencia de batido.
 La última version del programa para el Arduino se puede descargar gratuitamente desde mi espacio en github.

Ante cualquier duda, recomiendo utilizar la plataforma de github para enviarme la consulta y una posible solución. Tus dudas me ayudan a mi también porque es muy probable que mi programa tenga bugs o que algunas cosas se puedan mejorar.

Preparando el Arduino Nano para soldarlo con los pines doblados

El módulo del DDS AD9850 con un recordatorio de cada uno de los pines

Modificando el lateral de la carcasa para podes conectar el cable USB al Arduino

Arduino y DDS en su disposición definitiva

Con los controles del frente cableados y listos para iniciar las pruebas


Problema y solución del receptor DC

Como el receptor DC recibe el tono de audio producto de desplazar la frecuencia del receptor por encima o por debajo de la señal de la portadora interrumpida se puede producir que nos encontremos con que en una determinada frecuencia nos entre en el canal de audio dos señales simultaneas lo cual provocaría que se interfieran entre si.

Consideremos la siguiente situación:

Click para agrandar

En la imagen de mas arriba suponemos que queremos establecer contacto con la estación de Tx3 mientras que además tenemos cercanamente a Tx2 y Tx1. En este ejemplo, como queremos comunicar con Tx3 nuestra frecuencia de transmisión sera la misma de Tx3, pero nuestro VFO en recepción se encuentra desplazado 750Hz de la frecuencia de Tx hacia abajo o bien, "restando" al valor del VFO mostrado en el display de nuestro equipo.
Este shift es el que produce el tono en nuestro equipo de radio ya que como sabemos CW no emite un tono sino que este se produce en el receptor.

Una posible solución es cambiar la frecuencia del receptor por encima de Tx3, la cual produce un tono de 750Hz pero sin la interferencia de Tx2. Como se puede observar en el siguiente diagrama.

Click para agrandar

Ahora en nuestro canal de audio tenemos una sola señal, la de Tx3 solamente. Mientras que nuestra transmision sigue siendo en la misma frecuencia que Tx3. Tengamos en cuenta que el canal de audio debe contar con un filtro que no deje pasar los tonos altos de Tx1 y Tx2 (mientras mas lejos de nuestro VFO(rx) mas agudos serán, sin importar si estan para arriba o abajo en la frecuencia absoluta)

Que pasaría si aparece una estación Tx4 que emita en VFO+750Hz?
Lo que se puede hacer es modificar la frecuencia de shift o de corrimiento, es decir cambiar los 750Hz por otra frecuencia, supongamos 600Hz o 900Hz a cualquiera que nos resulte cómodas de escuchar; de esa manera podemos "separarlas" mentalmente ya que al cambiar la frecuencia se comenzara a escuchar una mas grave y la otra mas aguda.
También podemos intercalar un filtro de audio para que elimine alguna de estas.

El programa del Arduino contempla tres posibles soluciones, una es al apretar durante 3 segundos el botón de RIT, esto cambia la dirección de suma o resta al VFO de recepción, la otra es propiamente el RIT, el cual solo desplaza el receptor una x cantidad de Hz, y la otra es la posibilidad de cambiar el shift de recepción entrando al menú cuando mantenemos apretado el botón del encoder por mas de 3 segundos.

domingo, 18 de septiembre de 2016

Fuente alimentación UPS

Diseño

Esta fuente de alimentación la diseñé específicamente para proveer energía a mi sistema de alarma y domótica más detallado en otro post (proximamente). No es una fuente de alimentación comun ya que deberia funcionar con algunas caracteristicas muy particulares.

Requerimientos:

  1.  que provea información de estado de tensión de línea 220v al Arduino
  2.  que permita cargar una batería de bajo Mantenimiento 12v-7Ah a una tensión de tope en 13.8v pero que a su vez
  3.  provea una salida en 12v y 5v DC para los circuitos de control y actuación como el simulador de presencia y sensores de alarma
  4. que tenga la posibilidad de testear la batería bajo carga controlada y leer el valor desde Arduino.
  5.  que la salida en 12v sea protegida con un fusible electrónico de reposición automática.

Desarrollo del circuito

Como me interesa saber cuál es el valor analógico de la línea me decidí por usar un transformador convencional ya que con una fuente switching sería un poco mas complicado.

En mi caso tomo el valor desde el secundario, luego de la rectificación y filtros, ahí tenemos un valor de tensión DC proporcional a los 220v AC del primario. Es decir que si tengo 210v AC, en este punto tengo linealmente menos tensión DC que si tengo 225v AC.

Luego tengo un regulador lineal ajustable para proveer la tensión DC necesaria para los 13.8v de carga de la batería y luego con una caída de 1.3v al pasar por dos diodos 1N4007 y de allí al fusible electrónico, de esta manera me aseguro que a los circuitos alimentados les llegue como máximo 12.5v
Paralelamente a esta salida está la regulación de voltaje de 5v para la alimentación de la parte lógica

Click Para Ampliar

Control:

El circuito entrega tres señales que son leídas por el Arduino. La primera de ellas es el estado de la línea (analógica), otra es el valor de tensión en la batería(analógica) y la última es digital, ante la presencia de cortocircuito, es decir al momento de haber actuado el fusible electrónico.
También recibe una señal de control y es para activar el relé que desconecta la batería y la carga con las resistencias provocando un consumo controlado de 1A aprox. Esta señal de test de batería queda inhibida por software en el caso que la tensión de alimentación AC sea menor a 200v.

PCB

Como placa usé una de 10x10cm perforada. No quise molestarme en hacer el diseño para un PCB mas decente. Como no se usa radiofrecuencia, no es para nada crítico el diseño, siempre que se deje bien actualizada la documentación del circuito, ya que leer desde esta placa el circuito siempre es más difícil.




lunes, 20 de julio de 2015

Filtro de CW de 200Hz de ancho de banda


Este circuito lo hice para mejorar la recepcion de señales en CW en mi transversor. En un receptor DC es fundamental contar con un buen circuito para recibir bien CW ya que normalmente tienen un ancho de banda algo amplio y como sabemos en 1KHz pueden entrar varias señales simultaneamente. Con este filtro de tan solo 200Hz con el centro en 750Hz podemos librarnos facilmente de todas las señales vecinas; tengamos en cuenta que el filtro trabaja en la zona de audiofrecuencia por lo tanto ademas es muy facil de hacer andar, muy economico y no es critico su montaje como si se tratase de RF.

Se puede hacer como en mi caso que lo puse dentro del equipo, o bien como un filtro externo en un equipo comercial.

Circuito

Estuve buscando algun circuito de filtros activos ya que lograr hacer un Butterworth de audio con bobinas y capacitores puede ser algo complicado y de tamaño mas grande. Luego de investigar un poco me decidi por hacer el "Hi-Per Mite" Del grupo QRP 4 State por los comentarios de quienes lo hicieron y lo usaron; al parecer realmente es de alta perfomance sin introducir ringing en el audio filtrado.

http://www.4sqrp.com/HiPerMite.php





Como se observa en la imagen, la gente de 4SQRP uso componentes variados, capacitores de buena calidad pero las resistencias son de 5%. Segun su articulo no es necesario prestar mucha atencion a este tema.




Implementacion

En mi caso no encontre en la casa de electronica las R de 36K, asi que lo hice con una de 33K y una de 3.3K, el valor produce un pequeño corrimiento en la señal central que no seria de 750Hz sino de un poco mas baja frecuencia.
Tambien reemplace R12 y R11 por un potenciometro de 200K. Tengamos en cuenta que en todo caso siempre debe usarse el capacitor de 220uF para el desacople.

En todo caso hay que prestarle atencion a este cuadro que hicieron los diseñadores del circuito.



Le puse un rele para activarlo y desactivarlo desde el Arduino


En el video se pueden ver las primeras pruebas del filtro, aun no esta cableado hasta Arduino, por eso uso un cable directamente a 5v para activarlo y desactivarlo. Se puede escuchar como se reduce el ruido de banda.

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