Skip to content

Commit cf4a323

Browse files
committed
Merge remote-tracking branch 'upstream/master' into stm32-meowbit-etc
2 parents 9764006 + eae201a commit cf4a323

File tree

17 files changed

+184
-217
lines changed

17 files changed

+184
-217
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ jobs:
137137
- "pyportal"
138138
- "pyportal_titano"
139139
- "pyruler"
140-
- "robohatmm1_m0"
141140
- "robohatmm1_m4"
142141
- "sam32"
143142
- "serpente"

ports/atmel-samd/boards/robohatmm1_m0/board.c

Lines changed: 0 additions & 38 deletions
This file was deleted.

ports/atmel-samd/boards/robohatmm1_m0/mpconfigboard.h

Lines changed: 0 additions & 42 deletions
This file was deleted.

ports/atmel-samd/boards/robohatmm1_m0/mpconfigboard.mk

Lines changed: 0 additions & 29 deletions
This file was deleted.

ports/atmel-samd/boards/robohatmm1_m0/pins.c

Lines changed: 0 additions & 92 deletions
This file was deleted.

ports/stm32f4/boards/feather_stm32f405_express/mpconfigboard.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@
3535
#define AUTORESET_DELAY_MS 500
3636
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000)
3737

38+
#define MICROPY_HW_NEOPIXEL (&pin_PC00)
39+
3840
// On-board flash
39-
#define SPI_FLASH_MOSI_PIN &pin_PB05
40-
#define SPI_FLASH_MISO_PIN &pin_PB04
41-
#define SPI_FLASH_SCK_PIN &pin_PB03
42-
#define SPI_FLASH_CS_PIN &pin_PA15
41+
#define SPI_FLASH_MOSI_PIN (&pin_PB05)
42+
#define SPI_FLASH_MISO_PIN (&pin_PB04)
43+
#define SPI_FLASH_SCK_PIN (&pin_PB03)
44+
#define SPI_FLASH_CS_PIN (&pin_PA15)
4345

4446
#define DEFAULT_I2C_BUS_SCL (&pin_PB06)
4547
#define DEFAULT_I2C_BUS_SDA (&pin_PB07)

ports/stm32f4/boards/feather_stm32f405_express/pins.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
2626
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB10) },
2727
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB11) },
2828

29+
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PC00) },
2930
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
3031
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
3132
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },

ports/stm32f4/boards/feather_stm32f405_express/stm32f4xx_hal_conf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
#define HAL_I2S_MODULE_ENABLED
5656
/* #define HAL_IWDG_MODULE_ENABLED */
5757
/* #define HAL_LTDC_MODULE_ENABLED */
58-
/* #define HAL_RNG_MODULE_ENABLED */
58+
#define HAL_RNG_MODULE_ENABLED
5959
/* #define HAL_RTC_MODULE_ENABLED */
6060
/* #define HAL_SAI_MODULE_ENABLED */
6161
/* #define HAL_SD_MODULE_ENABLED */

ports/stm32f4/boards/pyboard_v11/stm32f4xx_hal_conf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
#define HAL_I2S_MODULE_ENABLED
5656
/* #define HAL_IWDG_MODULE_ENABLED */
5757
/* #define HAL_LTDC_MODULE_ENABLED */
58-
/* #define HAL_RNG_MODULE_ENABLED */
58+
#define HAL_RNG_MODULE_ENABLED
5959
/* #define HAL_RTC_MODULE_ENABLED */
6060
/* #define HAL_SAI_MODULE_ENABLED */
6161
/* #define HAL_SD_MODULE_ENABLED */

ports/stm32f4/boards/stm32f412zg_discovery/stm32f4xx_hal_conf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
#define HAL_I2S_MODULE_ENABLED
5656
/* #define HAL_IWDG_MODULE_ENABLED */
5757
/* #define HAL_LTDC_MODULE_ENABLED */
58-
/* #define HAL_RNG_MODULE_ENABLED */
58+
#define HAL_RNG_MODULE_ENABLED
5959
/* #define HAL_RTC_MODULE_ENABLED */
6060
/* #define HAL_SAI_MODULE_ENABLED */
6161
#define HAL_SD_MODULE_ENABLED

