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