MAX11410 high speed 24-bit Delta-Sigma ADC

Dependents:   MAX11410BOB_24bit_ADC MAX11410BOB_Serial_Tester

Revision:
11:abde565b8497
Parent:
10:7adee48a7f82
Child:
12:daecd93dd33a
--- a/MAX11410.cpp	Tue Feb 11 01:32:24 2020 +0000
+++ b/MAX11410.cpp	Fri Feb 14 03:33:57 2020 +0000
@@ -661,7 +661,7 @@
 //----------------------------------------
 // Write a MAX11410 register.
 //
-// CMD_1aaa_aaaa_REGISTER_READ bit is cleared 0 indicating a write operation.
+// CMDOP_1aaa_aaaa_ReadRegister bit is cleared 0 indicating a write operation.
 //
 // MAX11410 register length can be determined by function RegSize.
 //
@@ -695,7 +695,7 @@
     
     //----------------------------------------
     // switch based on register address szie RegSize(commandByte)
-    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMD_1aaa_aaaa_REGISTER_READ) & 0xFF);
+    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMDOP_1aaa_aaaa_ReadRegister) & 0xFF);
     switch(RegSize(commandByte))
     {
         case 8:  // 8-bit register size
@@ -744,7 +744,7 @@
 //----------------------------------------
 // Read an 8-bit MAX11410 register
 //
-// CMD_1aaa_aaaa_REGISTER_READ bit is set 1 indicating a read operation.
+// CMDOP_1aaa_aaaa_ReadRegister bit is set 1 indicating a read operation.
 //
 // MAX11410 register length can be determined by function RegSize.
 //
@@ -779,7 +779,7 @@
     
     //----------------------------------------
     // switch based on register address szie RegSize(regAddress)
-    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMD_1aaa_aaaa_REGISTER_READ) & 0xFF);
+    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMDOP_1aaa_aaaa_ReadRegister) & 0xFF);
     switch(RegSize(commandByte))
     {
         case 8:  // 8-bit register size
@@ -787,7 +787,7 @@
                 // SPI 16-bit transfer
                 // SPI MOSI = 1aaa_aaaa_0000_0000
                 // SPI MISO = xxxx_xxxx_dddd_dddd
-                int16_t mosiData16 = ((CMD_1aaa_aaaa_REGISTER_READ | (int16_t)commandByte) << 8) | ((int16_t)0);
+                int16_t mosiData16 = ((CMDOP_1aaa_aaaa_ReadRegister | (int16_t)commandByte) << 8) | ((int16_t)0);
                 SPIoutputCS(0);
                 int16_t misoData16 = SPIreadWrite16bits(mosiData16);
                 SPIoutputCS(1);
@@ -802,7 +802,7 @@
                 // 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
-                int32_t mosiData32 = ((CMD_1aaa_aaaa_REGISTER_READ | (int32_t)commandByte) << 24);
+                int32_t mosiData32 = ((CMDOP_1aaa_aaaa_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
                 int32_t misoData32 = SPIreadWrite32bits(mosiData32);
                 SPIoutputCS(1);
@@ -814,7 +814,7 @@
                 // SPI 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 = ((CMD_1aaa_aaaa_REGISTER_READ | (int32_t)commandByte) << 24);
+                int32_t mosiData32 = ((CMDOP_1aaa_aaaa_ReadRegister | (int32_t)commandByte) << 24);
                 SPIoutputCS(0);
                 int32_t misoData32 = SPIreadWrite32bits(mosiData32);
                 SPIoutputCS(1);
@@ -837,7 +837,7 @@
     
     //----------------------------------------
     // switch based on register address value regAddress
-    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMD_1aaa_aaaa_REGISTER_READ) & 0xFF);
+    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMDOP_1aaa_aaaa_ReadRegister) & 0xFF);
     switch(commandByte)
     {
         default:
@@ -961,6 +961,25 @@
 }
 
 //----------------------------------------
+// Decode operation from commandByte
+//
+// @return operation such as idle, read register, write register, etc.
+MAX11410::MAX11410_CMDOP_enum_t MAX11410::DecodeCommand(MAX11410_CMD_enum_t commandByte)
+{
+    
+    //----------------------------------------
+    // decode operation from command byte
+    switch (commandByte & 0x80)
+    {
+    default:
+    case CMDOP_0aaa_aaaa_WriteRegister:
+        return CMDOP_0aaa_aaaa_WriteRegister;
+    case CMDOP_1aaa_aaaa_ReadRegister:
+        return CMDOP_1aaa_aaaa_ReadRegister;
+    }
+}
+
+//----------------------------------------
 // Return the address field of a MAX11410 register
 //
 // @return register address field as given in datasheet
@@ -969,7 +988,7 @@
     
     //----------------------------------------
     // extract register address value from command byte
-    return (uint8_t)((commandByte &~ CMD_1aaa_aaaa_REGISTER_READ) & 0xFF);
+    return (uint8_t)((commandByte &~ CMDOP_1aaa_aaaa_ReadRegister) & 0xFF);
 }
 
 //----------------------------------------
@@ -981,7 +1000,7 @@
     
     //----------------------------------------
     // Test whether a command byte is a register read command
-    return (commandByte & CMD_1aaa_aaaa_REGISTER_READ) ? 1 : 0;
+    return (commandByte & CMDOP_1aaa_aaaa_ReadRegister) ? 1 : 0;
 }
 
 //----------------------------------------
@@ -993,7 +1012,7 @@
     
     //----------------------------------------
     // switch based on register address value regAddress
-    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMD_1aaa_aaaa_REGISTER_READ) & 0xFF);
+    commandByte = (MAX11410_CMD_enum_t)((commandByte &~ CMDOP_1aaa_aaaa_ReadRegister) & 0xFF);
     switch(commandByte)
     {
         default: