Skip to content

Commit a45659c

Browse files
authored
Merge pull request adafruit#1000 from arturo182/nrfx_uart
nrf: Rewrite the UART HAL using nRFx
2 parents 133b99b + 25ece8f commit a45659c

File tree

13 files changed

+88
-590
lines changed

13 files changed

+88
-590
lines changed

ports/nrf/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,19 +90,18 @@ LIBS += -L $(dir $(LIBC_FILE_NAME)) -lc
9090
LIBS += -L $(dir $(LIBGCC_FILE_NAME)) -lgcc
9191

9292
SRC_HAL = $(addprefix hal/,\
93-
hal_uart.c \
9493
hal_time.c \
9594
hal_rng.c \
9695
)
9796

9897
SRC_NRFX = $(addprefix nrfx/,\
9998
drivers/src/nrfx_spim.c \
10099
drivers/src/nrfx_twim.c \
100+
drivers/src/nrfx_uart.c \
101101
)
102102

103103
SRC_C += \
104104
mphalport.c \
105-
help.c \
106105
fatfs_port.c \
107106
fifo.c \
108107
tick.c \

ports/nrf/boards/feather52832/mpconfigboard.h

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -25,47 +25,12 @@
2525
*/
2626

2727
#define MICROPY_HW_BOARD_NAME "Bluefruit nRF52 Feather"
28-
#define MICROPY_HW_MCU_NAME "NRF52832"
29-
#define MICROPY_PY_SYS_PLATFORM "nrf52"
28+
#define MICROPY_HW_MCU_NAME "nRF52832"
29+
#define MICROPY_PY_SYS_PLATFORM "nRF52"
3030

31-
#define MICROPY_HW_HAS_LED (1)
32-
#define MICROPY_HW_HAS_SWITCH (0)
33-
#define MICROPY_HW_HAS_FLASH (0)
34-
#define MICROPY_HW_HAS_SDCARD (0)
35-
#define MICROPY_HW_HAS_MMA7660 (0)
36-
#define MICROPY_HW_HAS_LIS3DSH (0)
37-
#define MICROPY_HW_HAS_LCD (0)
38-
#define MICROPY_HW_ENABLE_RNG (0)
39-
#define MICROPY_HW_ENABLE_RTC (0)
40-
#define MICROPY_HW_ENABLE_TIMER (0)
41-
#define MICROPY_HW_ENABLE_SERVO (0)
42-
#define MICROPY_HW_ENABLE_DAC (0)
43-
#define MICROPY_HW_ENABLE_CAN (0)
31+
#define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8)
32+
#define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6)
33+
#define MICROPY_HW_UART_HWFC (0)
4434

45-
#define MICROPY_HW_LED_COUNT (2)
46-
#define MICROPY_HW_LED_PULLUP (0)
47-
48-
#define MICROPY_HW_LED1 (17) // LED1
49-
#define MICROPY_HW_LED2 (19) // LED2
50-
51-
// UART config
52-
#define MICROPY_HW_UART1_RX (pin_P0_08)
53-
#define MICROPY_HW_UART1_TX (pin_P0_06)
54-
#define MICROPY_HW_UART1_HWFC (0)
55-
56-
// SPI0 config
57-
#define MICROPY_HW_SPI0_NAME "SPI0"
58-
#define MICROPY_HW_SPI0_SCK (pin_P0_12) // (Arduino D13)
59-
#define MICROPY_HW_SPI0_MOSI (pin_P0_13) // (Arduino D11)
60-
#define MICROPY_HW_SPI0_MISO (pin_P0_14) // (Arduino D12)
61-
62-
#define MICROPY_HW_PWM0_NAME "PWM0"
63-
#define MICROPY_HW_PWM1_NAME "PWM1"
64-
#define MICROPY_HW_PWM2_NAME "PWM2"
65-
66-
#define HELP_TEXT_BOARD_LED "1,2"
67-
68-
69-
70-
#define PORT_HEAP_SIZE (32*1024)
35+
#define PORT_HEAP_SIZE (32 * 1024)
7136
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500

ports/nrf/boards/feather52840/mpconfigboard.h

Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -27,53 +27,12 @@
2727
#define FEATHER52840
2828

2929
#define MICROPY_HW_BOARD_NAME "Feather52840"
30-
#define MICROPY_HW_MCU_NAME "NRF52840"
31-
#define MICROPY_PY_SYS_PLATFORM "nrf52840-PDK"
30+
#define MICROPY_HW_MCU_NAME "nRF52840"
31+
#define MICROPY_PY_SYS_PLATFORM "nRF52840-PDK"
3232

33-
#define MICROPY_HW_HAS_LED (1)
34-
#define MICROPY_HW_HAS_SWITCH (0)
35-
#define MICROPY_HW_HAS_FLASH (0)
36-
#define MICROPY_HW_HAS_SDCARD (0)
37-
#define MICROPY_HW_HAS_MMA7660 (0)
38-
#define MICROPY_HW_HAS_LIS3DSH (0)
39-
#define MICROPY_HW_HAS_LCD (0)
40-
#define MICROPY_HW_ENABLE_RNG (0)
41-
#define MICROPY_HW_ENABLE_RTC (0)
42-
#define MICROPY_HW_ENABLE_TIMER (0)
43-
#define MICROPY_HW_ENABLE_SERVO (0)
44-
#define MICROPY_HW_ENABLE_DAC (0)
45-
#define MICROPY_HW_ENABLE_CAN (0)
33+
#define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8)
34+
#define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6)
35+
#define MICROPY_HW_UART_HWFC (0)
4636

47-
#define MICROPY_HW_LED_COUNT (4)
48-
#define MICROPY_HW_LED_PULLUP (1)
49-
50-
#define MICROPY_HW_LED1 (13) // LED1
51-
#define MICROPY_HW_LED2 (14) // LED2
52-
#define MICROPY_HW_LED3 (15) // LED3
53-
#define MICROPY_HW_LED4 (16) // LED4
54-
55-
// UART config
56-
#define MICROPY_HW_UART1_RX (pin_P0_08)
57-
#define MICROPY_HW_UART1_TX (pin_P0_06)
58-
#define MICROPY_HW_UART1_CTS (pin_P0_07)
59-
#define MICROPY_HW_UART1_RTS (pin_P0_05)
60-
#define MICROPY_HW_UART1_HWFC (1)
61-
62-
// SPI0 config
63-
#define MICROPY_HW_SPI0_NAME "SPI0"
64-
65-
#define MICROPY_HW_SPI0_SCK (pin_P1_15)
66-
#define MICROPY_HW_SPI0_MOSI (pin_P1_13)
67-
#define MICROPY_HW_SPI0_MISO (pin_P1_14)
68-
69-
#define MICROPY_HW_PWM0_NAME "PWM0"
70-
#define MICROPY_HW_PWM1_NAME "PWM1"
71-
#define MICROPY_HW_PWM2_NAME "PWM2"
72-
#if 0
73-
#define MICROPY_HW_PWM3_NAME "PWM3"
74-
#endif
75-
76-
#define HELP_TEXT_BOARD_LED "1,2,3,4"
77-
78-
#define PORT_HEAP_SIZE (128*1024)
37+
#define PORT_HEAP_SIZE (128 * 1024)
7938
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500

ports/nrf/boards/pca10040/mpconfigboard.h

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,52 +24,13 @@
2424
* THE SOFTWARE.
2525
*/
2626

27-
#define PCA10040
28-
2927
#define MICROPY_HW_BOARD_NAME "PCA10040"
30-
#define MICROPY_HW_MCU_NAME "NRF52832"
31-
#define MICROPY_PY_SYS_PLATFORM "nrf52-DK"
32-
33-
#define MICROPY_HW_HAS_LED (1)
34-
#define MICROPY_HW_HAS_SWITCH (0)
35-
#define MICROPY_HW_HAS_FLASH (0)
36-
#define MICROPY_HW_HAS_SDCARD (0)
37-
#define MICROPY_HW_HAS_MMA7660 (0)
38-
#define MICROPY_HW_HAS_LIS3DSH (0)
39-
#define MICROPY_HW_HAS_LCD (0)
40-
#define MICROPY_HW_ENABLE_RNG (0)
41-
#define MICROPY_HW_ENABLE_RTC (0)
42-
#define MICROPY_HW_ENABLE_TIMER (0)
43-
#define MICROPY_HW_ENABLE_SERVO (0)
44-
#define MICROPY_HW_ENABLE_DAC (0)
45-
#define MICROPY_HW_ENABLE_CAN (0)
46-
47-
#define MICROPY_HW_LED_COUNT (4)
48-
#define MICROPY_HW_LED_PULLUP (1)
49-
50-
#define MICROPY_HW_LED1 (17) // LED1
51-
#define MICROPY_HW_LED2 (18) // LED2
52-
#define MICROPY_HW_LED3 (19) // LED3
53-
#define MICROPY_HW_LED4 (20) // LED4
54-
55-
// UART config
56-
#define MICROPY_HW_UART1_RX (pin_P0_08)
57-
#define MICROPY_HW_UART1_TX (pin_P0_06)
58-
#define MICROPY_HW_UART1_CTS (pin_P0_07)
59-
#define MICROPY_HW_UART1_RTS (pin_P0_05)
60-
#define MICROPY_HW_UART1_HWFC (1)
61-
62-
// SPI0 config
63-
#define MICROPY_HW_SPI0_NAME "SPI0"
64-
#define MICROPY_HW_SPI0_SCK (pin_P0_25) // (Arduino D13)
65-
#define MICROPY_HW_SPI0_MOSI (pin_P0_23) // (Arduino D11)
66-
#define MICROPY_HW_SPI0_MISO (pin_P0_24) // (Arduino D12)
67-
68-
#define MICROPY_HW_PWM0_NAME "PWM0"
69-
#define MICROPY_HW_PWM1_NAME "PWM1"
70-
#define MICROPY_HW_PWM2_NAME "PWM2"
28+
#define MICROPY_HW_MCU_NAME "nRF52832"
29+
#define MICROPY_PY_SYS_PLATFORM "nRF52-DK"
7130

