45
45
46
46
void octospi_init (void ) {
47
47
// Configure OCTOSPI pins (allows 1, 2, 4 or 8 line configuration).
48
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_CS , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_NCS );
49
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_SCK , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_CLK );
50
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO0 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO0 );
48
+ #if defined(STM32H7 )
49
+ #define STATIC_AF_OCTOSPI (signal ) STATIC_AF_OCTOSPIM_P1_##signal
50
+ #else
51
+ #define STATIC_AF_OCTOSPI (signal ) STATIC_AF_OCTOSPI1_##signal
52
+ #endif
53
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_CS , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI (NCS ));
54
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_SCK , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI (CLK ));
55
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO0 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI (IO0 ));
51
56
#if defined(MICROPY_HW_OSPIFLASH_IO1 )
52
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO1 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO1 );
57
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO1 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO1 ) );
53
58
#if defined(MICROPY_HW_OSPIFLASH_IO2 )
54
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO2 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO2 );
55
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO3 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO3 );
59
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO2 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO2 ) );
60
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO3 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO3 ) );
56
61
#if defined(MICROPY_HW_OSPIFLASH_IO4 )
57
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO4 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO4 );
58
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO5 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO5 );
59
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO6 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO6 );
60
- mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO7 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI1_IO7 );
62
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO4 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO4 ) );
63
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO5 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO5 ) );
64
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO6 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO6 ) );
65
+ mp_hal_pin_config_alt_static_speed (MICROPY_HW_OSPIFLASH_IO7 , MP_HAL_PIN_MODE_ALT , MP_HAL_PIN_PULL_NONE , MP_HAL_PIN_SPEED_VERY_HIGH , STATIC_AF_OCTOSPI ( IO7 ) );
61
66
#endif
62
67
#endif
63
68
#endif
@@ -69,11 +74,19 @@ void octospi_init(void) {
69
74
70
75
// Configure the OCTOSPI peripheral.
71
76
77
+ #if defined(STM32H7 )
78
+ OCTOSPI1 -> CR =
79
+ 3 << OCTOSPI_CR_FTHRES_Pos // 4 bytes must be available to read/write
80
+ | 0 << OCTOSPI_CR_FSEL_Pos // FLASH 0 selected
81
+ | 0 << OCTOSPI_CR_DQM_Pos // dual-memory mode disabled
82
+ ;
83
+ #else
72
84
OCTOSPI1 -> CR =
73
85
3 << OCTOSPI_CR_FTHRES_Pos // 4 bytes must be available to read/write
74
86
| 0 << OCTOSPI_CR_MSEL_Pos // FLASH 0 selected
75
87
| 0 << OCTOSPI_CR_DMM_Pos // dual-memory mode disabled
76
88
;
89
+ #endif
77
90
78
91
OCTOSPI1 -> DCR1 =
79
92
(MICROPY_HW_OSPIFLASH_SIZE_BITS_LOG2 - 3 - 1 ) << OCTOSPI_DCR1_DEVSIZE_Pos
0 commit comments