Skip to main content
AKouz
Associate II
June 1, 2021
Question

Why S2LP does not work at low temperatures?

  • June 1, 2021
  • 6 replies
  • 2709 views

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?

This topic has been closed for replies.

6 replies

Winfred LU
ST Employee
June 1, 2021

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.

AKouz
AKouzAuthor
Associate II
June 1, 2021

Let me list the areas of interest:

  1. Crystal load capacitance is 10 pF, thus, with 18 pF capacitors around crystal the allowance for stray capacitance is as low as only 1 pF. I should try 15 pF or even 12 pF capacitors instead of 18 pF.
  2. Crystal ESR of 80 kOhm is quite high. While S2LP datasheet does not mention recommended ESR, the 80 kOhm looks a bit high. I should try a crystal with lower ESR.
  3. I do not use shutdown pin SDN. While S2LP datasheet does not require SDN pin to be used, maybe a short pulse on SDN pin helps S2LP oscillator to start, who knows.

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.

Winfred LU
ST Employee
June 3, 2021

It may be worth to measure the crystal to be sure if the frequency has drifted to much at low temperature.

AKouz
AKouzAuthor
Associate II
June 2, 2021

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.

AKouz
AKouzAuthor
Associate II
June 2, 2021

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.

Winfred LU
ST Employee
June 3, 2021

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.

AKouz
AKouzAuthor
Associate II
June 3, 2021

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.

AKouz
AKouzAuthor
Associate II
June 4, 2021

The following changes made in a test unit:

  • Crystal capacitors changed to 12 pF
  • 2 ms delay after software reset command SRES
  • Increased waiting interval after command LOCKRX
  • As mentioned before, SRES and full re-intialisation every minute or after any error detected, such as incorrect S2LP state or time-out during state transition

Test unit with temperature sensor glued on top of S2LP now works in freezer as expected. Measured S2LP temperature -16.5C.

Probably the extra waiting interval after LOCKRX is not relevant, it was already much greater than required by the datasheet.

AKouz
AKouzAuthor
Associate II
June 7, 2021

Out of 6 devices tested in a freezer at -18C, 4 passed test, but 2 failed. The failed devices operated down to -14C, but below that communication was lost.

The failed devices did not restore correct operation at room temperature. S2LP oscillator did not work, despite of SRES and re-initialisation every few seconds. Only hardware reset by SHDN pin restored normal operation.

AKouz
AKouzAuthor
Associate II
June 11, 2021

At last I've got them working at -20C without hardware reset. Apparently most important was to use SRES command only if S2LP error detected or re-init required, and then make a full re-init. Previously I used SRES also if a wrong state detected. In addition I slowed down SPI speed fro 4 Mbps to 2 Mbps and added delays after state changes.

Thus, S2LP at low temperatures can make errors, and it is important to reset S2LP properly with 2 ms delay after reset. Hardware reset is preferred.