ports/stm32f4/common-hal/microcontroller/Pin.c

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,17 @@
2626
*/
2727

2828
#include "shared-bindings/microcontroller/Pin.h"
29+
#include "shared-bindings/digitalio/DigitalInOut.h"
30+
#include "supervisor/shared/rgb_led_status.h"
2931

3032
#include "py/mphal.h"
3133
#include "stm32f4/pins.h"
3234
#include "stm32f4xx_hal.h"
3335

36+
#ifdef MICROPY_HW_NEOPIXEL
37+
bool neopixel_in_use;
38+
#endif
39+
3440
#if MCU_PACKAGE == 144
3541
#define GPIO_PORT_COUNT 7
3642
GPIO_TypeDef * ports[GPIO_PORT_COUNT] = {GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG};
@@ -53,20 +59,29 @@ void reset_all_pins(void) {
5359
for (uint8_t i = 0; i < GPIO_PORT_COUNT; i++) {
5460
HAL_GPIO_DeInit(ports[i], ~never_reset_pins[i]);
5561
}
62+
63+
#ifdef MICROPY_HW_NEOPIXEL
64+
neopixel_in_use = false;
65+
#endif
5666
}
5767

5868
// Mark pin as free and return it to a quiescent state.
5969
void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
6070
if (pin_port == 0x0F) {
6171
return;
6272
}
63-
64-
// Clear claimed bit.
73+
// Clear claimed bit & reset
6574
claimed_pins[pin_port] &= ~(1<<pin_number);
66-
// Reset the pin
6775
HAL_GPIO_DeInit(ports[pin_port], 1<<pin_number);
68-
}
6976

77+
#ifdef MICROPY_HW_NEOPIXEL
78+
if (pin_port == MICROPY_HW_NEOPIXEL->port && pin_number == MICROPY_HW_NEOPIXEL->number) {
79+
neopixel_in_use = false;
80+
rgb_led_status_init();
81+
return;
82+
}
83+
#endif
84+
}
7085

7186
void never_reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
7287
never_reset_pins[pin_port] |= 1<<pin_number;
@@ -83,13 +98,25 @@ void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
8398
void claim_pin(const mcu_pin_obj_t* pin) {
8499
// Set bit in claimed_pins bitmask.
85100
claimed_pins[pin->port] |= 1<<pin->number;
101+
102+
#ifdef MICROPY_HW_NEOPIXEL
103+
if (pin == MICROPY_HW_NEOPIXEL) {
104+
neopixel_in_use = true;
105+
}
106+
#endif
86107
}
87108

88109
bool pin_number_is_free(uint8_t pin_port, uint8_t pin_number) {
89110
return !(claimed_pins[pin_port] & 1<<pin_number);
90111
}
91112

92113
bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {
114+
#ifdef MICROPY_HW_NEOPIXEL
115+
if (pin == MICROPY_HW_NEOPIXEL) {
116+
return !neopixel_in_use;
117+
}
118+
#endif
119+
93120
return pin_number_is_free(pin->port, pin->number);
94121
}
95122

ports/stm32f4/common-hal/microcontroller/Pin.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@
3131

3232
#include "peripherals/stm32f4/pins.h"
3333

34+
#ifdef MICROPY_HW_NEOPIXEL
35+
extern bool neopixel_in_use;
36+
#endif
37+
#ifdef MICROPY_HW_APA102_MOSI
38+
extern bool apa102_sck_in_use;
39+
extern bool apa102_mosi_in_use;
40+
#endif
41+
3442
void reset_all_pins(void);
3543
// reset_pin_number takes the pin number instead of the pointer so that objects don't
3644
// need to store a full pointer.

0 commit comments

Comments
 (0)