Hello! I have been working with 1-wire chips for a long time, and I have never had a problem
And now I have setup the 1-wire communication with the MAX31888 chip.
It is steadily detected via the SearchROM procedure, and the chip address is readed (0x54 0xF3 0xF2 0x04 0x00 0x00 0x00 0xC8).The chip on the line is the only one. It correctly outputs the values of registers ROM_ID1...ROM_ID7 ( address 0x31...0x36), GPIO_SETUP(0x20), TEMP_SENSOR_SETUP (0x14), FIFO_CONFIGURATION (0x09). The reading values correspond to the default values described in the datasheet.
But I can't get the converted temperature values.
The FIFO_DATA(0x08) register always reads as zeros. No matter how many times to run the Convert_T procedure (command 0x44). Strong pull-up after the command of course turns on, I even made it for 25 ms long. Also, FIFO status registers values (address 0x04..0x08) don't change, they are always read as null.
I looked at the oscillograms on the DQ - everything is fine.
Can you help me, what may be the problem?
Below is my pseudo code:
OneW_WrByte(CONVERT_TEMPERATURE_CMD); //write 0x44
OneW_WrByte(MAX31888_READ_REGISTER_CMD); //write 0x33
OneW_WrByte(MAX31888_FIFO_DATA_ADR); //write 0x08
OneW_WrByte(2); //request 2 bytes
for(i=0;i<4;i++) Array[i]=OneW_RdByte(); //read two bytes+ 2 bytes CRC
And I get this four bytes: 0x00 0x00 0x00 0x1A
There are also some questions. As I understand there must be a supply voltage on the Cext line with the capacitor. But I measure it and it's always 0 volts. And if I try to measure with a multimeter, the sensor stops being detected. And if I measure with oscilloscope with the divider, sensor works, but there 0 volts on pin Cext.
Also there is another question, can I supply external power to the Cext pin?