Internal Temperature Sensor Questions

Hi all,

I have been working with the DWM1000 modules on my own custom board and I am having a bit of an issue connecting a tag and anchor in a TWR scheme. I am fairly confident my network configurations are correct across both devices but this is one possibility that I haven’t ruled out. My anchor is essentially going into receive mode after setting up the network and listening for a blink message from a tag.

One thing I am noticing is that my anchor is reporting a temperature of 178C whereas my tag is reporting a temp of 34C. I am following table 14 in the DW1000 user manual for read temp and voltage sensors. The voltage reading is typically 3.32V

I was wondering if anyone has ever had any issues with DWM1000 modules getting this hot.

Also I was wondering, what is the internal temperature sensor near in terms of the internal circuitry of the chip? What components in the chip would be getting this hot?

I have replaced the DWM1000 module on the anchor, and the exact same thing happened when I loaded the anchor code onto it. I loaded the anchor code onto my tag hardware, because it’s the exact same hardware, and it started reported high temperatures as well. So I am trying to narrow down my issue between hardware layout and software configuration. I’d be happy to share more info if it would be helpful.

Thanks for any insight!

I very much doubt that the internal temperature is reaching 178 C and the chip is still working, I would suspect you have a bug somewhere in your code.
The temperature sensor is somewhat temperamental to read at times, if you don’t follow the process exactly you get meaningless values. My code still gives me the occasional invalid reading but works 90% of the time, in the end I gave up trying to track this down and just throw the obviously bad readings away. Temperature changes slowly enough that missing the occasional read isn’t usually an issue.

1 Like

Thanks for the reply!
Yeah, I was thinking that this chip wouldn’t work after getting that hot. But that makes sense. The following is how I am reading those values. I think the way I am reading the OTP values is incorrect though. I will change it and see if that helps. I figured it might also be the timing of when I am reading those temp and voltage.

    byte step1 = 0x80; writeBytes(RF_CONF, 0x11, &step1, 1);
byte step2 = 0x0A; writeBytes(RF_CONF, 0x12, &step2, 1);
byte step3 = 0x0F; writeBytes(RF_CONF, 0x12, &step3, 1);
byte step4 = 0x01; writeBytes(TX_CAL, NO_SUB, &step4, 1);
byte step5 = 0x00; writeBytes(TX_CAL, NO_SUB, &step5, 1);
byte sar_lvbat = 0; readBytes(TX_CAL, 0x03, &sar_lvbat, 1);
byte sar_ltemp = 0; readBytes(TX_CAL, 0x04, &sar_ltemp, 1);

// RF_CONF == 0x28, TX_CAL == 0x2A

// voltage and temperature calculation
vbat = (sar_lvbat - _vmeas3v3) / 173.0f + 3.3f; // Effective range is 2.25-3.76V
temp = ((sar_ltemp - _tmeas23C) * 1.14f) + 23.0f;

// _vmeas3v3 & _tmeas23C are the values from OTP mappings from mfr production testing

when I manually read the battery voltage the result is always 3.26-3.31 V, even if battery is low! How can I have a real estimate of battery voltage? Maybe by reading it in automatic way at IDLE state, after wake-up?
Thank you