@@ -80,6 +80,9 @@ void Board::enableWakeupFromPin(){
80
80
}
81
81
}
82
82
83
+ void Board::enableSleepWhenIdle (){
84
+ LowPower.allowDeepSleep ();
85
+ }
83
86
#endif
84
87
85
88
@@ -169,6 +172,20 @@ void Board::deepSleepUntilWakeupEvent(){
169
172
this -> setAnalogDigitalConverterPower (on);
170
173
Wire3.end ();
171
174
#else if defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4)
175
+ if (on){
176
+ PMIC.getControlPointer () -> turnLDO2On (Ldo2Mode::Normal);
177
+ PMIC.getControlPointer () -> turnLDO2On (Ldo2Mode::Sleep);
178
+ PMIC.getControlPointer () -> turnLDO2On (Ldo2Mode::Standby);
179
+ PMIC.getControlPointer () -> turnLDO1On (Ldo1Mode::Normal);
180
+ PMIC.getControlPointer () -> turnLDO1On (Ldo1Mode::Sleep);
181
+ PMIC.getControlPointer () -> turnLDO1On (Ldo1Mode::Standby);
182
+ PMIC.getControlPointer () -> turnLDO3On (Ldo3Mode::Normal);
183
+ PMIC.getControlPointer () -> turnLDO3On (Ldo3Mode::Sleep);
184
+ PMIC.getControlPointer () -> turnLDO3On (Ldo3Mode::Standby);
185
+ PMIC.getControlPointer () -> turnSw1On (Sw1Mode::Normal);
186
+ PMIC.getControlPointer () -> turnSw1On (Sw1Mode::Sleep);
187
+ PMIC.getControlPointer () -> turnSw1On (Sw1Mode::Standby);
188
+ } else {
172
189
PMIC.getControlPointer () -> turnLDO2Off (Ldo2Mode::Normal);
173
190
PMIC.getControlPointer () -> turnLDO2Off (Ldo2Mode::Sleep);
174
191
PMIC.getControlPointer () -> turnLDO2Off (Ldo2Mode::Standby);
@@ -182,6 +199,8 @@ void Board::deepSleepUntilWakeupEvent(){
182
199
PMIC.getControlPointer () -> turnSw1Off (Sw1Mode::Sleep);
183
200
PMIC.getControlPointer () -> turnSw1Off (Sw1Mode::Standby);
184
201
Wire1.end ();
202
+ }
203
+
185
204
#endif
186
205
187
206
/*
0 commit comments