Skip to content

Commit a66d9f6

Browse files
authored
Merge pull request #4938 from 0e4ef622/nrf52-temp-trim
embassy-nrf: add workaround for anomaly 66 on nrf52
2 parents 989efb9 + df119ba commit a66d9f6

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

embassy-nrf/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
- changed: `gpiote::InputChannel::wait()` now takes a mutable reference to `self` to avoid interference from concurrent calls
2828
- changed: `gpiote::InputChannel::wait()` now ensures events are seen as soon as the function is called, even if the future is not polled
2929
- bugfix: use correct flash size for nRF54l
30+
- changed: add workaround for anomaly 66 on nrf52
3031

3132
## 0.8.0 - 2025-09-30
3233

embassy-nrf/src/lib.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,30 @@ pub fn init(config: config::Config) -> Peripherals {
776776
}
777777
}
778778

779+
// Workaround for anomaly 66
780+
#[cfg(feature = "_nrf52")]
781+
{
782+
let ficr = pac::FICR;
783+
let temp = pac::TEMP;
784+
temp.a(0).write_value(ficr.temp().a0().read().0);
785+
temp.a(1).write_value(ficr.temp().a1().read().0);
786+
temp.a(2).write_value(ficr.temp().a2().read().0);
787+
temp.a(3).write_value(ficr.temp().a3().read().0);
788+
temp.a(4).write_value(ficr.temp().a4().read().0);
789+
temp.a(5).write_value(ficr.temp().a5().read().0);
790+
temp.b(0).write_value(ficr.temp().b0().read().0);
791+
temp.b(1).write_value(ficr.temp().b1().read().0);
792+
temp.b(2).write_value(ficr.temp().b2().read().0);
793+
temp.b(3).write_value(ficr.temp().b3().read().0);
794+
temp.b(4).write_value(ficr.temp().b4().read().0);
795+
temp.b(5).write_value(ficr.temp().b5().read().0);
796+
temp.t(0).write_value(ficr.temp().t0().read().0);
797+
temp.t(1).write_value(ficr.temp().t1().read().0);
798+
temp.t(2).write_value(ficr.temp().t2().read().0);
799+
temp.t(3).write_value(ficr.temp().t3().read().0);
800+
temp.t(4).write_value(ficr.temp().t4().read().0);
801+
}
802+
779803
// GLITCHDET is only accessible for secure code
780804
#[cfg(all(feature = "_nrf54l", feature = "_s"))]
781805
{

0 commit comments

Comments
 (0)