Descripción general
- SX1276 es un módem Lora que puede enviar y recibir datos a larga distancia (kilómetros de distancia) de una manera en energía.
- Este repositorio es ayudar al aprendizaje principiante a operar el chip SX1276 (hacer transmisión básica/TX y recepción/RX).
- Este repositorio es casi una reescritura de Martynwheeler/U-Lora con extensas anotaciones.
- El código es compatible con JGromes/Radiolib (una popular biblioteca Arduino Lora)
Donde encontrar sx1276
- Muchos tableros de desarrollo ESP32 Lora (Heltec Wifi Lora 32 V2, TTGO T-Beam V1.1) están usando SX1276.
- AdaFruit creó una ruptura independiente basada en SX1276: AdaFruit RFM95W
- De cualquier manera, el MCU habla con el chip SX1276 a través de una interfaz SPI.
Repo para el uso de producción
- La capa de enlace de Mac se implementa en otro repositorio
- Abundante
- Radiodifusión
- Solicitar el reconocimiento
- El salto de frecuencia también se implementa en el paquete grande de TranMit, ya que cumplimos con FCC 15.247: no se atasquen una frecuencia.
Ver el cableado
Cableado RFM95W con pico
- Decidimos qué GPIO queremos usar
# RFM95W Pico GPIO
LoRa_MISO_Pin = 16
LoRa_CS_Pin = 17
LoRa_SCK_Pin = 18
LoRa_MOSI_Pin = 19
LoRa_G0_Pin = 20 # DIO0_Pin
LoRa_EN_Pin = 21
LoRa_RST_Pin = 22
SPI_CH = 0

Heltec Wifi Lora 32 V2
- Predefinido (ver el pinout)
LoRa_MISO_Pin = 19
LoRa_MOSI_Pin = 27
LoRa_SCK_Pin = 5
LoRa_CS_Pin = 18
LoRa_RST_Pin = 14
LoRa_DIO0_Pin = 26
LoRa_DIO1_Pin = 35
LoRa_DIO2_Pin = 34
SPI_CH = 1

TTGO T-Beam v1.1
- Predefinido (ver el pinout)
LoRa_MISO_Pin = 19
LoRa_MOSI_Pin = 27
LoRa_SCK_Pin = 5
LoRa_CS_Pin = 18
LoRa_RST_Pin = 23
LoRa_DIO0_Pin = 26

Cómo usar SX1276
- Habilite el AdaFruit RFM95W antes de usar (no habilite PIN en otros tableros de desarrollo ESP32 para que siempre estén habilitados)
- Configurar la comunicación SPI para controlar el módem Lora
- Elija el modo Lora en lugar del modo FSK/OOK
- Establecer parámetros: ancho de banda (BW), velocidad de codificación (CR), modo de encabezado, factor de propagación (SF), palabra de sincronización, longitud del preámbulo, frecuencia, amplificador.
- El siguiente diagrama de cascada es cómo se ve la señal de Lora Modem, podría proporcionar un tutorial sobre los parámetros en el futuro
- Establezca un servicio de rutina de interrupción (IRS) para leer el mensaje entrante y monitorear el estado de trabajo del módem
- Cuando se recibe el mensaje durante RX, se activa un IRS y leemos el búfer de datos FIFO. Escribimos el búfer de datos FIFO antes de que se envíe el mensaje y luego se activa un IRS durante TX.
Estructura de paquetes
- Diagrama de cascada que muestra la representación física de la señal modulada.

- Encabezado (existe en modo explícito): duración de la carga útil, tasa de codificación de carga útil
- La tasa de codificación del encabezado explícito es 4/8 y la carga útil podría ser diferente (TX le dice a RX que usa CR TX).
- SF es para paquete completo

4.1.2. Interfaz digital Lora ®
- El módem Lora ® comprende tres tipos de interfaz digital,
- Registros de configuración estática
- Registros de estado
- un búfer de datos FIFO definido por el usuario de 256 bytes
- Controlamos el módem a través de esta interfaz digital
- Prácticamente, leemos/escribimos los registros de módem a través del protocolo SPI para que podamos configurar sus parámetros (registros de configuración estática), estado de consulta, enviar o recibir datos (registros de búfer).
Búfer de FIFO

- Para escribir datos de paquetes en el usuario de FIFO debe:
- Establezca el contenido de RegfifoAdDrptr en *RegFifoTXBaseAddr (registre el contenido de RegFifoTXBaseAddr).
- Escribir *RegPayLoadLength bytes al FIFO (Regfifo)
- Para leer los datos de paquetes del usuario de FIFO, debe:
- Establezca regfifoAddrptr a *regfiforxcurrentAddr.
- Leer RERXNBBYTES de Regfifo
Jerga en la hoja de datos
- RF: radiofrecuencia
- RFI: entrada RF
- RFO: salida de RF
- {Alta frecuencia: {banda 1: ~ 915mhz}, lf: {banda 2: ~ 433mhz, banda 3: ~ 150mhz}}
- PA: Amplificador de potencia
- Tres amplificadores: rfo_lf, rfo_hf, pa_boost
- PA_HP: alta potencia
- PA_HF y PA_LF son amplificadores de alta eficiencia
- AFC: corrección de frecuencia automática
- RFOP: potencia de salida de RF
Secuencia de transmisión de datos (hoja de datos Figura 9)
- Cambiar al modo de espera para que el módem inicialice todo
- Iniciar bucle TX
- Prepare la carga útil para TX
- Llenar el búfer de datos FIFO con carga útil
- Cambiar al modo TX
- Espera txdone irq
- En ISR, haz algo y borra las banderas irq
- Volver al modo de espera automáticamente
Secuencia de recepción de datos de modo continuo (Figura 10)
- Cambiar al modo de espera para que el módem inicie todo
- Cambiar al modo continuo RX
- Espere IRQ (rxDone y válido de cabeza/pago por carga)
- En ISR, lea FIFO Data Buffer para obtener carga útil
- Siguiente Irq y la próxima lectura de FIFO
Siga el código anotado para aprender SX1276
- Use Rasberry Pi Pico y Adafruit RFM95W como plataforma de aprendizaje
- Cómo ejecutar Micopython en Pico
- Los códigos de Micripthon TX y RX se comentan ampliamente para el aprendizaje
- Son compatibles con la biblioteca Radiolib.
- Gracias Martynwheeler/U-Lora y Jgromes