Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.

Dependencies:   MaximTinyTester CmdLine MAX541 USBDevice

Revision:
60:d1d1eaa90fb7
Parent:
59:47538bcf6cda
Child:
61:b4f3051578ef
--- a/MAX11043/MAX11043.cpp	Mon Feb 17 23:35:43 2020 +0000
+++ b/MAX11043/MAX11043.cpp	Tue Feb 18 00:22:13 2020 +0000
@@ -777,7 +777,7 @@
     {
         case 8:  // 8-bit register size
             {
-                // SPI 16-bit transfer
+                // SPI 8+8 = 16-bit transfer
                 // SPI MOSI = 1aaa_aaaa_0000_0000
                 // SPI MISO = xxxx_xxxx_dddd_dddd
                 int16_t mosiData16 = ((CMDOP_0aaa_aa10_ReadRegister | (int16_t)commandByte) << 8) | ((int16_t)0);
@@ -787,17 +787,16 @@
                 if (ptrRegData) { (*ptrRegData) = (misoData16 & 0x00FF); }
                 if (commandByte == CMD_0001_1110_d8_Rd07_Status) {
                     // TODO1: update status
+                    status = (misoData16 & 0x00FF);
                 }
             }
             break;
         case 16:  // 16-bit register size
             #warning "Not Verified Yet: MAX11043::RegRead 16-bit SPIreadWrite32bits"
             {
-                // SPI 24-bit or 32-bit transfer
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_xxxx_xxxx
+                // SPI 8+16 = 24-bit transfer
+                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000 ... _0000
+                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd ... _xxxx
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
                 int32_t misoData32 = SPIreadWrite32bits(mosiData32);
@@ -805,24 +804,29 @@
                 if (ptrRegData) { (*ptrRegData) = ((misoData32 >> 8) & 0x00FFFF); }
                 if (commandByte == CMD_0010_0010_d16_Rd08_Configuration) {
                     // TODO1: update config
+                    config = ((misoData32 >> 8) & 0x00FFFF);
                 }
                 if (commandByte == CMD_0000_0010_d16o8_Rd00_ADCa) {
                     // TODO1: update adca
+                    adca = ((misoData32 >> 8) & 0x00FFFF);
                 }
                 if (commandByte == CMD_0000_0110_d16o8_Rd01_ADCb) {
                     // TODO1: update adcb
+                    adcb = ((misoData32 >> 8) & 0x00FFFF);
                 }
                 if (commandByte == CMD_0000_1010_d16o8_Rd02_ADCc) {
                     // TODO1: update adcc
+                    adcc = ((misoData32 >> 8) & 0x00FFFF);
                 }
                 if (commandByte == CMD_0000_1110_d16o8_Rd03_ADCd) {
                     // TODO1: update adcd
+                    adcd = ((misoData32 >> 8) & 0x00FFFF);
                 }
             }
             break;
         case 24:  // 24-bit register size
             {
-                // SPI 32-bit transfer
+                // SPI 8+24 = 32-bit transfer
                 // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
                 // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
@@ -832,15 +836,19 @@
                 if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); }
                 if (commandByte == CMD_0000_0010_d16o8_Rd00_ADCa) {
                     // TODO1: update adca
+                    adca = (misoData32 & 0x00FFFFFF);
                 }
                 if (commandByte == CMD_0000_0110_d16o8_Rd01_ADCb) {
                     // TODO1: update adcb
+                    adcb = (misoData32 & 0x00FFFFFF);
                 }
                 if (commandByte == CMD_0000_1010_d16o8_Rd02_ADCc) {
                     // TODO1: update adcc
+                    adcc = (misoData32 & 0x00FFFFFF);
                 }
                 if (commandByte == CMD_0000_1110_d16o8_Rd03_ADCd) {
                     // TODO1: update adcd
+                    adcd = (misoData32 & 0x00FFFFFF);
                 }
             }
             break;
@@ -856,16 +864,18 @@
             // update adcc, adcd
             //
             {
-                // SPI 32-bit transfer
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd
+                // SPI 8+32 = 40-bit transfer
+                //            1234 5678        16        24        32        40
+                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000_0000_0000 ... _0000
+                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd ... _xxxx
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
-                int32_t misoData32 = SPIreadWrite32bits(mosiData32);
+                int32_t misoData32 = SPIreadWrite32bits(mosiData32); // TODO
                 SPIoutputCS(1);
-                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); }
+                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); } // TODO
                 if (commandByte == CMD_0001_0010_d24_d24_Rd04_ADCab) {
                     // TODO1: update adca
+                    adca = ((misoData32 >> 8) & 0x00FFFF);
                     // TODO1: update adcb
                 }
                 if (commandByte == CMD_0001_0110_d24_d24_Rd05_ADCcd) {
@@ -886,14 +896,15 @@
             // update adcc, adcd
             //
             {
-                // SPI 32-bit transfer
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd
+                // SPI 8+48 = 56-bit transfer
+                //            1234 5678        16        24        32        40        48        56
+                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 ... _0000
+                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd ... _xxxx
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
-                int32_t misoData32 = SPIreadWrite32bits(mosiData32);
+                int32_t misoData32 = SPIreadWrite32bits(mosiData32); // TODO
                 SPIoutputCS(1);
-                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); }
+                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); } // TODO
                 if (commandByte == CMD_0001_0010_d24_d24_Rd04_ADCab) {
                     // TODO1: update adca
                     // TODO1: update adcb
@@ -912,14 +923,15 @@
             // update adca, adcb, adcc, adcd
             //
             {
-                // SPI 32-bit transfer
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd
+                // SPI 8+64 = 72-bit transfer
+                //            1234 5678        16        24        32        40        48        56        64        72
+                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 ... _0000
+                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd ... _xxxx
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
-                int32_t misoData32 = SPIreadWrite32bits(mosiData32);
+                int32_t misoData32 = SPIreadWrite32bits(mosiData32); // TODO
                 SPIoutputCS(1);
-                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); }
+                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); } // TODO
                 if (commandByte == CMD_0001_1010_d24_d24_d24_d24_Rd06_ADCabcd) {
                     // TODO1: update adca
                     // TODO1: update adcb
@@ -936,14 +948,15 @@
             // update adca, adcb, adcc, adcd
             //
             {
-                // SPI 32-bit transfer
-                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000
-                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd
+                // SPI 8+96 = 104-bit transfer
+                //            1234 5678        16        24        32        40        48        56        64        72        80        88        96       104
+                // SPI MOSI = 1aaa_aaaa_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 ... _0000
+                // SPI MISO = xxxx_xxxx_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd_dddd ... _xxxx
                 int32_t mosiData32 = ((CMDOP_0aaa_aa10_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
-                int32_t misoData32 = SPIreadWrite32bits(mosiData32);
+                int32_t misoData32 = SPIreadWrite32bits(mosiData32); // TODO
                 SPIoutputCS(1);
-                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); }
+                if (ptrRegData) { (*ptrRegData) = (misoData32 & 0x00FFFFFF); } // TODO
                 if (commandByte == CMD_0001_1010_d24_d24_d24_d24_Rd06_ADCabcd) {
                     // TODO1: update adca
                     // TODO1: update adcb