Radio FPGA DSP para comunicaciones de banda estrecha [ 150177
Estoy trabajando en un transceptor completo de alto rendimiento para SSB/CW de banda estrecha (y posiblemente también AM y FM) en onda corta y/o VHF (bandas de radioaficionados) basado en procesamiento de señal en un FPGA junto con ADC de 24 bits y un muy rápido DAC. Es independiente y no como la mayoría de los otros proyectos SDR que dependen de una PC.
Estoy trabajando en un transceptor completo de alto rendimiento para SSB/CW de banda estrecha (y posiblemente también AM y FM) en onda corta y/o VHF (bandas de radioaficionados) basado en procesamiento de señal en un FPGA junto con ADC de 24 bits y un muy rápido CAD.
Es independiente y no como la mayoría de los otros proyectos SDR que dependen de una PC.
Consulte https://www.youtube.com/watch?v=BCwOSmN_0kI para ver una demostración funcional.
En https://sm6vfz.wordpress.com/dspsdr-with-fpga/ hay un borrador del libro de registro del proyecto con algunas imágenes. El circuito de RF, incluido el sintetizador LO, también se está construyendo desde cero.
Del laboratorio: Placa FPGA DSP para radio de banda estrecha Gracias a Daniel podemos presentar un diseño brillante. Seamos honestos, todo el crédito es para Daniel. Diseñamos los PCB con la orientación y las correcciones de Daniel. Comenzamos este proyecto a fines de 2015, esto puede parecer mucho tiempo, pero ahora realmente tenemos algo que mostrar. (Texto de Daniel)Abstracto Este proyecto presenta una placa para operación de radio de banda estrecha de alto rendimiento. Cuenta con un ADC de 24 bits para muestreo a frecuencia intermedia en modo de recepción, un FPGA Cyclone IV para procesamiento de señal, un DAC de alta velocidad para oscilador local y generación de señal de transmisión, un audio codificado para digital a micrófono/altavoz, un TCXO para estabilidad de alta frecuencia y una interfaz I2C o UART para un controlador de host. También se presenta una placa frontal de radio simple, con la que se puede construir fácilmente un transceptor para onda corta.Descripción del circuito El corazón (o cerebro) de la placa consiste en el EP4CE10 Cyclone IV FPGA de Intel, anteriormente Altera (IC4). Este es un chip que se puede configurar para prácticamente cualquier función digital. Sus puertas se conectan al inicio de acuerdo con el firmware en un flash externo (IC5) que se conoce como memoria de configuración. Para la entrada y salida de audio hay un "códec", TLV320AIC20K (IC3), que consta de dos ADC y DAC's a 16 bits de resolución y máximo 25 ksps. Incorpora un filtro de paso bajo digital de 8 kHz, así como un amplificador de micrófono y un controlador de altavoz que puede entregar 250 mW en 8 ohmios. Para todas las E/S de audio analógico, hay factores de atenuación/ganancia seleccionables para el control de volumen, etc. Además de la conexión al altavoz (K2) y al micrófono (K3), tiene otros canales conectados en K4 que se pueden usar para la conexión de audio a equipos auxiliares. . La entrada principal a la placa es una señal diferencial típicamente en el rango de cientos de kHz, en K1. Este pasa por un amplificador operacional diferencial (IC1) y un filtro discreto, para finalmente ser digitalizado en un ADC AD7760 de 24 bits (IC2). Este chip tiene muchas conexiones de suministro, que están separadas por voltaje y/o filtrado pasivo. Su reloj maestro proviene de la FPGA y se amplifica a 5V oscilando por IC8. También hay un DAC rápido de dos canales en la placa, DAC5672 (IC6) con transformadores de salida, para filtrado diferencial a unipolar y de paso bajo que deja pasar señales de hasta 50 MHz. Sus dos canales de salida, denominados A y B, están disponibles en K8 y K9. Para cronometrar todo, hay un TCXO (IC7) de 20 MHz en la placa. Este reloj se alimenta a la FPGA y luego se redistribuye a los circuitos integrados periféricos. La frecuencia se puede ajustar con precisión con el potenciómetro P1. También hay una entrada para una fuente de referencia externa cuando está disponible (K5). Dependiendo de la disponibilidad de una referencia externa, el TCXO se puede encender o apagar a través de T1. Tanto la señal del TCXO como la referencia externa se alimentan a la FPGA a través de inversores sin búfer conectados para amplificación analógica (IC9, IC10). Estas señales pueden entonces ser de oscilación de voltaje moderada. El reloj se divide en la FPGA para generar un destello de baja frecuencia en el LED1, lo que indica que el reloj está funcionando y la FPGA está configurada. Se distribuye un voltaje de suministro de 5 V, que entra en K10, a cuatro LDO diferentes (IC11-14) para generar los voltajes necesarios para los diferentes chips, a 1,2 V, 1,8 V, 2,5 V y 3,3 V La interfaz para el controlador principal consta de dos pines destinados a la comunicación I2C o UART, seleccionables por puente de soldadura (JP1). También hay siete GPIO adicionales (en K7) que se usan normalmente para PTT (presionar para hablar) y señales de clave Morse. También debería ser posible usar estos pines para E/S de audio I2S. Además existe una interfaz JTAG para la programación de la FPGA y su memoria de configuración (K6).Programación El firmware compilado para este proyecto, denominado "TRX", está disponible como un archivo de "configuración indirecta JTAG" (trx.jic) que primero configura la FPGA como puente y luego programa la memoria de configuración a través de la primera. Esto se hace con la ayuda de un "USB Blaster" que se conecta a una PC a través de USB para formar una interfaz JTAG con la placa. Tal dispositivo se puede comprar a un precio muy bajo: busque en eBay, AliExpress y sitios similares. El software para usar en el lado de la PC se conoce como Quartus Lite y se puede descargar gratuitamente desde el sitio web de Intel/Altera. Si el entorno de desarrollo completo no es de su interés, existe la posibilidad de descargar solo las aplicaciones necesarias para la programación. La suite Quartus está disponible tanto para computadoras Windows como Linux.Interfaz de control En una radio independiente, el controlador probablemente sea una pequeña placa de microcontrolador con pantalla y botones. Esto podría diseñarse con un PIC, AVR, STM32 o básicamente cualquier otro tipo de procesador. También podría ser un Arduino, Teensy, Platino o cualquier otro tablero de prototipos popular. Para experimentos, o cuando un monitor y un mouse/teclado no son un obstáculo, una Raspberry Pi es una interfaz de control flexible. Para Raspberry Pi (o cualquier otra computadora con Linux), se escribió un applet en Python, con el marco gráfico GTK, que hace que los controles sean fácilmente accesibles. Este subprograma se conecta a la placa FPGA a través del puerto serie UART de forma predeterminada. También tiene un modo de enchufe experimental, para permitir la operación remota. Entonces, la idea es ejecutar un servidor en una Raspberry Pi en la ubicación de la radio y conectarse a esta Pi con el applet desde una computadora remota. Con la gran cantidad de ruido artificial en las áreas urbanas y con las limitaciones para instalar Antenas grandes en estos lugares, la opción de operación remota se vuelve cada vez más interesante para los radioaficionados y los oyentes de onda corta. También debería ser posible enrutar el audio desde el FPGA directamente a los puertos PCM/I2S de la Raspberry Pi para evitar el desvío sobre el audio analógico cuando se realiza la operación remota. Esto aún está por probar.Tablero de radio También se realizó un diseño de una placa RF/radio simple con pocos componentes que satisface el diagrama de bloques TBD anterior. La antena está conectada en K1 donde ve un filtro de paso bajo que elimina las señales de transmisión de FM y otras interferencias potenciales de VHF/UHF. El par de diodos antiparalelo D1 limita las señales muy fuertes que pasan a través del filtro, mientras que también proporciona una ruta de retorno de CC para la carga estática que, de lo contrario, podría acumularse en un cable de antena largo y aislado. El chip SA602 (IC1) bien probado luego amplifica la señal y mezclarla con la procedente del DAC A, en K2. Un filtro de cristal, FL1, agrega un filtrado nítido en la primera frecuencia intermedia. Las impedancias del SA602 y el filtro coinciden bastante bien, por lo que no se utilizan componentes de coincidencia adicionales (que normalmente serían necesarios). Luego sigue otro SA602 (IC2), que se mezcla con la señal DAC B y produce el segundo IF como una señal diferencial (en K4) para alimentar el ADC de la placa FPGA. Las placas de RF y FPGA, junto con un controlador adecuado para la selección de frecuencia, etc., funcionan muy bien para la recepción desde prácticamente cero hasta alrededor de 30 MHz. Cuando se conecta a una antena grande, que capta señales débiles y fuertes, el receptor no se satura fácilmente ni produce audio basura como muchas otras soluciones SDR. Por lo tanto, se puede utilizar para trabajos serios y para la recepción de señales raras y débiles.Lista de materiales Placa FPGA DSP (150177-1 v2.1)ResistenciaR1,R2,R3,R4 = 560 Ω, 1 %, 0W1, SMD 0603R5,R6,R25,R28,R30,R34,R35,R36,R44-R47,R48,R53 = 10 kΩ, 1 %, 0W1, SMD 0603R7,R32,R33 = 330 Ω, 1 %, 0W1, SMD 0603R8-R11,R19-R22,R37,R38,R39,R41 = 1 kΩ, 1 %, 0W1, SMD 0603R12,R13 = 18 Ω, 1 %, 0W1, SMD 0603R14,R17,R18 = 10 Ω, 1 %, 0W1, SMD 0603R15,R49-R52,R54-R58 = 100 Ω, 1 %, 0W1, SMD 0603R16 = 160 kΩ, 1 %, 0W1, SMD 0603 R23 = 47 kΩ, 1 %, 0W1, SMD 0603R24,R29,R31 = 27 Ω, 1 %, 0W1, SMD 0603R26 = 100 kΩ, 1 %, 0W1, SMD 0603R27,R42,R43 = no montado R40 = 2k0, 1%, 0W1 , SMD 0603P1 = 10 kΩ, 20 %, recortador, 4,5 mm, 250 mW, SMD (3314G-2-103E, Bourns) CondensadorC1,C2,C5-C8,C14,C16-C19,C20,C22,C23,C25, C27,C28,C29, C42,C44,C46,C47,C48,C50,C52,C53-C64,C66,C68,C70,C72,C73,C74,C75,C76,C77,C78,C79,C80,C81, C82,C92,C95,C98,C105,C106 = 100 nF, 10 %, 50 V, X7R, SMD 0603C3,C4,C33,C34,C35 = no montadoC9 = 5p6 ± 0,25 pF, 50 V, C0G/NP0, SMD 0603C10,C11 = 27 pF, 1 %, 100 V, C0G/NP0, SMD 0603C12,C21 = 10 nF, 10 %, 50 V, X7R, SMD 0603C13,C43,C89,C90,C102,C103,C104,C107, C108,C109,C110 = 47 µF, 10 %, 16 V, tantalio, 0,35 Ω, SMD Caso C (TR3C476K016C0350, Vishay)C15 = 33 pF, 5 %, 50 V, C0G/NP0, SMD 0603C24,C26 = 10 µF, 10 %, 6V3, X7R, SMD 0805C30,C31,C32 = 10 pF, 5 %, 50 V, C0G/NP0, SMD 0603C36 = 1 nF, 10 %, 50 V, X7R, SMD 0603C37,C38 = 22 nF, 10 %, 50 V, X7R, SMD 0603C39,C40,C41,C93,C96,C99 = 1 µF, 10 %, 16 V, X7R, SMD 0603C45,C49,C51 = 100 pF, 5 %, 50 V, C0G/NP0 , SMD 0603C83,C85,C86,C88 = 120 pF, 5 %, 50 V, C0G/NP0C84,C87 = 180 pF, 5 %, 50 V, C0G/NP0, SMD 0603C65,C67,C69,C71,C91,C94 ,C97,C100,C101 = 2µ2, 10 %, 6V3, X7R, SMD 0603 InductorL1,L2,L3,L4,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17, L18,L19,L20,L21,L22,L23,L24,L25,L30,L31,L32,L33,L34,L35,L36,L37,L38,L39,L40 = 1 kΩ a 100 MHz, 0Ω6, 200 mA, SMD 0603 (HZ0603B102R-10, Laird Technologies)L5 = 15 nH, 5 %, 0Ω17, 700 mA, fres 4 GHz (CW160808-15NJ, Bourns)L26,L27,L28,L29 = 180 nH, 2 %, 0Ω64, 0A4, SMD 0805 (0805CS-181XGLB, Coilcraft)TR1,TR2 = TC4-1WG2+ (minicircuitos) SemiconductorIC1 = OPA2374AIDG4, SMD SO-8IC2 = AD7760BSVZ, SMD TQFP-64IC3 = TLV320AIC20KIPFB, SMD, TQFP-48IC4 = EP4CE10E 22C8N, TQFP-144IC5 = M25P40-VMN6PB, SOIC-8IC6 = DAC5672IPFB, SMD 5 x 3,2 mmIC7 = 20 MHz crystal osc, adj., 5 x 3,2 mm (ASVTX-09-20.000MHZ-T, Abracon)IC8,IC9,IC10 = 74AHC1GU04W5-7 , SMD SOT-25IC11 = LP3891EMR-1.2/NOPB, SMD SOIC-8+PowerPADIC12 = TPS73018DBVT, SMD SOT-23-5IC13 = TPS79625DCQG4, SMD SOT-223-6 (DCQ6)IC14 = TPS79633DCQ, SMD SOT-223-6 ( DCQ6)LED1,LED2,LED3 = LED, verde, 50 mcd, 2,1 V a 20 mA, SMD 0805 (KP-2012CGCK, Kingbright)T1 = PMV65XP, SMD SOT-23-3T2 = IRF9321PBF, SMD SOIC-8 OtroK1,K3 = Cabezal de clavija, 3 vías, SIL, paso 2,54 mm, vertical, orificio pasanteK2 = Cabezal de clavija, 2 vías, SIL, paso 2,54 mm, vertical, orificio pasanteK4 = Cabezal de clavija, 14 vías, SIL, paso 2,54 mm, vertical, orificio pasanteK5,K8,K9 = conector SMA conector recto, hembra, orificio pasante, 50 ΩK6 = cabezal, 2x5, vertical, paso 2,54 mm, orificio pasanteK7 = cabezal de pines, 10 vías, SIL, paso 2,54 mm, vertical, orificio pasanteK10 = Bloque de terminales, 2 vías, paso 5,08 mm, orificio pasante Misc.PCB 150177-1 v2.1Lista de materiales 160160-1 v1.1ResistenciaR1,R2,R10 = 1 kΩ, 1 %, 0W1, SMD 0603R3,R5 = 56 Ω, 1 %, 0W1, SMD 0603R4,R6 = 120 Ω, 1 %, 0W1, SMD 0603R7 = 5,6 kΩ, 1 %, 0W1 , SMD 0603R8 = 22 kΩ, 1 %, 0W1, SMD 0603R9 = 330 Ω, 1 %, 0W25, SMD 1206 CapacitorC1,C4 = 150 pF, 5 %, 50 V, C0G/NP0, SMD 0603C2,C3 = 270 pF, 5 %, 50 V, C0G/NP0, SMD 0603C5,C6,C8,C9,C11,C13-C18 = 100 nF, 10 %, 25 V, X7R, SMS 0603C7 = 1 nF, 5 %, 100 V, C0G. NP0, SMD 0603C10 = 8,2 pF, +/-0,25 pF, 50 V, C0G/C12 = 10 pF, 5 %, 50 V Inductor L1,L2,L3 = 330 nH, 5 %, 310 mA, fres 600 MHz (36502AR33JTDG, TE Connectivity)L4,L5,L6 = 1000 Ω a 100 MHz, 200 mA (HZ0603B102R-10, Laird Technologies) SemiconductorD1 = BAS70-04, SMD SOT-23LED1 = LED, verde, 50 mcd, 2,1 V a 20 mA, SMD 0805T1 = BFR520, 300 mW, 70 mA, 9 GHz, SMD SOT-23IC1,IC2 = SA602AD, SMD SO-8 OtrosK1,K2,K3,K5 = Conector SMA, conector recto, orificio pasante hembra, 50 ΩK4 = Cabezal de pines, 3 vías, SIL, paso 2,54 mm, vertical, orificio pasanteK6,K7 = Bloque de terminales, 2 vías, paso 5,08 mm, orificio pasanteFL1 = 45 MHz, 1 kOhm, filtro de cristal, 15 kHz (30 kHz también podría funcionar, 7,5 kHz es demasiado estrecho), SMD Misc.PCB 160160-1 v1.1
Estoy trabajando en un transceptor completo de alto rendimiento para SSB/CW de banda estrecha (y posiblemente también AM y FM) en onda corta y/o VHF (bandas de radioaficionados) basado en procesamiento de señal en un FPGA junto con ADC de 24 bits y un muy rápido DAC. Es independiente y no como la mayoría de los otros proyectos SDR que dependen de una PC. Del laboratorio: Placa FPGA DSP para radio de banda estrecha Descripción del circuito abstracto Interfaz de control de programación Placa de radio Lista de materiales Placa FPGA DSP (150177-1 v2.1) Lista de materiales 160160-1 v1.1