|
|
@@ -47,7 +47,7 @@ function SX126xWriteCommand(command,buffer)
|
|
|
end
|
|
|
Drv_spi.drv_spi_read_write_byte(command,0)
|
|
|
sys.wait(20)
|
|
|
- drv_spi_read_write_byte(bufferTotal,0);
|
|
|
+ Drv_spi.drv_spi_read_write_byte(bufferTotal,0);
|
|
|
sys.wait(20)
|
|
|
end
|
|
|
|
|
|
@@ -68,9 +68,33 @@ function SX126xReadRegisters(address,size)
|
|
|
end
|
|
|
|
|
|
|
|
|
-function SX126xReadRegisters(address,size)
|
|
|
- SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_STANDBY)
|
|
|
-end
|
|
|
+function SX126xWriteRegisters(address,buffer,size)
|
|
|
+ if address == nil or buffer == nil or size == nil then
|
|
|
+ log.error("SX126xWriteRegisters","参数错误")
|
|
|
+ return
|
|
|
+ end
|
|
|
+ local command = sx126x_reg.RadioCommands.RADIO_WRITE_REGISTER
|
|
|
+ local sendData = command .. address .. "00"
|
|
|
+ local receiverDataCount= size
|
|
|
+
|
|
|
+ while size > 0 do
|
|
|
+ sendData = sendData .. "00"
|
|
|
+ size = size - 1
|
|
|
+ end
|
|
|
+
|
|
|
+ local result = Drv_spi.drv_spi_read_write_byte(sendData,receiverDataCount*2) --这里乘2的意思是,16进制是两位,但是转成字符串的形式就是4位了。
|
|
|
+
|
|
|
+ log.info("SX126xReadRegisters",result)
|
|
|
+ return result
|
|
|
+end
|
|
|
+
|
|
|
+function SX126xWriteRegister(address,value)
|
|
|
+ SX126xWriteRegisters( address,value,1);
|
|
|
+end
|
|
|
+
|
|
|
+-- function SX126xReadRegisters(address,size)
|
|
|
+-- SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_STANDBY)
|
|
|
+-- end
|
|
|
|
|
|
function SX126xSetStandby(standbyConfig)
|
|
|
SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_STANDBY,standbyConfig)
|
|
|
@@ -82,14 +106,54 @@ function SX126xSetStandby(standbyConfig)
|
|
|
end
|
|
|
end
|
|
|
|
|
|
+function SX126xSetRegulatorMode(mode)
|
|
|
+ SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_REGULATORMODE,mode)
|
|
|
+end
|
|
|
+
|
|
|
+function SX126xSetBufferBaseAddress(txBaseAddress, rxBaseAddress)
|
|
|
+ local buf = {txBaseAddress,rxBaseAddress}
|
|
|
+ SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_BUFFERBASEADDRESS,buf)
|
|
|
+end
|
|
|
+
|
|
|
+function SX126xSetPaConfig(paDutyCycle,hpMax,deviceSel,paLut)
|
|
|
+ local buf = {paDutyCycle,hpMax,deviceSel,paLut}
|
|
|
+ -- log.info("SX126xSetPaConfig",buf)
|
|
|
+ SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_PACONFIG,buf)
|
|
|
+end
|
|
|
+
|
|
|
+function SX126xSetTxParams(power, rampTime)
|
|
|
+ local buf = {power,rampTime}
|
|
|
+ SX126xSetPaConfig("04","07","00","01")
|
|
|
+ SX126xWriteRegister( sx126x_reg.REG_OCP, "38" );
|
|
|
+ SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_TXPARAMS,buf)
|
|
|
+
|
|
|
+end
|
|
|
+
|
|
|
+function SX126xSetDioIrqParams(timeout, freq, rfChain, power, preambleLen)
|
|
|
+ local buf = {timeout, freq, rfChain, power, preambleLen}
|
|
|
+ SX126xSetTxParams(power, sx126x_reg.RadioRampTimes_t.RADIO_RAMP_40_US)
|
|
|
+ SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_SET_TX,buf)
|
|
|
+end
|
|
|
+
|
|
|
+function RadioStandby()
|
|
|
+
|
|
|
+end
|
|
|
|
|
|
-- 初始化SX126x
|
|
|
function SX126xInit()
|
|
|
SX126xIoInit()
|
|
|
SX126xReset()
|
|
|
SX126xWakeup()
|
|
|
- local test = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
|
|
|
- SX126xSetStandby(test)
|
|
|
+ local table = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
|
|
|
+ SX126xSetStandby(table)
|
|
|
+ local table1 = {sx126x_reg.RadioStandbyModes_t.USE_DCDC}
|
|
|
+ SX126xSetRegulatorMode(table1)
|
|
|
+ SX126xSetBufferBaseAddress("00","00")
|
|
|
+ SX126xSetTxParams( 0, RADIO_RAMP_200_US )
|
|
|
+ SX126xSetDioIrqParams( IRQ_RADIO_ALL, IRQ_RADIO_ALL, IRQ_RADIO_NONE, IRQ_RADIO_NONE )
|
|
|
+
|
|
|
+ local table2 = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
|
|
|
+ SX126xSetStandby(table2)
|
|
|
end
|
|
|
|
|
|
|
|
|
@@ -142,18 +206,18 @@ end
|
|
|
|
|
|
|
|
|
--测试案例:测试初始化
|
|
|
--- sys.taskInit(function ()
|
|
|
--- sys.wait(3000)
|
|
|
--- SX126xInit()
|
|
|
--- sys.wait(3000)
|
|
|
--- log.info("计算结果", "测试1")
|
|
|
--- end)
|
|
|
-
|
|
|
---测试案例:拼接buffer
|
|
|
sys.taskInit(function ()
|
|
|
sys.wait(3000)
|
|
|
- SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_READ_REGISTER,numbers)
|
|
|
+ SX126xInit()
|
|
|
sys.wait(3000)
|
|
|
log.info("计算结果", "测试1")
|
|
|
end)
|
|
|
|
|
|
+-- --测试案例:拼接buffer
|
|
|
+-- sys.taskInit(function ()
|
|
|
+-- sys.wait(3000)
|
|
|
+-- SX126xWriteCommand(sx126x_reg.RadioCommands.RADIO_READ_REGISTER,numbers)
|
|
|
+-- sys.wait(3000)
|
|
|
+-- log.info("计算结果", "测试1")
|
|
|
+-- end)
|
|
|
+
|