文章目錄
一、簡介
二、硬件準備
設備清單
接線說明
三、重要函數說明
四、調試
五、聯系我們
簡介
Ra-05、Ra-05U 是由安信可科技開發的 2.4GHz LoRa射頻收發模組,該模組搭載Semtech 公司的 SX1281 射頻芯片作為核心處理器,支持多種調制方式如LoRa、FLRC、GFSK 并可兼容藍牙協議。該模塊是純射頻收發模塊,需要使用MCU 驅動或使用專用的SPI調試工具。
Ra-05/Ra-05U亮點概括:
●支持免許可 ISM 2.4GHz 頻段。
●接收靈敏度LoRa 模式可達-132dBm(根據芯片手冊數據)。
●支持多種調制模式(GFSK Mode ,FLRC Mode,LoRa Mode,FSK調制)。
●速率可調,FLRC 調制方式下最高可達 1.3Mbps。
●Ra-05U天線接口采用 IPEX 座子,支持多種外接天線;Ra-05采用板載天線兼容IPEX座子。
01
硬件準備
設備清單
硬件 | 數量 |
Ra-05/Ra-05U 模組 | 2個 |
杜邦線 | 若干 |
USB轉TTL模塊 | 2個 |
STM32F103C8T6開發板 | 2個 |
MicroUSB線(安卓數據線) | 2根 |
接線說明
Ra-05/Ra-05U 模組 | STM32F103C8T6主控 |
NSS | PB7 |
MISO | PA6 |
MOSI | PA7 |
SCK | PA5 |
BUSY | PB5 |
DIO1 | PA1 |
NRESET | PB15 |
STM32F103C8T6主控 | USB轉TTL模塊 |
GND | GND |
PA_9 | Rx |
02
重要函數說明
整個工程主要由兩個部分組成:接收配置與處理以及發送配置與處理。
RF部分的配置
ModulationParams_t modulationParams; modulationParams.PacketType = PACKET_TYPE_LORA; modulationParams.Params.LoRa.SpreadingFactor = LORA_SF10; modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; modulationParams.Params.LoRa.CodingRate = LORA_CR_4_7; packetParams.PacketType = PACKET_TYPE_LORA; packetParams.Params.LoRa.PreambleLength = 20; packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; Radio.SetStandby( STDBY_XOSC ); Radio.WriteRegister(0x093C,0x1); switch(modulationParams.Params.LoRa.SpreadingFactor){ case LORA_SF5: case LORA_SF6: Radio.WriteRegister(0x0925,0x1E); break; case LORA_SF7: case LORA_SF8: Radio.WriteRegister(0x0925,0x37); break; case LORA_SF9: case LORA_SF10: case LORA_SF11: case LORA_SF12: Radio.WriteRegister(0x0925,0x32); break; } Radio.SetPacketType( modulationParams.PacketType ); Radio.SetModulationParams( &modulationParams ); Radio.SetPacketParams( &packetParams ); Radio.SetRfFrequency( RF_FREQUENCY ); Radio.SetBufferBaseAddresses( 0x00, 0x00 ); Radio.SetTxParams( TX_OUTPUT_POWER, RADIO_RAMP_02_US );
射頻部分主要配置參數有:
●PacketType :配置射頻模式,[PACKET_TYPE_LORA:LoRa調制方式]
●Bandwidth :帶寬配置;
LoRa: [LORA_BW_1600: 1600 kHz, LORA_BW_0800: 800kHz, LORA_BW_0400: 400kHz, LORA_BW_0200: 200 kHz]
●SpreadingFactor:擴頻因子;
LoRa: [LORA_SF5 ~ LORA_SF12]
●CodingRate:編碼率
LoRa:[LORA_CR_4_5: 4/5, LORA_CR_4_6: 4/6, LORA_CR_4_7: 4/7, LORA_CR_4_8: 4/8]
●PreambleLength:設置前導碼
LoRa:范圍 0~255
●HeaderType:頭部字類型
LORA_PACKET_VARIABLE_LENGTH:數據帶頭部字
LORA_PACKET_FIXED_LENGTH:數據不帶頭部字
●PayloadLength:有效數據長度
●CrcMode:是否開啟CRC校驗(LORA_CRC_OFF:關閉;LORA_CRC_ON:開啟)
●iqInverted:是否開啟IQ轉換功能(LORA_IQ_INVERTED:關閉;LORA_IQ_NORMAL:開啟)
●SetRfFrequency:配置頻點(范圍是:2400~2500)
●SetBufferBaseAddresses:設置發送與接收的基地址
●SetTxParams:配置發送參數
配置數據發送
Radio.SetDioIrqParams(TxIrqMask,IRQ_RADIO_NONE,IRQ_RADIO_NONE,IRQ_RADIO_NONE); Radio.SendPayload(Buffer, BufferSize, (TickTime_t){RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE});
●TxIrqMask:開啟發送中斷掩碼
●Buffer:要發送的有效數據
●BufferSize:要發送的有效數據的長度
配置數據接收
Radio.SetDioIrqParams(RxIrqMask,IRQ_RADIO_NONE,IRQ_RADIO_NONE,IRQ_RADIO_NONE); Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } );
●RxIrqMask:開啟接收中斷掩碼
●0xFFFF :配置連續接收模式
回調函數部分的設置
static void OnTxDone( void ); static void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ); static void OnTxTimeout( void ); static void OnRxTimeout( void ); static void OnRxError( void );
●發射完成中斷 “OnTxDone” ,該回調函數主要用于處理數據發送完成以后需要處理的邏輯內容。
●接收完成中斷 “OnRxDone” ,該回調函數主要用于對接收到的數據進行處理。
●發射超時中斷 “OnTxTimeout” ,該回調函數主要用于處理數據發送超時后的邏輯內容。
●接收完成中斷 “OnRxTimeout” ,該回調函數主要用于處理數據接收超時后的邏輯內容。
●接收數據校驗出錯中斷 “OnRxError” ,該回調函數主要用于處理接收到的數據校驗失敗后的邏輯內容。
03
調試
套件1,在文檔 “main.c” 中設置SEND_MODE為1,則模組工作在發送狀態,編譯發送固件。
套件2,在文檔 “main.c” 中設置SEND_MODE為0,則模組工作在接收狀態,編譯接收固件。
完成配置以后,一套設備燒錄接收固件,另一套設備燒錄發送固件,最后復位啟動設備,并通過串口查看數據收發是否成功。
效果如下:
04
聯系我們
以上就是本期分享的內容,目的在于讓大家快速適應新品方案的開發,更多資料可從我們官網上獲取。
官方官網:https://www.ai-thinker.com
開發資料:https://docs.ai-thinker.com/
官方論壇:http://bbs.ai-thinker.com
技術支持:support@aithinker.com
原貼地址:【2.4G LoRa】Ra-05/Ra-05U模組驅動說明
-
驅動
+關注
關注
12文章
1851瀏覽量
85508 -
模組
+關注
關注
6文章
1515瀏覽量
30555
原文標題:Ra-05/Ra-05U模組驅動說明
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論