File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4343
4444#define DEFAULT_UART_BUS_RX (&pin_PA01)
4545#define DEFAULT_UART_BUS_TX (&pin_PA00)
46+
47+ #define SAMD21_BOD33_LEVEL (6)
Original file line number Diff line number Diff line change 4040#define IGNORE_PIN_PB09 1
4141#define IGNORE_PIN_PB10 1
4242#define IGNORE_PIN_PB11 1
43+
44+ #define SAMD5x_E5x_BOD33_LEVEL (100)
Original file line number Diff line number Diff line change 112112#define CIRCUITPY_DEFAULT_STACK_SIZE 4096
113113#endif
114114
115+ #ifndef SAMD21_BOD33_LEVEL
116+ // Set brownout detection to ~2.7V. Default from factory is 1.7V,
117+ // which is too low for proper operation of external SPI flash chips
118+ // (they are 2.7-3.6V).
119+ #define SAMD21_BOD33_LEVEL (39)
120+ // 2.77V with hysteresis off. Table 37.20 in datasheet.
121+ #endif
122+
115123// Smallest unit of flash that can be erased.
116124#define FLASH_ERASE_SIZE NVMCTRL_ROW_SIZE
117125
129137#define CIRCUITPY_DEFAULT_STACK_SIZE (24*1024)
130138#endif
131139
140+ #ifndef SAMD5x_E5x_BOD33_LEVEL
141+ // Set brownout detection to ~2.7V. Default from factory is 1.7V,
142+ // which is too low for proper operation of external SPI flash chips
143+ // (they are 2.7-3.6V).
144+ #define SAMD5x_E5x_BOD33_LEVEL (200)
145+ // 2.7V: 1.5V + LEVEL * 6mV.
146+ #endif
147+
132148// Smallest unit of flash that can be erased.
133149#define FLASH_ERASE_SIZE NVMCTRL_BLOCK_SIZE
134150
Original file line number Diff line number Diff line change @@ -206,11 +206,10 @@ static void rtc_init(void) {
206206safe_mode_t port_init (void ) {
207207#if defined(SAMD21 )
208208
209- // Set brownout detection to ~2.7V. Default from factory is 1.7V,
210- // which is too low for proper operation of external SPI flash chips (they are 2.7-3.6V).
209+ // Set brownout detection.
211210 // Disable while changing level.
212211 SYSCTRL -> BOD33 .bit .ENABLE = 0 ;
213- SYSCTRL -> BOD33 .bit .LEVEL = 39 ; // 2.77V with hysteresis off. Table 37.20 in datasheet.
212+ SYSCTRL -> BOD33 .bit .LEVEL = SAMD21_BOD33_LEVEL ;
214213 SYSCTRL -> BOD33 .bit .ENABLE = 1 ;
215214
216215 #ifdef ENABLE_MICRO_TRACE_BUFFER
@@ -225,11 +224,10 @@ safe_mode_t port_init(void) {
225224#endif
226225
227226#if defined(SAM_D5X_E5X )
228- // Set brownout detection to ~2.7V. Default from factory is 1.7V,
229- // which is too low for proper operation of external SPI flash chips (they are 2.7-3.6V).
227+ // Set brownout detection.
230228 // Disable while changing level.
231229 SUPC -> BOD33 .bit .ENABLE = 0 ;
232- SUPC -> BOD33 .bit .LEVEL = 200 ; // 2.7V: 1.5V + LEVEL * 6mV.
230+ SUPC -> BOD33 .bit .LEVEL = SAMD5x_E5x_BOD33_LEVEL ;
233231 SUPC -> BOD33 .bit .ENABLE = 1 ;
234232
235233 // MPU (Memory Protection Unit) setup.
You can’t perform that action at this time.
0 commit comments