Finalmente pude darle horas a un proyecto largamente en el cuaderno de apuntes; se trata de un transceptor basado en la arquitectura general de un Pixie (mismo principio de funcionamiento), donde la frecuencia de operación en vez de estar determinada por un cristal lo es por un módulo DDS AD9850. Fundamentalmente para programar al generador DDS agrego una placa Arduino Mini Pro de muy bajo costo, tan bajo costo que no tiene una interfaz RS232 ni USB por lo que hay que armarla basado en el integrado MAX232. Las compuertas NOR están para que la excursión del BS170 operando en clase E sea completa.
El funcionamiento de RF es, como dije antes, basado en la configuración de funcionamiento de un transceptor Pixie, la señal proveniente del DDS en una frecuencia dada activa en bajo nivel la etapa de salida la que actúa como mezclador, la frecuencia suma es filtrada y la diferencia es la banda base que se recibe la que resulta amplificada a niveles adecuados. En transmisión el circuito de PTT activa la etapa de salida para operar en máxima potencia al mismo tiempo que bloquea la entrada del amplificador de audio. La frecuencia del circuito DDS es programada usando el protocolo serie del AD9850 por parte de la placa Arduino, esta a su vez tiene un firmware que opera el conjunto dependiendo el modo seleccionado. La interfaz serie sirve tanto para programar la placa Arduino como para soportar un protocolo CAT que permita programar los parámetros de operación (frecuencia, modo, ptt, split, etc). El primer modo para el que estoy desarrollando el firmware es WSPR (pronunciado como "Whisper", susurro). Para lograrlo la placa Arduino emite un mensaje durante algo mas de un minuto, donde cada bit tarda un poco menos de 700 mSegs. Cada bit del mensaje se transmite como FSK en tres frecuencias separadas 2 Hz entre si. La banda base del modo ocupa 6 Hz y puede ser decodificada con relaciones SNR tan bajas como -25 a -30 dB (!!!). El controlador Arduino simplemente empieza la transmisión sincronizado en los primeros segundos de los minutos pares, y envia la programación de frecuencia correspondiente a cada tono durante la duración del mensaje (la codificación del mensaje en si se genera con el programa wspr0 parte del paquete WSJT).
El código que implementa WSPR es relativamente simple, por ahora el grueso del firmware se corresponde a la implementación del CAT.
El sistema CAT es bien simple, básicamente deja programar la frecuencia, el modo, si el PTT está activado o no lo está y sincronizar la hora. Una vez que la hora es sincronizada externamente, presumiblemente contra una PC a su vez sincronizada con algún patrón horario, la hora es mantenida por la placa Arduino contra su propio reloj interno. Habrá que experimentar un poco que tan estable es el método y cada cuanto requiere ser recalibrado.
La idea general es que el transceiver pueda operar en forma autónoma como beacon WSPR sin requerir una PC, pero que para el resto de los modos tenga que estar asociado a una PC con un programa que via CAT dé la interfaz "visual".
Mas adelante se podrá agregar código adicional para poder operar el mismo circuito en CW, RTTY y PSK31 asi como operar como balizas en cualquiera de esos modos además de QRSS. Todos bajo el mismo principio de funcionamiento, que la codificación sea realizada por la placa Arduino que operando el DDS genere las señales de frecuencia necesarias para transmitir el mensaje.
En recepción de todos los modos la idea es simple, el transceiver ofrece una señal de audio en recepción que puede ser procesada por la placa de sonido de una PC y los programas correspondientes al modo en cuestión.
La placa tiene provisiones para proveer señales externas de PTT, sincronísmo de tiempo y señales de keyer automático; pero su implementación corresponde a una etapa posterior de implementación.
Esta entrada es preliminar e iré actualizando el diseño en la medida que progrese con el.
Me ha encantado el invento. Voy a intentar adaptarlo y ver que es lo que sale de él. Yo voy a probar re-programando mi propio proyecto de DDS: http://ddsbee.dinamitic.net
ResponderEliminar