Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.
Dependencies: MaximTinyTester CmdLine MAX541 USBDevice
Diff: MAX11043/MAX11043.cpp
- 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