/* LMS7002M control using LimeSDR-USB GPIOs, simple example. Connection to LimeSDR-USB FPGA_GPIO board: * Arduino SCK (pin 13) - to J12.1 on LimeSDR-USB, via 5V to 3V3 level converter * Arduino MISO (pin 12) - to J12.3 on LimeSDR-USB * Arduino MOSI (pin 11) - to J12.5 on LimeSDR-USB, via 5V to 3V3 level converter * Arduino SS (pin 10) - to J12.7 on LimeSDR-USB, via 5V to 3V3 level converter * Arduino GND - to J12.9 on LimeSDR-USB created 31 Mar 2017 by Zydrunas Tamosevicius, based on Arduino SPI example. */ // Include the SPI library: #include // Global variables unsigned int rreg; unsigned int raddr; int i=0; int j=0; // set pin 10 as the slave select for LMS7002M const int LMS7_SS_Pin = 10; // Chip select pin. void setup() { //pinMode(LED_BUILTIN, OUTPUT); // set the slaveSelectPin as an output: pinMode(LMS7_SS_Pin, OUTPUT); // initialize SPI: SPI.begin(); //Initialize serial and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // prints title with ending line break Serial.println("LMS7002M control using LimeSDR-USB GPIOs."); ///////////////////////////////////////////////////////////////////////////////////////////////// // Channel A (0x0020(1,0) is set to 0000 0000 0000 0001 LMS7002M_WR(0x0020, 0xFFFD); LMS7002M_WR(0x0021, 0x0E9F); LMS7002M_WR(0x0022, 0x07DF); LMS7002M_WR(0x0023, 0x5550); LMS7002M_WR(0x0024, 0xE4E4); LMS7002M_WR(0x0025, 0x0101); LMS7002M_WR(0x0026, 0x0101); LMS7002M_WR(0x0027, 0xE4E4); LMS7002M_WR(0x0028, 0x0101); LMS7002M_WR(0x0029, 0x0101); LMS7002M_WR(0x002A, 0x02A6); LMS7002M_WR(0x002B, 0x0038); LMS7002M_WR(0x002C, 0x0000); LMS7002M_WR(0x002D, 0x0000); LMS7002M_WR(0x002E, 0x0000); LMS7002M_WR(0x002F, 0x3841); LMS7002M_WR(0x0081, 0x0001); LMS7002M_WR(0x0082, 0x8001); LMS7002M_WR(0x0084, 0x0400); LMS7002M_WR(0x0085, 0x0001); LMS7002M_WR(0x0086, 0x4101); LMS7002M_WR(0x0087, 0x0000); LMS7002M_WR(0x0088, 0x04D2); LMS7002M_WR(0x0089, 0x1020); LMS7002M_WR(0x008A, 0x0514); LMS7002M_WR(0x008B, 0x2156); LMS7002M_WR(0x008C, 0x267B); LMS7002M_WR(0x0092, 0x0001); LMS7002M_WR(0x0093, 0x0000); LMS7002M_WR(0x0094, 0x0000); LMS7002M_WR(0x0095, 0x0000); LMS7002M_WR(0x0096, 0x0000); LMS7002M_WR(0x0097, 0x0000); LMS7002M_WR(0x0098, 0x0000); LMS7002M_WR(0x0099, 0x6565); LMS7002M_WR(0x009A, 0x658C); LMS7002M_WR(0x009B, 0x6565); LMS7002M_WR(0x009C, 0x658C); LMS7002M_WR(0x009D, 0x6565); LMS7002M_WR(0x009E, 0x658C); LMS7002M_WR(0x009F, 0x658C); LMS7002M_WR(0x00A0, 0x6565); LMS7002M_WR(0x00A1, 0x6565); LMS7002M_WR(0x00A2, 0x6565); LMS7002M_WR(0x00A3, 0x6565); LMS7002M_WR(0x00A4, 0x6565); LMS7002M_WR(0x00A5, 0x6565); LMS7002M_WR(0x00A6, 0x000F); LMS7002M_WR(0x00A7, 0x6565); LMS7002M_WR(0x00A8, 0x0000); LMS7002M_WR(0x00A9, 0x0000); LMS7002M_WR(0x00AA, 0x0000); LMS7002M_WR(0x00AB, 0x0040); LMS7002M_WR(0x00AC, 0x0000); LMS7002M_WR(0x00AD, 0x03FF); LMS7002M_WR(0x00AE, 0xF000); LMS7002M_WR(0x0100, 0x7409); LMS7002M_WR(0x0101, 0x7FFE); LMS7002M_WR(0x0102, 0x3180); LMS7002M_WR(0x0103, 0x0A12); LMS7002M_WR(0x0104, 0x0088); LMS7002M_WR(0x0105, 0x0011); LMS7002M_WR(0x0106, 0x318C); LMS7002M_WR(0x0107, 0x318C); LMS7002M_WR(0x0108, 0x9426); LMS7002M_WR(0x0109, 0x61FF); LMS7002M_WR(0x010A, 0x006E); LMS7002M_WR(0x010C, 0x8865); LMS7002M_WR(0x010D, 0x011B); LMS7002M_WR(0x010E, 0x2040); LMS7002M_WR(0x010F, 0x3042); LMS7002M_WR(0x0110, 0x0BF4); LMS7002M_WR(0x0111, 0x0083); LMS7002M_WR(0x0112, 0x51E1); LMS7002M_WR(0x0113, 0x03C3); LMS7002M_WR(0x0114, 0x0170); LMS7002M_WR(0x0115, 0x0009); LMS7002M_WR(0x0116, 0x8620); LMS7002M_WR(0x0117, 0x2809); LMS7002M_WR(0x0118, 0x018C); LMS7002M_WR(0x0119, 0x529A); LMS7002M_WR(0x011A, 0x2200); LMS7002M_WR(0x011C, 0xAD41); LMS7002M_WR(0x011D, 0x2AAA); LMS7002M_WR(0x011E, 0x064F); LMS7002M_WR(0x011F, 0x3680); LMS7002M_WR(0x0120, 0xB9FF); LMS7002M_WR(0x0121, 0x36DA); LMS7002M_WR(0x0122, 0x033F); LMS7002M_WR(0x0123, 0x267B); LMS7002M_WR(0x0124, 0x001F); LMS7002M_WR(0x0200, 0x0081); LMS7002M_WR(0x0201, 0x07FF); LMS7002M_WR(0x0202, 0x07FF); LMS7002M_WR(0x0203, 0x0000); LMS7002M_WR(0x0204, 0x0000); LMS7002M_WR(0x0205, 0x0000); LMS7002M_WR(0x0206, 0x0000); LMS7002M_WR(0x0207, 0x0000); LMS7002M_WR(0x0208, 0x0073); LMS7002M_WR(0x0209, 0x0000); LMS7002M_WR(0x020A, 0x0080); LMS7002M_WR(0x020B, 0x0000); LMS7002M_WR(0x020C, 0x0000); LMS7002M_WR(0x0240, 0x0020); LMS7002M_WR(0x0241, 0x0000); LMS7002M_WR(0x0242, 0x0000); LMS7002M_WR(0x0243, 0x015D); LMS7002M_WR(0x0244, 0x0000); LMS7002M_WR(0x0245, 0x0000); LMS7002M_WR(0x0246, 0x0000); LMS7002M_WR(0x0247, 0x0000); LMS7002M_WR(0x0248, 0x0000); LMS7002M_WR(0x0249, 0x0000); LMS7002M_WR(0x024A, 0x0000); LMS7002M_WR(0x024B, 0x0000); LMS7002M_WR(0x024C, 0x0000); LMS7002M_WR(0x024D, 0x0000); LMS7002M_WR(0x024E, 0x0000); LMS7002M_WR(0x024F, 0x0000); LMS7002M_WR(0x0250, 0x0000); LMS7002M_WR(0x0251, 0x0000); LMS7002M_WR(0x0252, 0x0000); LMS7002M_WR(0x0253, 0x0000); LMS7002M_WR(0x0254, 0x0000); LMS7002M_WR(0x0255, 0x0000); LMS7002M_WR(0x0256, 0x0000); LMS7002M_WR(0x0257, 0x0000); LMS7002M_WR(0x0258, 0x0000); LMS7002M_WR(0x0259, 0x0000); LMS7002M_WR(0x025A, 0x0000); LMS7002M_WR(0x025B, 0x0000); LMS7002M_WR(0x025C, 0x0000); LMS7002M_WR(0x025D, 0x0000); LMS7002M_WR(0x025E, 0x0000); LMS7002M_WR(0x025F, 0x0000); LMS7002M_WR(0x0260, 0x0000); LMS7002M_WR(0x0261, 0x0000); LMS7002M_WR(0x0280, 0x0000); LMS7002M_WR(0x0281, 0x0000); LMS7002M_WR(0x0282, 0x0000); LMS7002M_WR(0x0283, 0x0000); LMS7002M_WR(0x0284, 0x0000); LMS7002M_WR(0x0285, 0x0000); LMS7002M_WR(0x0286, 0x0000); LMS7002M_WR(0x0287, 0x0000); LMS7002M_WR(0x0288, 0x0000); LMS7002M_WR(0x0289, 0x0000); LMS7002M_WR(0x028A, 0x0000); LMS7002M_WR(0x028B, 0x0000); LMS7002M_WR(0x028C, 0x0000); LMS7002M_WR(0x028D, 0x0000); LMS7002M_WR(0x028E, 0x0000); LMS7002M_WR(0x028F, 0x0000); LMS7002M_WR(0x0290, 0x0000); LMS7002M_WR(0x0291, 0x0000); LMS7002M_WR(0x0292, 0x0000); LMS7002M_WR(0x0293, 0x0000); LMS7002M_WR(0x0294, 0x0000); LMS7002M_WR(0x0295, 0x0000); LMS7002M_WR(0x0296, 0x0000); LMS7002M_WR(0x0297, 0x0000); LMS7002M_WR(0x0298, 0x0000); LMS7002M_WR(0x0299, 0x0000); LMS7002M_WR(0x029A, 0x0000); LMS7002M_WR(0x029B, 0x0000); LMS7002M_WR(0x029C, 0x0000); LMS7002M_WR(0x029D, 0x0000); LMS7002M_WR(0x029E, 0x0000); LMS7002M_WR(0x029F, 0x0000); LMS7002M_WR(0x02A0, 0x0000); LMS7002M_WR(0x02A1, 0x0000); LMS7002M_WR(0x02A2, 0x0000); LMS7002M_WR(0x02A3, 0x0000); LMS7002M_WR(0x02A4, 0x0000); LMS7002M_WR(0x02A5, 0x0000); LMS7002M_WR(0x02A6, 0x0000); LMS7002M_WR(0x02A7, 0x0000); LMS7002M_WR(0x02C0, 0x0000); LMS7002M_WR(0x02C1, 0x0000); LMS7002M_WR(0x02C2, 0x0000); LMS7002M_WR(0x02C3, 0x0000); LMS7002M_WR(0x02C4, 0x0000); LMS7002M_WR(0x02C5, 0x0000); LMS7002M_WR(0x02C6, 0x0000); LMS7002M_WR(0x02C7, 0x0000); LMS7002M_WR(0x02C8, 0x0000); LMS7002M_WR(0x02C9, 0x0000); LMS7002M_WR(0x02CA, 0x0000); LMS7002M_WR(0x02CB, 0x0000); LMS7002M_WR(0x02CC, 0x0000); LMS7002M_WR(0x02CD, 0x0000); LMS7002M_WR(0x02CE, 0x0000); LMS7002M_WR(0x02CF, 0x0000); LMS7002M_WR(0x02D0, 0x0000); LMS7002M_WR(0x02D1, 0x0000); LMS7002M_WR(0x02D2, 0x0000); LMS7002M_WR(0x02D3, 0x0000); LMS7002M_WR(0x02D4, 0x0000); LMS7002M_WR(0x02D5, 0x0000); LMS7002M_WR(0x02D6, 0x0000); LMS7002M_WR(0x02D7, 0x0000); LMS7002M_WR(0x02D8, 0x0000); LMS7002M_WR(0x02D9, 0x0000); LMS7002M_WR(0x02DA, 0x0000); LMS7002M_WR(0x02DB, 0x0000); LMS7002M_WR(0x02DC, 0x0000); LMS7002M_WR(0x02DD, 0x0000); LMS7002M_WR(0x02DE, 0x0000); LMS7002M_WR(0x02DF, 0x0000); LMS7002M_WR(0x02E0, 0x0000); LMS7002M_WR(0x02E1, 0x0000); LMS7002M_WR(0x02E2, 0x0000); LMS7002M_WR(0x02E3, 0x0000); LMS7002M_WR(0x02E4, 0x0000); LMS7002M_WR(0x02E5, 0x0000); LMS7002M_WR(0x02E6, 0x0000); LMS7002M_WR(0x02E7, 0x0000); LMS7002M_WR(0x0300, 0x0000); LMS7002M_WR(0x0301, 0x0000); LMS7002M_WR(0x0302, 0x0000); LMS7002M_WR(0x0303, 0x0000); LMS7002M_WR(0x0304, 0x0000); LMS7002M_WR(0x0305, 0x0000); LMS7002M_WR(0x0306, 0x0000); LMS7002M_WR(0x0307, 0x0000); LMS7002M_WR(0x0308, 0x0000); LMS7002M_WR(0x0309, 0x0000); LMS7002M_WR(0x030A, 0x0000); LMS7002M_WR(0x030B, 0x0000); LMS7002M_WR(0x030C, 0x0000); LMS7002M_WR(0x030D, 0x0000); LMS7002M_WR(0x030E, 0x0000); LMS7002M_WR(0x030F, 0x0000); LMS7002M_WR(0x0310, 0x0000); LMS7002M_WR(0x0311, 0x0000); LMS7002M_WR(0x0312, 0x0000); LMS7002M_WR(0x0313, 0x0000); LMS7002M_WR(0x0314, 0x0000); LMS7002M_WR(0x0315, 0x0000); LMS7002M_WR(0x0316, 0x0000); LMS7002M_WR(0x0317, 0x0000); LMS7002M_WR(0x0318, 0x0000); LMS7002M_WR(0x0319, 0x0000); LMS7002M_WR(0x031A, 0x0000); LMS7002M_WR(0x031B, 0x0000); LMS7002M_WR(0x031C, 0x0000); LMS7002M_WR(0x031D, 0x0000); LMS7002M_WR(0x031E, 0x0000); LMS7002M_WR(0x031F, 0x0000); LMS7002M_WR(0x0320, 0x0000); LMS7002M_WR(0x0321, 0x0000); LMS7002M_WR(0x0322, 0x0000); LMS7002M_WR(0x0323, 0x0000); LMS7002M_WR(0x0324, 0x0000); LMS7002M_WR(0x0325, 0x0000); LMS7002M_WR(0x0326, 0x0000); LMS7002M_WR(0x0327, 0x0000); LMS7002M_WR(0x0340, 0x0000); LMS7002M_WR(0x0341, 0x0000); LMS7002M_WR(0x0342, 0x0000); LMS7002M_WR(0x0343, 0x0000); LMS7002M_WR(0x0344, 0x0000); LMS7002M_WR(0x0345, 0x0000); LMS7002M_WR(0x0346, 0x0000); LMS7002M_WR(0x0347, 0x0000); LMS7002M_WR(0x0348, 0x0000); LMS7002M_WR(0x0349, 0x0000); LMS7002M_WR(0x034A, 0x0000); LMS7002M_WR(0x034B, 0x0000); LMS7002M_WR(0x034C, 0x0000); LMS7002M_WR(0x034D, 0x0000); LMS7002M_WR(0x034E, 0x0000); LMS7002M_WR(0x034F, 0x0000); LMS7002M_WR(0x0350, 0x0000); LMS7002M_WR(0x0351, 0x0000); LMS7002M_WR(0x0352, 0x0000); LMS7002M_WR(0x0353, 0x0000); LMS7002M_WR(0x0354, 0x0000); LMS7002M_WR(0x0355, 0x0000); LMS7002M_WR(0x0356, 0x0000); LMS7002M_WR(0x0357, 0x0000); LMS7002M_WR(0x0358, 0x0000); LMS7002M_WR(0x0359, 0x0000); LMS7002M_WR(0x035A, 0x0000); LMS7002M_WR(0x035B, 0x0000); LMS7002M_WR(0x035C, 0x0000); LMS7002M_WR(0x035D, 0x0000); LMS7002M_WR(0x035E, 0x0000); LMS7002M_WR(0x035F, 0x0000); LMS7002M_WR(0x0360, 0x0000); LMS7002M_WR(0x0361, 0x0000); LMS7002M_WR(0x0362, 0x0000); LMS7002M_WR(0x0363, 0x0000); LMS7002M_WR(0x0364, 0x0000); LMS7002M_WR(0x0365, 0x0000); LMS7002M_WR(0x0366, 0x0000); LMS7002M_WR(0x0367, 0x0000); LMS7002M_WR(0x0380, 0x0000); LMS7002M_WR(0x0381, 0x0000); LMS7002M_WR(0x0382, 0x0000); LMS7002M_WR(0x0383, 0x0000); LMS7002M_WR(0x0384, 0x0000); LMS7002M_WR(0x0385, 0x0000); LMS7002M_WR(0x0386, 0x0000); LMS7002M_WR(0x0387, 0x0000); LMS7002M_WR(0x0388, 0x0000); LMS7002M_WR(0x0389, 0x0000); LMS7002M_WR(0x038A, 0x0000); LMS7002M_WR(0x038B, 0x0000); LMS7002M_WR(0x038C, 0x0000); LMS7002M_WR(0x038D, 0x0000); LMS7002M_WR(0x038E, 0x0000); LMS7002M_WR(0x038F, 0x0000); LMS7002M_WR(0x0390, 0x0000); LMS7002M_WR(0x0391, 0x0000); LMS7002M_WR(0x0392, 0x0000); LMS7002M_WR(0x0393, 0x0000); LMS7002M_WR(0x0394, 0x0000); LMS7002M_WR(0x0395, 0x0000); LMS7002M_WR(0x0396, 0x0000); LMS7002M_WR(0x0397, 0x0000); LMS7002M_WR(0x0398, 0x0000); LMS7002M_WR(0x0399, 0x0000); LMS7002M_WR(0x039A, 0x0000); LMS7002M_WR(0x039B, 0x0000); LMS7002M_WR(0x039C, 0x0000); LMS7002M_WR(0x039D, 0x0000); LMS7002M_WR(0x039E, 0x0000); LMS7002M_WR(0x039F, 0x0000); LMS7002M_WR(0x03A0, 0x0000); LMS7002M_WR(0x03A1, 0x0000); LMS7002M_WR(0x03A2, 0x0000); LMS7002M_WR(0x03A3, 0x0000); LMS7002M_WR(0x03A4, 0x0000); LMS7002M_WR(0x03A5, 0x0000); LMS7002M_WR(0x03A6, 0x0000); LMS7002M_WR(0x03A7, 0x0000); LMS7002M_WR(0x0400, 0x2081); LMS7002M_WR(0x0401, 0x07FF); LMS7002M_WR(0x0402, 0x07FF); LMS7002M_WR(0x0403, 0x0000); LMS7002M_WR(0x0404, 0x0007); LMS7002M_WR(0x0405, 0x0000); LMS7002M_WR(0x0406, 0x0000); LMS7002M_WR(0x0407, 0x0000); LMS7002M_WR(0x0408, 0x0000); LMS7002M_WR(0x0409, 0x0000); LMS7002M_WR(0x040A, 0x1000); LMS7002M_WR(0x040B, 0x0000); LMS7002M_WR(0x040C, 0x203B); LMS7002M_WR(0x040D, 0x0000); LMS7002M_WR(0x040E, 0x03F2); LMS7002M_WR(0x040F, 0x03D5); LMS7002M_WR(0x0440, 0x0020); LMS7002M_WR(0x0441, 0x0000); LMS7002M_WR(0x0442, 0x0000); LMS7002M_WR(0x0443, 0x015D); LMS7002M_WR(0x0444, 0x0000); LMS7002M_WR(0x0445, 0x0000); LMS7002M_WR(0x0446, 0x0000); LMS7002M_WR(0x0447, 0x0000); LMS7002M_WR(0x0448, 0x0000); LMS7002M_WR(0x0449, 0x0000); LMS7002M_WR(0x044A, 0x0000); LMS7002M_WR(0x044B, 0x0000); LMS7002M_WR(0x044C, 0x0000); LMS7002M_WR(0x044D, 0x0000); LMS7002M_WR(0x044E, 0x0000); LMS7002M_WR(0x044F, 0x0000); LMS7002M_WR(0x0450, 0x0000); LMS7002M_WR(0x0451, 0x0000); LMS7002M_WR(0x0452, 0x0000); LMS7002M_WR(0x0453, 0x0000); LMS7002M_WR(0x0454, 0x0000); LMS7002M_WR(0x0455, 0x0000); LMS7002M_WR(0x0456, 0x0000); LMS7002M_WR(0x0457, 0x0000); LMS7002M_WR(0x0458, 0x0000); LMS7002M_WR(0x0459, 0x0000); LMS7002M_WR(0x045A, 0x0000); LMS7002M_WR(0x045B, 0x0000); LMS7002M_WR(0x045C, 0x0000); LMS7002M_WR(0x045D, 0x0000); LMS7002M_WR(0x045E, 0x0000); LMS7002M_WR(0x045F, 0x0000); LMS7002M_WR(0x0460, 0x0000); LMS7002M_WR(0x0461, 0x0000); LMS7002M_WR(0x0480, 0x0000); LMS7002M_WR(0x0481, 0x0000); LMS7002M_WR(0x0482, 0x0000); LMS7002M_WR(0x0483, 0x0000); LMS7002M_WR(0x0484, 0x0000); LMS7002M_WR(0x0485, 0x0000); LMS7002M_WR(0x0486, 0x0000); LMS7002M_WR(0x0487, 0x0000); LMS7002M_WR(0x0488, 0x0000); LMS7002M_WR(0x0489, 0x0000); LMS7002M_WR(0x048A, 0x0000); LMS7002M_WR(0x048B, 0x0000); LMS7002M_WR(0x048C, 0x0000); LMS7002M_WR(0x048D, 0x0000); LMS7002M_WR(0x048E, 0x0000); LMS7002M_WR(0x048F, 0x0000); LMS7002M_WR(0x0490, 0x0000); LMS7002M_WR(0x0491, 0x0000); LMS7002M_WR(0x0492, 0x0000); LMS7002M_WR(0x0493, 0x0000); LMS7002M_WR(0x0494, 0x0000); LMS7002M_WR(0x0495, 0x0000); LMS7002M_WR(0x0496, 0x0000); LMS7002M_WR(0x0497, 0x0000); LMS7002M_WR(0x0498, 0x0000); LMS7002M_WR(0x0499, 0x0000); LMS7002M_WR(0x049A, 0x0000); LMS7002M_WR(0x049B, 0x0000); LMS7002M_WR(0x049C, 0x0000); LMS7002M_WR(0x049D, 0x0000); LMS7002M_WR(0x049E, 0x0000); LMS7002M_WR(0x049F, 0x0000); LMS7002M_WR(0x04A0, 0x0000); LMS7002M_WR(0x04A1, 0x0000); LMS7002M_WR(0x04A2, 0x0000); LMS7002M_WR(0x04A3, 0x0000); LMS7002M_WR(0x04A4, 0x0000); LMS7002M_WR(0x04A5, 0x0000); LMS7002M_WR(0x04A6, 0x0000); LMS7002M_WR(0x04A7, 0x0000); LMS7002M_WR(0x04C0, 0x0000); LMS7002M_WR(0x04C1, 0x0000); LMS7002M_WR(0x04C2, 0x0000); LMS7002M_WR(0x04C3, 0x0000); LMS7002M_WR(0x04C4, 0x0000); LMS7002M_WR(0x04C5, 0x0000); LMS7002M_WR(0x04C6, 0x0000); LMS7002M_WR(0x04C7, 0x0000); LMS7002M_WR(0x04C8, 0x0000); LMS7002M_WR(0x04C9, 0x0000); LMS7002M_WR(0x04CA, 0x0000); LMS7002M_WR(0x04CB, 0x0000); LMS7002M_WR(0x04CC, 0x0000); LMS7002M_WR(0x04CD, 0x0000); LMS7002M_WR(0x04CE, 0x0000); LMS7002M_WR(0x04CF, 0x0000); LMS7002M_WR(0x04D0, 0x0000); LMS7002M_WR(0x04D1, 0x0000); LMS7002M_WR(0x04D2, 0x0000); LMS7002M_WR(0x04D3, 0x0000); LMS7002M_WR(0x04D4, 0x0000); LMS7002M_WR(0x04D5, 0x0000); LMS7002M_WR(0x04D6, 0x0000); LMS7002M_WR(0x04D7, 0x0000); LMS7002M_WR(0x04D8, 0x0000); LMS7002M_WR(0x04D9, 0x0000); LMS7002M_WR(0x04DA, 0x0000); LMS7002M_WR(0x04DB, 0x0000); LMS7002M_WR(0x04DC, 0x0000); LMS7002M_WR(0x04DD, 0x0000); LMS7002M_WR(0x04DE, 0x0000); LMS7002M_WR(0x04DF, 0x0000); LMS7002M_WR(0x04E0, 0x0000); LMS7002M_WR(0x04E1, 0x0000); LMS7002M_WR(0x04E2, 0x0000); LMS7002M_WR(0x04E3, 0x0000); LMS7002M_WR(0x04E4, 0x0000); LMS7002M_WR(0x04E5, 0x0000); LMS7002M_WR(0x04E6, 0x0000); LMS7002M_WR(0x04E7, 0x0000); LMS7002M_WR(0x0500, 0x0000); LMS7002M_WR(0x0501, 0x0000); LMS7002M_WR(0x0502, 0x0000); LMS7002M_WR(0x0503, 0x0000); LMS7002M_WR(0x0504, 0x0000); LMS7002M_WR(0x0505, 0x0000); LMS7002M_WR(0x0506, 0x0000); LMS7002M_WR(0x0507, 0x0000); LMS7002M_WR(0x0508, 0x0000); LMS7002M_WR(0x0509, 0x0000); LMS7002M_WR(0x050A, 0x0000); LMS7002M_WR(0x050B, 0x0000); LMS7002M_WR(0x050C, 0x0000); LMS7002M_WR(0x050D, 0x0000); LMS7002M_WR(0x050E, 0x0000); LMS7002M_WR(0x050F, 0x0000); LMS7002M_WR(0x0510, 0x0000); LMS7002M_WR(0x0511, 0x0000); LMS7002M_WR(0x0512, 0x0000); LMS7002M_WR(0x0513, 0x0000); LMS7002M_WR(0x0514, 0x0000); LMS7002M_WR(0x0515, 0x0000); LMS7002M_WR(0x0516, 0x0000); LMS7002M_WR(0x0517, 0x0000); LMS7002M_WR(0x0518, 0x0000); LMS7002M_WR(0x0519, 0x0000); LMS7002M_WR(0x051A, 0x0000); LMS7002M_WR(0x051B, 0x0000); LMS7002M_WR(0x051C, 0x0000); LMS7002M_WR(0x051D, 0x0000); LMS7002M_WR(0x051E, 0x0000); LMS7002M_WR(0x051F, 0x0000); LMS7002M_WR(0x0520, 0x0000); LMS7002M_WR(0x0521, 0x0000); LMS7002M_WR(0x0522, 0x0000); LMS7002M_WR(0x0523, 0x0000); LMS7002M_WR(0x0524, 0x0000); LMS7002M_WR(0x0525, 0x0000); LMS7002M_WR(0x0526, 0x0000); LMS7002M_WR(0x0527, 0x0000); LMS7002M_WR(0x0540, 0x0000); LMS7002M_WR(0x0541, 0x0000); LMS7002M_WR(0x0542, 0x0000); LMS7002M_WR(0x0543, 0x0000); LMS7002M_WR(0x0544, 0x0000); LMS7002M_WR(0x0545, 0x0000); LMS7002M_WR(0x0546, 0x0000); LMS7002M_WR(0x0547, 0x0000); LMS7002M_WR(0x0548, 0x0000); LMS7002M_WR(0x0549, 0x0000); LMS7002M_WR(0x054A, 0x0000); LMS7002M_WR(0x054B, 0x0000); LMS7002M_WR(0x054C, 0x0000); LMS7002M_WR(0x054D, 0x0000); LMS7002M_WR(0x054E, 0x0000); LMS7002M_WR(0x054F, 0x0000); LMS7002M_WR(0x0550, 0x0000); LMS7002M_WR(0x0551, 0x0000); LMS7002M_WR(0x0552, 0x0000); LMS7002M_WR(0x0553, 0x0000); LMS7002M_WR(0x0554, 0x0000); LMS7002M_WR(0x0555, 0x0000); LMS7002M_WR(0x0556, 0x0000); LMS7002M_WR(0x0557, 0x0000); LMS7002M_WR(0x0558, 0x0000); LMS7002M_WR(0x0559, 0x0000); LMS7002M_WR(0x055A, 0x0000); LMS7002M_WR(0x055B, 0x0000); LMS7002M_WR(0x055C, 0x0000); LMS7002M_WR(0x055D, 0x0000); LMS7002M_WR(0x055E, 0x0000); LMS7002M_WR(0x055F, 0x0000); LMS7002M_WR(0x0560, 0x0000); LMS7002M_WR(0x0561, 0x0000); LMS7002M_WR(0x0562, 0x0000); LMS7002M_WR(0x0563, 0x0000); LMS7002M_WR(0x0564, 0x0000); LMS7002M_WR(0x0565, 0x0000); LMS7002M_WR(0x0566, 0x0000); LMS7002M_WR(0x0567, 0x0000); LMS7002M_WR(0x0580, 0x0000); LMS7002M_WR(0x0581, 0x0000); LMS7002M_WR(0x0582, 0x0000); LMS7002M_WR(0x0583, 0x0000); LMS7002M_WR(0x0584, 0x0000); LMS7002M_WR(0x0585, 0x0000); LMS7002M_WR(0x0586, 0x0000); LMS7002M_WR(0x0587, 0x0000); LMS7002M_WR(0x0588, 0x0000); LMS7002M_WR(0x0589, 0x0000); LMS7002M_WR(0x058A, 0x0000); LMS7002M_WR(0x058B, 0x0000); LMS7002M_WR(0x058C, 0x0000); LMS7002M_WR(0x058D, 0x0000); LMS7002M_WR(0x058E, 0x0000); LMS7002M_WR(0x058F, 0x0000); LMS7002M_WR(0x0590, 0x0000); LMS7002M_WR(0x0591, 0x0000); LMS7002M_WR(0x0592, 0x0000); LMS7002M_WR(0x0593, 0x0000); LMS7002M_WR(0x0594, 0x0000); LMS7002M_WR(0x0595, 0x0000); LMS7002M_WR(0x0596, 0x0000); LMS7002M_WR(0x0597, 0x0000); LMS7002M_WR(0x0598, 0x0000); LMS7002M_WR(0x0599, 0x0000); LMS7002M_WR(0x059A, 0x0000); LMS7002M_WR(0x059B, 0x0000); LMS7002M_WR(0x059C, 0x0000); LMS7002M_WR(0x059D, 0x0000); LMS7002M_WR(0x059E, 0x0000); LMS7002M_WR(0x059F, 0x0000); LMS7002M_WR(0x05A0, 0x0000); LMS7002M_WR(0x05A1, 0x0000); LMS7002M_WR(0x05A2, 0x0000); LMS7002M_WR(0x05A3, 0x0000); LMS7002M_WR(0x05A4, 0x0000); LMS7002M_WR(0x05A5, 0x0000); LMS7002M_WR(0x05A6, 0x0000); LMS7002M_WR(0x05A7, 0x0000); ////////////////////////////////////////////////////////////////////////////////////// } void loop() { while (i<1000) { // Trigger rising edge of RSSI capture: LMS7002M_WR(0x0400, 0x0081); delay (10); LMS7002M_WR(0x0400, 0x8081); // Read from 0x040F register: raddr = 0x040F; rreg = LMS7002M_RD(raddr); j = rreg + j; i++; } rreg=j/i; i=0; j=0; Serial.print("RSSI: "); Serial.print("0x"); Serial.print(raddr, HEX); Serial.print(" = 0x"); Serial.print(rreg, HEX); Serial.print(", Decimal: "); Serial.println(rreg, DEC); //delay(5000); } // Write register value to LMS7002M via SPI void LMS7002M_WR(int addr, int val) { digitalWrite(LMS7_SS_Pin, LOW); SPI.transfer( ((addr >> 8) | 0x80) ); SPI.transfer( (addr & 0xFF) ); SPI.transfer( ((val >> 8) & 0xFF) ); SPI.transfer( (val & 0xFF) ); digitalWrite(LMS7_SS_Pin, HIGH); } // Read register value from LMS7002M via SPI int LMS7002M_RD(int addr) { digitalWrite(LMS7_SS_Pin, LOW); SPI.transfer( ((addr >> 8) & 0x7F) ); SPI.transfer( (addr & 0xFF) ); byte msb = SPI.transfer(0x00); byte lsb = SPI.transfer(0x00); digitalWrite(LMS7_SS_Pin, HIGH); return (msb << 8 | lsb); }