Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.
Dependencies: MaximTinyTester MAX11410 CmdLine USBDevice
Diff: MAX11410.cpp
- Revision:
- 22:3e03687b7e95
- Parent:
- 21:498357e216b0
- Child:
- 23:e0c36767f98b
--- a/MAX11410.cpp Thu Jul 25 02:48:42 2019 -0700 +++ b/MAX11410.cpp Thu Jul 25 03:24:47 2019 -0700 @@ -247,7 +247,7 @@ //---------------------------------------- // Write an 8-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is cleared 0. +// CMD_1aaa_aaaa_REGISTER_READ bit is cleared 0. // // SPI 16-bit transfer // @@ -258,9 +258,12 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Write_8bit(MAX11410_CMD_enum_t regAddress, uint8_t regData) { +#warning "Not Implemented Yet: MAX11410::Write_8bit..." + + int16_t mosiData16 = ((int16_t)regAddress << 8) | ((int16_t)regData); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 16-bit mosiData16 and read misoData16 SPIoutputCS(0); SPIwrite16bits(mosiData16); SPIoutputCS(1); @@ -273,7 +276,7 @@ //---------------------------------------- // Read an 8-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is set 1. +// CMD_1aaa_aaaa_REGISTER_READ bit is set 1. // // SPI 16-bit transfer // @@ -284,13 +287,17 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Read_8bit(MAX11410_CMD_enum_t regAddress, uint8_t* ptrRegData) { +#warning "Not Implemented Yet: MAX11410::Read_8bit..." + + int16_t mosiData16 = ((CMD_1aaa_aaaa_REGISTER_READ | (int16_t)regAddress) << 8) | ((int16_t)0); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 16-bit mosiData16 and read misoData16 SPIoutputCS(0); - SPIwrite16bits(mosiData16); + int16_t misoData16 = SPIreadWrite16bits(mosiData16); SPIoutputCS(1); + (*ptrRegData) = (misoData16 & 0x00FF); //---------------------------------------- // success return 1; @@ -299,7 +306,7 @@ //---------------------------------------- // Write a 16-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is cleared 0. +// CMD_1aaa_aaaa_REGISTER_READ bit is cleared 0. // // SPI 24-bit transfer // @@ -310,11 +317,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Write_16bit(MAX11410_CMD_enum_t regAddress, uint16_t regData) { +#warning "Not Implemented Yet: MAX11410::Write_16bit..." + + int32_t mosiData32 = ((int32_t)regAddress << 8) | ((int32_t)regData); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 24-bit ____ and read ____ + // SPI write 32-bit mosiData32 and read misoData32 SPIoutputCS(0); - SPIwrite16bits(mosiData16); + int32_t misoData32 = SPIreadWrite32bits(mosiData32); SPIoutputCS(1); //---------------------------------------- @@ -325,7 +336,7 @@ //---------------------------------------- // Read a 16-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is set 1. +// CMD_1aaa_aaaa_REGISTER_READ bit is set 1. // // SPI 24-bit transfer // @@ -336,13 +347,18 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Read_16bit(MAX11410_CMD_enum_t regAddress, uint16_t* ptrRegData) { +#warning "Not Implemented Yet: MAX11410::Read_16bit..." + + int32_t mosiData32 = ((CMD_1aaa_aaaa_REGISTER_READ | (int32_t)regAddress) << 16); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 24-bit ____ and read ____ + // SPI write 32-bit mosiData32 and read misoData32 SPIoutputCS(0); - SPIwrite16bits(mosiData16); + int32_t misoData32 = SPIreadWrite32bits(mosiData32); SPIoutputCS(1); + (*ptrRegData) = (misoData32 & 0x00FFFF); //---------------------------------------- // success return 1; @@ -351,7 +367,7 @@ //---------------------------------------- // Write a 24-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is cleared 0. +// CMD_1aaa_aaaa_REGISTER_READ bit is cleared 0. // // SPI 32-bit transfer // @@ -362,11 +378,14 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Write_24bit(MAX11410_CMD_enum_t regAddress, uint32_t regData) { +#warning "Not Implemented Yet: MAX11410::Write_24bit..." + + int32_t mosiData32 = ((int32_t)regAddress << 24) | ((int32_t)regData & 0x00FFFFFF); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 32-bit mosiData32 and read misoData32 SPIoutputCS(0); - SPIwrite16bits(mosiData16); + SPIreadWrite32bits(mosiData32); SPIoutputCS(1); //---------------------------------------- @@ -377,7 +396,7 @@ //---------------------------------------- // Read a 24-bit MAX11410 register // -// CMD_1xxx_xxx_REGISTER_READ bit is set 1. +// CMD_1aaa_aaaa_REGISTER_READ bit is set 1. // // SPI 32-bit transfer // @@ -388,13 +407,17 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Read_24bit(MAX11410_CMD_enum_t regAddress, uint32_t* ptrRegData) { +#warning "Not Implemented Yet: MAX11410::Read_24bit..." + + int32_t mosiData32 = ((CMD_1aaa_aaaa_REGISTER_READ | (int32_t)regAddress) << 24); //---------------------------------------- - // SPI write 16-bit mosiData16 + // SPI write 32-bit mosiData32 and read misoData32 SPIoutputCS(0); - SPIwrite16bits(mosiData16); + int32_t misoData32 = SPIreadWrite32bits(mosiData32); SPIoutputCS(1); + (*ptrRegData) = (misoData32 & 0x00FFFFFF); //---------------------------------------- // success return 1; @@ -422,6 +445,7 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Configure_Voltage(MAX11410_AINP_SEL_enum_t channel_hi, MAX11410_AINN_SEL_enum_t channel_lo) { +#warning "Not Tested Yet: MAX11410::Configure_Voltage..." //---------------------------------------- // write8 0x00 PD = 0x03 (Reset Registers; enter Standby mode) @@ -476,12 +500,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Measure_Voltage(MAX11410_AINP_SEL_enum_t channel_hi, MAX11410_AINN_SEL_enum_t channel_lo) { +#warning "Not Tested Yet: MAX11410::Measure_Voltage..." //---------------------------------------- - // SPI write 16-bit mosiData16 - SPIoutputCS(0); - SPIwrite16bits(mosiData16); - SPIoutputCS(1); + // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0) + Read_24bit(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status); + + //---------------------------------------- + // read24 0x80|0x30 DATA0 (%SW 0xB0 0 0 0) + Read_24bit(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &data0); //---------------------------------------- // success @@ -500,12 +527,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Configure_RTD(MAX11410_AINP_SEL_enum_t channel_RTD_Force, MAX11410_AINP_SEL_enum_t channel_RTD_Hi, MAX11410_AINN_SEL_enum_t channel_RTD_Lo) { +#warning "Not Implemented Yet: MAX11410::Configure_RTD..." //---------------------------------------- - // SPI write 16-bit mosiData16 - SPIoutputCS(0); - SPIwrite16bits(mosiData16); - SPIoutputCS(1); + // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0) + Read_24bit(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status); + + //---------------------------------------- + // read24 0x80|0x30 DATA0 (%SW 0xB0 0 0 0) + Read_24bit(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &data0); //---------------------------------------- // success @@ -525,12 +555,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Measure_RTD(MAX11410_AINP_SEL_enum_t channel_RTD_Force, MAX11410_AINP_SEL_enum_t channel_RTD_Hi, MAX11410_AINN_SEL_enum_t channel_RTD_Lo) { +#warning "Not Implemented Yet: MAX11410::Measure_RTD..." //---------------------------------------- - // SPI write 16-bit mosiData16 - SPIoutputCS(0); - SPIwrite16bits(mosiData16); - SPIoutputCS(1); + // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0) + Read_24bit(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status); + + //---------------------------------------- + // read24 0x80|0x30 DATA0 (%SW 0xB0 0 0 0) + Read_24bit(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &data0); //---------------------------------------- // success @@ -550,12 +583,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Configure_Thermocouple(MAX11410_AINP_SEL_enum_t channel_TC_Hi, MAX11410_AINN_SEL_enum_t channel_TC_Lo, MAX11410_AINP_SEL_enum_t channel_RTD_Hi, MAX11410_AINP_SEL_enum_t channel_RTD_Lo) { +#warning "Not Implemented Yet: MAX11410::Configure_Thermocouple..." //---------------------------------------- - // SPI write 16-bit mosiData16 - SPIoutputCS(0); - SPIwrite16bits(mosiData16); - SPIoutputCS(1); + // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0) + Read_24bit(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status); + + //---------------------------------------- + // read24 0x80|0x30 DATA0 (%SW 0xB0 0 0 0) + Read_24bit(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &data0); //---------------------------------------- // success @@ -576,12 +612,15 @@ // @return 1 on success; 0 on failure uint8_t MAX11410::Measure_Thermocouple(MAX11410_AINP_SEL_enum_t channel_TC_Hi, MAX11410_AINN_SEL_enum_t channel_TC_Lo, MAX11410_AINP_SEL_enum_t channel_RTD_Hi, MAX11410_AINP_SEL_enum_t channel_RTD_Lo) { +#warning "Not Implemented Yet: MAX11410::Measure_Thermocouple..." //---------------------------------------- - // SPI write 16-bit mosiData16 - SPIoutputCS(0); - SPIwrite16bits(mosiData16); - SPIoutputCS(1); + // read24 0x80|0x38 STATUS (%SW 0xB8 0 0 0) + Read_24bit(CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &status); + + //---------------------------------------- + // read24 0x80|0x30 DATA0 (%SW 0xB0 0 0 0) + Read_24bit(CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0, &data0); //---------------------------------------- // success