xuxinyi 4 місяців тому
батько
коміт
ca45d01fa2
2 змінених файлів з 25 додано та 22 видалено
  1. 1 1
      drv_periph/Drv_spi.lua
  2. 24 21
      drv_periph/sx126x_driver.lua

+ 1 - 1
drv_periph/Drv_spi.lua

@@ -19,7 +19,7 @@ result = nil
     初始化SPI接口
 ]]
 function SPI_GPIO_Init()
-    result = spi.setup(spi.SPI_1,0,0,8,800000,1)--初始化spi,
+    result = spi.setup(spi.SPI_1,0,0,8,100000,1)--初始化spi,
     log.info("spi1",spi.SPI_1)
     -- log.info("Lora Spi init :",result)
 end

+ 24 - 21
drv_periph/sx126x_driver.lua

@@ -124,12 +124,13 @@ end
 
 
 function SX126xSetStandby(standbyConfig)
-    SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_STANDBY,{standbyConfig})
+    SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_STANDBY,{"00"})
+    -- log.info("SX126xSetStandby_操作模式",standbyConfig)
 
-    if standbyConfig[0] == sx126x_reg.RadioStandbyModes_t.STDBY_RC then
-        OperatingMode = sx126x_reg.RadioOperatingModes_t.STDBY_RC
+    if standbyConfig == sx126x_reg.RadioStandbyModes_t.STDBY_RC then
+        OperatingMode = sx126x_reg.RadioStandbyModes_t.STDBY_RC
     else
-        OperatingMode = sx126x_reg.RadioOperatingModes_t.STDBY_XOSC
+        OperatingMode = sx126x_reg.RadioStandbyModes_t.STDBY_XOSC
     end
 end
 
@@ -151,7 +152,7 @@ end
 function SX126xSetTxParams(power, rampTime)
     local buf = {power,rampTime}
     SX126xSetPaConfig("04","07","00","01")
-SX126xWriteRegister( sx126x_reg.REG_OCP, {"38"} ); 
+    SX126xWriteRegister( sx126x_reg.REG_OCP, {"38"} ); 
     SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_TXPARAMS,buf)
 
 end
@@ -256,7 +257,7 @@ function RadioSetTxConfig(modem,power,fdev,bandwidth,datarate,coderate,preambleL
     SX126xSetLoRaSymbNumTimeout("00")
     SX126xCopy.ModulationParams.PacketType = sx126x_reg.RadioPacketTypes_t.PACKET_TYPE_LORA
 	SX126xCopy.ModulationParams.Params.LoRa.SpreadingFactor = "0b"
-	SX126xCopy.ModulationParams.Params.LoRa.Bandwidth =  "06"
+	SX126xCopy.ModulationParams.Params.LoRa.Bandwidth =  "05"
 	SX126xCopy.ModulationParams.Params.LoRa.CodingRate= coderate
 
     -- if ( (bandwidth == 0) and ( (datarate == 11) or (datarate == 12) ) ) or ( (bandwidth == 1) and (datarate == 12) ) then
@@ -297,7 +298,7 @@ function SX126xWriteBuffer(offset, buffer,size)
     log.info("SX126xWriteBuffer",offset,buffer,size)
     local sentdata = offset .. buffer
     Drv_spi.drv_spi_read_write_byte(sx126x_reg.RadioCommands.RADIO_WRITE_BUFFER,0)
-    Drv_spi.drv_spi_read_write_byte(sentdata,0)
+    Drv_spi.drv_spi_read_write_byte(sentdata,10)
 
 end
 
@@ -330,22 +331,23 @@ function SX126xInit()
     SX126xIoInit()
     SX126xReset()
     SX126xWakeup()
-    -- -- local table = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
+    SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
+    -- local table = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
     SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
-    -- local table1 = {sx126x_reg.RadioStandbyModes_t.USE_DCDC}
-    SX126xSetRegulatorMode(sx126x_reg.RadioStandbyModes_t.USE_DCDC)
-    SX126xSetBufferBaseAddress("00","00")
-    SX126xSetTxParams( "00", sx126x_reg.RadioRampTimes_t.RADIO_RAMP_200_US )
-    SX126xSetDioIrqParams( sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE )
+    -- -- local table1 = {sx126x_reg.RadioStandbyModes_t.USE_DCDC}
+    -- SX126xSetRegulatorMode(sx126x_reg.RadioStandbyModes_t.USE_DCDC)
+    -- SX126xSetBufferBaseAddress("00","00")
+    -- SX126xSetTxParams( "00", sx126x_reg.RadioRampTimes_t.RADIO_RAMP_200_US )
+    -- SX126xSetDioIrqParams( sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE )
 
-    -- local table2 = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
-    SX126xSetStandby("00")
+    -- -- -- local table2 = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
+    -- SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
 
-    sys.wait(2000)
-    RadioSetTxConfig(sx126x_reg.RadioModems_t.MODEM_LORA,"16",0,1,7,"01","0c","00","01","00","00","00",3000)
+    -- sys.wait(2000)
+    -- RadioSetTxConfig(sx126x_reg.RadioModems_t.MODEM_LORA,"16",0,1,7,"01","0c","00","01","00","00","00",3000)
 
-    
-    RadioSetChannel("19CF0E40") 
+    -- log.info("RadioSetTxConfig",string.format("%02X", 433000000))
+    -- RadioSetChannel(string.format("%02X", 433000000)) 
 end
 
 sys.taskInit(function ()
@@ -374,9 +376,10 @@ sys.taskInit(function ()
     
         sys.wait(20)
         log.info("计算结果")
-        RadioSend("A9","01","00")
+        -- RadioSend("A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9","01","00")
         SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
-        sys.wait(2000)
+        -- SX126xWakeup()
+        sys.wait(1000)
     end
     spi.close(spi.SPI_1)
 end)