Register Scan
Next step was to scan the Semtech SX127X registers and check the values were as expected
//---------------------------------------------------------------------------------
// Copyright (c) August 2018, devMobile Software
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//---------------------------------------------------------------------------------
namespace devMobile.IoT.NetMF.Rfm9X.RegisterScan
{
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
public sealed class Rfm9XDevice
{
private SPI rfm9XLoraModem = null;
public Rfm9XDevice(Cpu.Pin chipSelect)
{
this.rfm9XLoraModem = new SPI(new SPI.Configuration(chipSelect, false, 0, 0, false, true, 500, SPI.SPI_module.SPI1));
Thread.Sleep(100);
}
public Byte RegisterReadByte(byte registerAddress)
{
byte[] writeBuffer = new byte[] { registerAddress };
byte[] readBuffer = new byte[1];
Debug.Assert(rfm9XLoraModem != null);
rfm9XLoraModem.WriteRead(writeBuffer, readBuffer, 1);
return readBuffer[0];
}
}
public class Program
{
public static void Main()
{
Rfm9XDevice rfm9XDevice = new Rfm9XDevice(Pins.GPIO_PIN_D10);
while (true)
{
Debug.Print("---Registers 0x00 thru 0x42---");
for (byte registerIndex = 0; registerIndex > 4];
// Mask off the upper 4 bits to get the rest of it.
hexString += hexChars[singlebyte & 0x0F];
return hexString;
}
}
}
On start-up the device is not in LoRa mode so some weren’t set up properly.
---Registers 0x00 thru 0x42--- Register 0x00 - Value 0X00 Register 0x01 - Value 0X09 Register 0x02 - Value 0X1A Register 0x03 - Value 0X0B Register 0x04 - Value 0X00 Register 0x05 - Value 0X52 Register 0x06 - Value 0X6C Register 0x07 - Value 0X80 Register 0x08 - Value 0X00 Register 0x09 - Value 0X4F Register 0x0A - Value 0X09 Register 0x0B - Value 0X2B Register 0x0C - Value 0X20 Register 0x0D - Value 0X08 Register 0x0E - Value 0X02 Register 0x0F - Value 0X0A Register 0x10 - Value 0XFF Register 0x11 - Value 0X70 Register 0x12 - Value 0X15 Register 0x13 - Value 0X0B Register 0x14 - Value 0X28 Register 0x15 - Value 0X0C Register 0x16 - Value 0X12 Register 0x17 - Value 0X47 Register 0x18 - Value 0X32 Register 0x19 - Value 0X3E Register 0x1A - Value 0X00 Register 0x1B - Value 0X00 Register 0x1C - Value 0X00 Register 0x1D - Value 0X00 Register 0x1E - Value 0X00 Register 0x1F - Value 0X40 Register 0x20 - Value 0X00 Register 0x21 - Value 0X00 Register 0x22 - Value 0X00 Register 0x23 - Value 0X00 Register 0x24 - Value 0X05 Register 0x25 - Value 0X00 Register 0x26 - Value 0X03 Register 0x27 - Value 0X93 Register 0x28 - Value 0X55 Register 0x29 - Value 0X55 Register 0x2A - Value 0X55 Register 0x2B - Value 0X55 Register 0x2C - Value 0X55 Register 0x2D - Value 0X55 Register 0x2E - Value 0X55 Register 0x2F - Value 0X55 Register 0x30 - Value 0X90 Register 0x31 - Value 0X40 Register 0x32 - Value 0X40 Register 0x33 - Value 0X00 Register 0x34 - Value 0X00 Register 0x35 - Value 0X0F Register 0x36 - Value 0X00 Register 0x37 - Value 0X00 Register 0x38 - Value 0X00 Register 0x39 - Value 0XF5 Register 0x3A - Value 0X20 Register 0x3B - Value 0X82 Register 0x3C - Value 0X00 Register 0x3D - Value 0X02 Register 0x3E - Value 0X80 Register 0x3F - Value 0X40 Register 0x40 - Value 0X00 Register 0x41 - Value 0X00 Register 0x42 - Value 0X12
Next step reading & writing registers