107107#define  MICROPY_HW_RCC_QSPI_CLKSOURCE    (RCC_QSPICLKSOURCE_PLL2)
108108
109109// SMPS configuration 
110- // #define MICROPY_HW_PWR_SMPS_CONFIG      (PWR_LDO_SUPPLY) 
111- // #define MICROPY_HW_PWR_SMPS_CONFIG      (PWR_SMPS_1V8_SUPPLIES_LDO) 
112110#define  MICROPY_HW_PWR_SMPS_CONFIG       (PWR_DIRECT_SMPS_SUPPLY)
113111
114112// Configure the analog switches for dual-pad pins. 
125123// #define MICROPY_HW_RTC_USE_CALOUT   (1) 
126124
127125#if  (MICROPY_HW_ENABLE_INTERNAL_FLASH_STORAGE  ==  0 )
128- // QSPI flash #1 for storage 
129- #define  MICROPY_HW_QSPI_PRESCALER            (2) // 100MHz 
130- #define  MICROPY_HW_QSPIFLASH_SIZE_BITS_LOG2  (27) 
131- // Reserve 1MiB at the end for compatibility with alternate firmware that places WiFi blob here. 
132- #define  MICROPY_HW_SPIFLASH_SIZE_BITS        (120  * 1024 * 1024)
126+ // QSPI flash #1 for storage (mt25ql512ab)  
127+ //  #define CHECK_DEVID                          (0xBA20) 
128+ #define  MICROPY_HW_QSPI_PRESCALER            (4) // 50MHz 
129+ #define   MICROPY_HW_QSPIFLASH_SIZE_BITS_LOG2  (29) // 64MB / 512Mbit 
130+ #define  MICROPY_HW_SPIFLASH_SIZE_BITS        (512  * 1024 * 1024)
133131#define  MICROPY_HW_QSPIFLASH_CS              (pyb_pin_QSPI1_CS)
134132#define  MICROPY_HW_QSPIFLASH_SCK             (pyb_pin_QSPI1_CLK)
135133#define  MICROPY_HW_QSPIFLASH_IO0             (pyb_pin_QSPI1_D0)
136134#define  MICROPY_HW_QSPIFLASH_IO1             (pyb_pin_QSPI1_D1)
137135#define  MICROPY_HW_QSPIFLASH_IO2             (pyb_pin_QSPI1_D2)
138136#define  MICROPY_HW_QSPIFLASH_IO3             (pyb_pin_QSPI1_D3)
137+ // Technically this is dual-flash chip/load but I'm not sure if that can be used here. Octal? 
139138
140139// SPI flash #1, block device config 
141140extern  const  struct  _mp_spiflash_config_t  spiflash_config ;
@@ -178,13 +177,13 @@ extern struct _spi_bdev_t spi_bdev;
178177// #define MICROPY_HW_SPI1_MISO        (pin_B4) 
179178// #define MICROPY_HW_SPI1_MOSI        (pin_D7) 
180179
181- //  #define MICROPY_HW_SPI2_NSS          (pin_I0 )
182- //  #define MICROPY_HW_SPI2_SCK          (pin_I1 )
183- //  #define MICROPY_HW_SPI2_MISO         (pin_C2 )
184- //  #define MICROPY_HW_SPI2_MOSI         (pin_C3 )
180+ #define  MICROPY_HW_SPI5_NSS          (pyb_pin_SPI5_NSS )
181+ #define  MICROPY_HW_SPI5_SCK          (pyb_pin_SPI5_SCK )
182+ #define  MICROPY_HW_SPI5_MISO         (pyb_pin_SPI5_MISO )
183+ #define  MICROPY_HW_SPI5_MOSI         (pyb_pin_SPI5_MOSI )
185184
186185// USRSW is pulled low. Pressing the button makes the input go high. 
187- #define  MICROPY_HW_USRSW_PIN         (pin_C13 )
186+ #define  MICROPY_HW_USRSW_PIN         (pyb_pin_WAKEUP )
188187#define  MICROPY_HW_USRSW_PULL        (GPIO_NOPULL)
189188#define  MICROPY_HW_USRSW_EXTI_MODE   (GPIO_MODE_IT_RISING)
190189#define  MICROPY_HW_USRSW_PRESSED     (1)
@@ -197,14 +196,18 @@ extern struct _spi_bdev_t spi_bdev;
197196#define  MICROPY_HW_LED_OFF (pin )     (mp_hal_pin_high(pin))
198197
199198// SD Card SDMMC 
200- // #define MICROPY_HW_SDCARD_SDMMC     (2) 
201- // #define MICROPY_HW_SDCARD_CK        (pin_D6) 
202- // #define MICROPY_HW_SDCARD_CMD       (pin_D7) 
203- // #define MICROPY_HW_SDCARD_D0        (pin_B14) 
204- // #define MICROPY_HW_SDCARD_D1        (pin_B15) 
205- // #define MICROPY_HW_SDCARD_D2        (pin_B3) 
206- // #define MICROPY_HW_SDCARD_D3        (pin_B4) 
207- // #define MICROPY_HW_SDCARD_MOUNT_AT_BOOT (0) 
199+ #define  MICROPY_HW_SDCARD_SDMMC      (1)
200+ #define  MICROPY_HW_SDCARD_CK         (pyb_pin_SDCARD_CK)
201+ #define  MICROPY_HW_SDCARD_CMD        (pyb_pin_SDCARD_CMD)
202+ #define  MICROPY_HW_SDCARD_D0         (pyb_pin_SDCARD_D0)
203+ #define  MICROPY_HW_SDCARD_D1         (pyb_pin_SDCARD_D1)
204+ #define  MICROPY_HW_SDCARD_D2         (pyb_pin_SDCARD_D2)
205+ #define  MICROPY_HW_SDCARD_D3         (pyb_pin_SDCARD_D3)
206+ #define  MICROPY_HW_SDCARD_D4         (pyb_pin_SDCARD_D4)
207+ #define  MICROPY_HW_SDCARD_D5         (pyb_pin_SDCARD_D5)
208+ #define  MICROPY_HW_SDCARD_D6         (pyb_pin_SDCARD_D6)
209+ #define  MICROPY_HW_SDCARD_D7         (pyb_pin_SDCARD_D7)
210+ #define  MICROPY_HW_SDCARD_MOUNT_AT_BOOT  (0)
208211
209212// FDCAN bus 
210213// #define MICROPY_HW_CAN1_NAME        "FDCAN1" 
@@ -213,21 +216,23 @@ extern struct _spi_bdev_t spi_bdev;
213216
214217// USB config 
215218#define  MICROPY_HW_USB_HS            (1)
219+ #define  MICROPY_HW_USB_HS_ULPI3320   (1)
216220#define  MICROPY_HW_USB_HS_ULPI_NXT   (pyb_pin_USB_HS_NXT)
217221#define  MICROPY_HW_USB_HS_ULPI_STP   (pyb_pin_USB_HS_STP)
218222#define  MICROPY_HW_USB_HS_ULPI_DIR   (pyb_pin_USB_HS_DIR)
219- #define  MICROPY_HW_USB_HS_ULPI3320   (1)
220223
221224#define  MICROPY_HW_USB_CDC_RX_DATA_SIZE      (1024)
222225#define  MICROPY_HW_USB_CDC_TX_DATA_SIZE      (1024)
223226#define  MICROPY_HW_USB_CDC_1200BPS_TOUCH     (1)
224227#define  GPIO_AF10_OTG_HS                     (GPIO_AF10_OTG2_HS)
225228
226229
227- // SDRAM TODO update to: 8M x 32bit  SDRAM is connected to SDRAM Bank1 of the STM32H747XIH6 FMC 
228- #define  MICROPY_HW_SDRAM_SIZE                (256  * 1024 * 1024 / 8)  // 256 Mbit
230+ // SDRAM TODO update to: 32MB  SDRAM is connected to SDRAM Bank1 of the STM32H747XIH6 FMC 
231+ #define  MICROPY_HW_SDRAM_SIZE                (32 * 8  * 1024 * 1024 / 8)  // 256 Mbit
229232#define  MICROPY_HW_SDRAM_STARTUP_TEST        (1)
230- #define  MICROPY_HW_SDRAM_TEST_FAIL_ON_ERROR  (false)
233+ #define  MICROPY_HW_SDRAM_TEST_FAIL_ON_ERROR  (true)
234+ #define  MICROPY_HEAP_START  sdram_start()
235+ #define  MICROPY_HEAP_END  sdram_end()
231236// #define MICROPY_HW_FMC_SWAP_BANKS           (1) 
232237
233238// Timing configuration for 200MHz/2=100MHz (10ns) 
@@ -264,68 +269,69 @@ extern struct _spi_bdev_t spi_bdev;
264269#define  MICROPY_HW_SDRAM_REFRESH_RATE        (64) // ms
265270
266271// SDRAM configuration 
267- #define  MICROPY_HW_FMC_SDCKE1        (pin_H7)
268- #define  MICROPY_HW_FMC_SDNE1         (pin_H6)
269- // #define MICROPY_HW_FMC_SDNBL0       (pin_E0) 
270- // #define MICROPY_HW_FMC_SDNBL1       (pin_E1) 
271- #define  MICROPY_HW_FMC_SDCLK         (pin_G8)
272- #define  MICROPY_HW_FMC_SDNCAS        (pin_G15)
273- #define  MICROPY_HW_FMC_SDNRAS        (pin_F11)
274- #define  MICROPY_HW_FMC_SDNWE         (pin_H5)
275- #define  MICROPY_HW_FMC_BA0           (pin_G4)
276- #define  MICROPY_HW_FMC_BA1           (pin_G5)
277- #define  MICROPY_HW_FMC_NBL0          (pin_E0)
278- #define  MICROPY_HW_FMC_NBL1          (pin_E1)
279- #define  MICROPY_HW_FMC_A0            (pin_F0)
280- #define  MICROPY_HW_FMC_A1            (pin_F1)
281- #define  MICROPY_HW_FMC_A2            (pin_F2)
282- #define  MICROPY_HW_FMC_A3            (pin_F3)
283- #define  MICROPY_HW_FMC_A4            (pin_F4)
284- #define  MICROPY_HW_FMC_A5            (pin_F5)
285- #define  MICROPY_HW_FMC_A6            (pin_F12)
286- #define  MICROPY_HW_FMC_A7            (pin_F13)
287- #define  MICROPY_HW_FMC_A8            (pin_F14)
288- #define  MICROPY_HW_FMC_A9            (pin_F15)
289- #define  MICROPY_HW_FMC_A10           (pin_G0)
290- #define  MICROPY_HW_FMC_A11           (pin_G1)
291- #define  MICROPY_HW_FMC_A12           (pin_G2)
292- // #define MICROPY_HW_FMC_A13          (pin_G) 
293- // #define MICROPY_HW_FMC_A14          (pin_G4) 
294- // #define MICROPY_HW_FMC_A15          (pin_G5) 
295- #define  MICROPY_HW_FMC_D0            (pin_D14)
296- #define  MICROPY_HW_FMC_D1            (pin_D15)
297- #define  MICROPY_HW_FMC_D2            (pin_D0)
298- #define  MICROPY_HW_FMC_D3            (pin_D1)
299- #define  MICROPY_HW_FMC_D4            (pin_E7)
300- #define  MICROPY_HW_FMC_D5            (pin_E8)
301- #define  MICROPY_HW_FMC_D6            (pin_E9)
302- #define  MICROPY_HW_FMC_D7            (pin_E10)
303- #define  MICROPY_HW_FMC_D8            (pin_E11)
304- #define  MICROPY_HW_FMC_D9            (pin_E12)
305- #define  MICROPY_HW_FMC_D10           (pin_E13)
306- #define  MICROPY_HW_FMC_D11           (pin_E14)
307- #define  MICROPY_HW_FMC_D12           (pin_E15)
308- #define  MICROPY_HW_FMC_D13           (pin_D8)
309- #define  MICROPY_HW_FMC_D14           (pin_D9)
310- #define  MICROPY_HW_FMC_D15           (pin_D10)
311- #define  MICROPY_HW_FMC_D16           (pin_H8)
312- #define  MICROPY_HW_FMC_D17           (pin_H9)
313- #define  MICROPY_HW_FMC_D18           (pin_H10)
314- #define  MICROPY_HW_FMC_D19           (pin_H11)
315- #define  MICROPY_HW_FMC_D20           (pin_H12)
316- #define  MICROPY_HW_FMC_D21           (pin_H13)
317- #define  MICROPY_HW_FMC_D22           (pin_H14)
318- #define  MICROPY_HW_FMC_D23           (pin_H15)
319- #define  MICROPY_HW_FMC_D24           (pin_I0)
320- #define  MICROPY_HW_FMC_D25           (pin_I1)
321- #define  MICROPY_HW_FMC_D26           (pin_I2)
322- #define  MICROPY_HW_FMC_D27           (pin_I3)
323- #define  MICROPY_HW_FMC_D28           (pin_I6)
324- #define  MICROPY_HW_FMC_D29           (pin_I7)
325- #define  MICROPY_HW_FMC_D30           (pin_I9)
326- #define  MICROPY_HW_FMC_D31           (pin_I10)
272+ #define  MICROPY_HW_FMC_SDCKE1        (pyb_pin_FMC_SDCKE1)
273+ #define  MICROPY_HW_FMC_SDNE1         (pyb_pin_FMC_SDNE1)
274+ #define  MICROPY_HW_FMC_SDCLK         (pyb_pin_FMC_SDCLK)
275+ #define  MICROPY_HW_FMC_SDNCAS        (pyb_pin_FMC_SDNCAS)
276+ #define  MICROPY_HW_FMC_SDNRAS        (pyb_pin_FMC_SDNRAS)
277+ #define  MICROPY_HW_FMC_SDNWE         (pyb_pin_FMC_SDNWE)
278+ #define  MICROPY_HW_FMC_BA0           (pyb_pin_FMC_BA0)
279+ #define  MICROPY_HW_FMC_BA1           (pyb_pin_FMC_BA1)
280+ #define  MICROPY_HW_FMC_NBL0          (pyb_pin_FMC_NBL0)
281+ #define  MICROPY_HW_FMC_NBL1          (pyb_pin_FMC_NBL1)
282+ #define  MICROPY_HW_FMC_NBL2          (pyb_pin_FMC_NBL2)
283+ #define  MICROPY_HW_FMC_NBL3          (pyb_pin_FMC_NBL3)
284+ #define  MICROPY_HW_FMC_A0            (pyb_pin_FMC_A0)
285+ #define  MICROPY_HW_FMC_A1            (pyb_pin_FMC_A1)
286+ #define  MICROPY_HW_FMC_A2            (pyb_pin_FMC_A2)
287+ #define  MICROPY_HW_FMC_A3            (pyb_pin_FMC_A3)
288+ #define  MICROPY_HW_FMC_A4            (pyb_pin_FMC_A4)
289+ #define  MICROPY_HW_FMC_A5            (pyb_pin_FMC_A5)
290+ #define  MICROPY_HW_FMC_A6            (pyb_pin_FMC_A6)
291+ #define  MICROPY_HW_FMC_A7            (pyb_pin_FMC_A7)
292+ #define  MICROPY_HW_FMC_A8            (pyb_pin_FMC_A8)
293+ #define  MICROPY_HW_FMC_A9            (pyb_pin_FMC_A9)
294+ #define  MICROPY_HW_FMC_A10           (pyb_pin_FMC_A10)
295+ #define  MICROPY_HW_FMC_A11           (pyb_pin_FMC_A11)
296+ #define  MICROPY_HW_FMC_A12           (pyb_pin_FMC_A12)
297+ #define  MICROPY_HW_FMC_D0            (pyb_pin_FMC_D0)
298+ #define  MICROPY_HW_FMC_D1            (pyb_pin_FMC_D1)
299+ #define  MICROPY_HW_FMC_D2            (pyb_pin_FMC_D2)
300+ #define  MICROPY_HW_FMC_D3            (pyb_pin_FMC_D3)
301+ #define  MICROPY_HW_FMC_D4            (pyb_pin_FMC_D4)
302+ #define  MICROPY_HW_FMC_D5            (pyb_pin_FMC_D5)
303+ #define  MICROPY_HW_FMC_D6            (pyb_pin_FMC_D6)
304+ #define  MICROPY_HW_FMC_D7            (pyb_pin_FMC_D7)
305+ #define  MICROPY_HW_FMC_D8            (pyb_pin_FMC_D8)
306+ #define  MICROPY_HW_FMC_D9            (pyb_pin_FMC_D9)
307+ #define  MICROPY_HW_FMC_D10           (pyb_pin_FMC_D10)
308+ #define  MICROPY_HW_FMC_D11           (pyb_pin_FMC_D11)
309+ #define  MICROPY_HW_FMC_D12           (pyb_pin_FMC_D12)
310+ #define  MICROPY_HW_FMC_D13           (pyb_pin_FMC_D13)
311+ #define  MICROPY_HW_FMC_D14           (pyb_pin_FMC_D14)
312+ #define  MICROPY_HW_FMC_D15           (pyb_pin_FMC_D15)
313+ #define  MICROPY_HW_FMC_D16           (pyb_pin_FMC_D16)
314+ #define  MICROPY_HW_FMC_D17           (pyb_pin_FMC_D17)
315+ #define  MICROPY_HW_FMC_D18           (pyb_pin_FMC_D18)
316+ #define  MICROPY_HW_FMC_D19           (pyb_pin_FMC_D19)
317+ #define  MICROPY_HW_FMC_D20           (pyb_pin_FMC_D20)
318+ #define  MICROPY_HW_FMC_D21           (pyb_pin_FMC_D21)
319+ #define  MICROPY_HW_FMC_D22           (pyb_pin_FMC_D22)
320+ #define  MICROPY_HW_FMC_D23           (pyb_pin_FMC_D23)
321+ #define  MICROPY_HW_FMC_D24           (pyb_pin_FMC_D24)
322+ #define  MICROPY_HW_FMC_D25           (pyb_pin_FMC_D25)
323+ #define  MICROPY_HW_FMC_D26           (pyb_pin_FMC_D26)
324+ #define  MICROPY_HW_FMC_D27           (pyb_pin_FMC_D27)
325+ #define  MICROPY_HW_FMC_D28           (pyb_pin_FMC_D28)
326+ #define  MICROPY_HW_FMC_D29           (pyb_pin_FMC_D29)
327+ #define  MICROPY_HW_FMC_D30           (pyb_pin_FMC_D30)
328+ #define  MICROPY_HW_FMC_D31           (pyb_pin_FMC_D31)
327329
328330// Ethernet via RMII 
331+ // By default Ethernet is not enabled due to pin conflict 
332+ // between ETH_MDC and SAI4_D1 of the MEMs digital microphone. 
333+ // See UM2411 Rev 4 Ethernet section in board documentation for more 
334+ // information on the hw jumper modification needed to enable it. 
329335#define  MICROPY_HW_ETH_MDC           (pyb_pin_ETH_MDC)
330336#define  MICROPY_HW_ETH_MDIO          (pyb_pin_ETH_MDIO)
331337#define  MICROPY_HW_ETH_RMII_REF_CLK  (pyb_pin_ETH_RMII_REF_CLK)
0 commit comments