2021-05-31 07:00 PM
I use S2LP at 433 MHz with proprietary narrowband protocol. Crystal 25 MHz 10 ppm XRCGB25M000F1H02R0 from Murata; capacitors 18 pF.
Devices operate OK if ambient temperature is positive. When I put them into freezer they stop responding to the base station. Devices are temperature dataloggers. While being in freezer, they continue to log temperatures, and we can see that microcontroller works OK down to -17 C. But S2LP stops responding at temperatures around 0 C.
I suspect that S2LP oscillator does not start if it is cold. Did anyone experienced similar problems?
2021-06-01 12:48 AM
S2-LP is capable of operating at ambient temperature down to -40 degrees C.
The Murata crystal can work down to -20 degrees C according to its datasheet.
Please check if all the other components can operate properly at low temperature.
Chances could be the capacitors change a lot their capacitance at low temperature, which changes the oscillating frequency out of the range that S2-LP needs.
2021-06-01 02:06 AM
Let me list the areas of interest:
So far I cannot see what else could be involved. Other components around S2LP are mainly capacitors. They are either NP0 if capacitance is 470 pF or lower, or X7R otherwise. Supply rail is 2.5V from a high quality LDO with plenty of decoupling ceramic caps 47nF, 1uF and 10uF. Also there is a supercap 0.5F across the rail.
2021-06-01 07:45 PM
In my device every few seconds microcontroller wakes up S2LP from standby mode and puts it into RX mode for about 10 ms. During that period I can see clock bursts at oscillator output Xout and at switch-mode regulator output SMPS1, even at low temperatures. Therefore S2LP crystal oscillator apparently works at low temperatures.
But there is no signal at GPIO0 pin configured as RX data output, it stays low. Only a 100 us pulse appears at RX output when microcontroller puts S2LP int RX mode. Actual RX signal appears for 10 ms when circuit warms up and disappears when it cools down.
2021-06-02 04:43 PM
When I've added full S2LP re-initialisation every minute, device starts working at low temperatures.
I guess S2LP internal analog circuitry is not very stable. Apparently it can tune itself to operating point at any temperature in the full range -40...+105C, but does it only once during initialisation. If temperature changed significantly, it looses operating point and require re-initialisation to restore it.
It would be nice to know a subset of registers sufficient for restoring operating point(s). So far I made full S2LP re-initialisation. It takes a while, but I can tolerate it once per minute.
2021-06-03 07:18 AM
It may be worth to measure the crystal to be sure if the frequency has drifted to much at low temperature.
2021-06-03 07:22 AM
Possibly synthesizer related registers are required to be reinitialized. (My guess)
This issue is still strange to me, since i knew several projects where S2-LP operates normally without needing reinitializing everything at low temperature such as -20 degree C.
2021-06-03 04:23 PM
I agree, it is strange. It is quite possible that the issue caused by a "not quite right" setting in one of the S2LP registers. I am not using STM libraries and rely on the data sheet and on evaluation board and software. It is a complex chip, while datasheet is not comprehensive, it leaves plenty of room for guesswork. Maybe STM libraries uses slightely different settings resulting in much beterr temperature stability.
Yesterday I observed communication at temperatures -7C. But after overnight in a freezer devices refuse to talk yet again. The quest is not over.
2021-06-03 06:38 PM
S2LP datasheet rev 7 in table 36 specifies power-up reset pulse wdth of 2 ms max. Also it mentions that "A software command SRES is also available, it generates an internal but partial resetting of the S2-LP". Datasheet does not mention how long I should wait after SRES before sending other commands.
I do not use hardwarre reset pin, I use SRES command. And I just wondering should I wait 2 ms after SRES? Maybe at room temperatures SRES processed faster, but at low temperatures a full 2 ms delay after SRES is required?
2021-06-03 07:14 PM
A test unit in a freezer can communicate to base station down to -10.9C. Communication was OK down to -10C, after that it became unreliable. The -10.9C was the temperature reported in the last session, after that connection is lost. Apparently S2LP temperature is not the same as sensor temperature, I did not bond them. It was just a quick test. I guess chip temperature was about -5C