72-
#define HELP_TEXT_BOARD_LED "1,2,3,4"
31+
#define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8)
32+
#define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6)
33+
#define MICROPY_HW_UART_HWFC (0)
7334

74-
#define PORT_HEAP_SIZE (32*1024)
35+
#define PORT_HEAP_SIZE (32 * 1024)
7536
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500

ports/nrf/boards/pca10056/mpconfigboard.h

Lines changed: 6 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -24,56 +24,13 @@
2424
* THE SOFTWARE.
2525
*/
2626

27-
#define PCA10056
28-
2927
#define MICROPY_HW_BOARD_NAME "PCA10056"
30-
#define MICROPY_HW_MCU_NAME "NRF52840"
31-
#define MICROPY_PY_SYS_PLATFORM "nrf52840-PDK"
32-
33-
#define MICROPY_HW_HAS_LED (1)
34-
#define MICROPY_HW_HAS_SWITCH (0)
35-
#define MICROPY_HW_HAS_FLASH (0)
36-
#define MICROPY_HW_HAS_SDCARD (0)
37-
#define MICROPY_HW_HAS_MMA7660 (0)
38-
#define MICROPY_HW_HAS_LIS3DSH (0)
39-
#define MICROPY_HW_HAS_LCD (0)
40-
#define MICROPY_HW_ENABLE_RNG (0)
41-
#define MICROPY_HW_ENABLE_RTC (0)
42-
#define MICROPY_HW_ENABLE_TIMER (0)
43-
#define MICROPY_HW_ENABLE_SERVO (0)
44-
#define MICROPY_HW_ENABLE_DAC (0)
45-
#define MICROPY_HW_ENABLE_CAN (0)
46-
47-
#define MICROPY_HW_LED_COUNT (4)
48-
#define MICROPY_HW_LED_PULLUP (1)
49-
50-
#define MICROPY_HW_LED1 (13) // LED1
51-
#define MICROPY_HW_LED2 (14) // LED2
52-
#define MICROPY_HW_LED3 (15) // LED3
53-
#define MICROPY_HW_LED4 (16) // LED4
54-
55-
// UART config
56-
#define MICROPY_HW_UART1_RX (pin_P0_08)
57-
#define MICROPY_HW_UART1_TX (pin_P0_06)
58-
#define MICROPY_HW_UART1_CTS (pin_P0_07)
59-
#define MICROPY_HW_UART1_RTS (pin_P0_05)
60-
#define MICROPY_HW_UART1_HWFC (1)
61-
62-
// SPI0 config
63-
#define MICROPY_HW_SPI0_NAME "SPI0"
64-
65-
#define MICROPY_HW_SPI0_SCK (pin_P1_15)
66-
#define MICROPY_HW_SPI0_MOSI (pin_P1_13)
67-
#define MICROPY_HW_SPI0_MISO (pin_P1_14)
68-
69-
#define MICROPY_HW_PWM0_NAME "PWM0"
70-
#define MICROPY_HW_PWM1_NAME "PWM1"
71-
#define MICROPY_HW_PWM2_NAME "PWM2"
72-
#if 0
73-
#define MICROPY_HW_PWM3_NAME "PWM3"
74-
#endif
28+
#define MICROPY_HW_MCU_NAME "nRF52840"
29+
#define MICROPY_PY_SYS_PLATFORM "nRF52840-PDK"
7530

76-
#define HELP_TEXT_BOARD_LED "1,2,3,4"
31+
#define MICROPY_HW_UART_RX NRF_GPIO_PIN_MAP(0, 8)
32+
#define MICROPY_HW_UART_TX NRF_GPIO_PIN_MAP(0, 6)
33+
#define MICROPY_HW_UART_HWFC (0)
7734

78-
#define PORT_HEAP_SIZE (128*1024)
35+
#define PORT_HEAP_SIZE (128 * 1024)
7936
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500

0 commit comments

Comments
 (0)