Cómo configurar un chip CC1101 para transmitir y recibir exactamente a 433.68 MHZ

La respuesta de Zak Gluzman es excelente y ofrece un proceso realmente agradable para calibrar el dispositivo para que funcione a la frecuencia que desee.

Una cosa a tener en cuenta es que siempre habrá algún error proveniente del sintetizador en el dispositivo como resultado de la estabilidad de la referencia que utiliza.

Por lo que puedo decir, el kit de evaluación CC1101 utiliza un cristal bastante estándar de 26.0000 MHz como reloj de referencia. La serie de cristales Abracon ABLS2 es un dispositivo bastante estándar y de bajo costo; esto tiene una tolerancia de frecuencia en el peor de los casos de +/- 50 ppm, una estabilidad de frecuencia (sobre el rango de temperatura de funcionamiento) de +/- 50 ppm, y una deriva con el envejecimiento de +/- 5 ppm. Entonces, en el peor de los casos, en este ejemplo su referencia tiene una tolerancia de +/- 105 ppm. Esto significa que la variación de parte a parte en la frecuencia de su portadora será de 433.68 MHz +/- 45.5 KHz.

Puede evitar esto utilizando una fuente de reloj de referencia que tenga una mayor estabilidad: los TCXO tienden a tener una tolerancia general mucho mejor (<5 ppm), por lo que su frecuencia portadora sintetizada tendrá menos variación de parte a parte, sin embargo, los TCXO también tienden tener un rendimiento de jitter peor que los cristales estándar. Esta fluctuación puede manifestarse de varias maneras, incluidas las espuelas en la salida del transmisor, pero esto dependerá en gran medida del transmisor exacto que esté utilizando.

En última instancia, el requisito real de la frecuencia de transmisión que necesita y la fuente de reloj de referencia que necesita dependerán de una variedad de factores (ancho de banda de canal requerido, presupuesto de enlace deseado, etc.), por lo que todos estos factores deberán considerarse como usted Trabajar con este dispositivo.

Debe calibrarlo con un osciloscopio u otro instrumento de ajuste. Generalmente si está haciendo esta pregunta; Tendrá que pasar unos meses aprendiendo sobre ingeniería eléctrica y radio. También la TRANSMISIÓN no es fácil … por ejemplo:

  • TRANSMISOR:
    //////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////
    .include “tn13def.inc”
  • .def temp = r16
    .def temp2 = r17
    .def count = r18
    .def temp3 = r19
    .def temp4 = r20
  • Reiniciar:
    ldi temp, 0b00010000
    fuera DDRB, temp
    ldi temp, baja (RAMEND)
    fuera SPL, temp
    ldi temp, 0b00000101
    fuera TCCR0B, temp
  • principal:
    en temp, PINB
    ldi cuenta, 5
    sbi PORTB, 4; pulso de inicio
    demora de llamada
    demora de llamada
    demora de llamada
    cbi PORTB, 4
    demora de llamada
    demora de llamada
    demora de llamada
  • sendloop:
    dec cuenta
    breq endtrans
    sbrs temp, 3
    rjmp send0
    send1:
    sbi PORTB, 4
    demora de llamada
    demora de llamada
    cbi PORTB, 4
    demora de llamada
    demora de llamada
    lsl temp
    rjmp sendloop
    send0:
    sbi PORTB, 4
    demora de llamada
    cbi PORTB, 4
    demora de llamada
    lsl temp
    rjmp sendloop
    endtrans:
    rjmp main
    retrasar:
    ldi temp3, 221
    ldi temp4, 16
    delaya:
    dec temp3
    brne delaya
    ldi temp3, 221
    dec temp4
    brne delaya
    jubilado
  • //////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////
    RECEPTOR
  • .include “tn13def.inc”
  • .def temp = r16
    .def temp2 = r17
    .def count = r18
    .def datos = r19
  • .equ startbitlength = 30
    .equ bit1length = 21
    .equ bit0length = 11
    .equ startcutoff = 36
    .equ bit1cutoff = 27
    .equ bit0cutoff = 15
    .equ pulsecutoff = 5
    ; PB0-3 – LED (fuera)
    ; PB4 – Datos (en)
  • Reiniciar:
    ldi temp, 0b00001111
    fuera DDRB, temp
    ldi temp, RAMEND
    fuera spl, temp
    ldi temp, 0b00000101
    fuera TCCR0B, temp
  • principal:
    fuera de PORTB, datos; datos de salida
    sbis PINB, 4; espera el bit de inicio
    rjmp main
    ldi temp, 0
    fuera TCNT0, temp
  • parta:
    PIN sbic, 4
    rjmp parta
    en temp, TCNT0
    temperatura cpi, inicio de corte; tamaño del pulso de prueba
    brlo partb
    rjmp main
  • parte B:
    cpi temp, bit1cutoff
    brge partc
    rjmp main
  • partc:; subrutina de decodificación
    ldi cuenta, 4
    datos clr
  • partd:
    sbis PINB, 4; espera un poco
    rjmp partd
    ldi temp, 0
    fuera TCNT0, temp
  • parte:
    PIN sbic, 4
    rjmp parte
    en temp, TCNT0
    cpi temp, bit1cutoff
    brlo partf
    rjmp main
  • partf:
    cpi temp, bit0cutoff
    brlo partg
    datos de lsl
    sbr data, 1; ponga un 1 en el registro de datos
    dec cuenta
    breq main; todos los datos recibidos
    rjmp partd; o continuar decodificando
  • partg:
    datos de lsl
    datos cbr, 1
    dec cuenta
    breq main; todos los datos recibidos
    rjmp partd; o continuar decodificando

Ajuste de red PI para CC1101