From b03037e512766230e07ca6549e24f9f8ace9cdba Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Mon, 10 Sep 2018 16:55:55 +0000 Subject: Create README.md --- ports/atmel-samd/boards/mini_sam_m0/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m0/README.md diff --git a/ports/atmel-samd/boards/mini_sam_m0/README.md b/ports/atmel-samd/boards/mini_sam_m0/README.md new file mode 100644 index 000000000..24061a281 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m0/README.md @@ -0,0 +1 @@ +Port for Mini SAM M0 Board. -- cgit v1.2.3 From b2f5511de2e6503b06f1335c270a23777f9273dc Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Mon, 10 Sep 2018 17:01:00 +0000 Subject: Initial Upload of Mini SAM M0 Initial Upload of Mini SAM M0 --- ports/atmel-samd/boards/mini_sam_m0/board.c | 38 ++++++++++++++++++++++ .../atmel-samd/boards/mini_sam_m0/mpconfigboard.h | 29 +++++++++++++++++ .../atmel-samd/boards/mini_sam_m0/mpconfigboard.mk | 14 ++++++++ ports/atmel-samd/boards/mini_sam_m0/pins.c | 35 ++++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m0/board.c create mode 100644 ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h create mode 100644 ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk create mode 100644 ports/atmel-samd/boards/mini_sam_m0/pins.c diff --git a/ports/atmel-samd/boards/mini_sam_m0/board.c b/ports/atmel-samd/boards/mini_sam_m0/board.c new file mode 100644 index 000000000..c8e20206a --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m0/board.c @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" + +void board_init(void) +{ +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h new file mode 100644 index 000000000..c447a8dc7 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h @@ -0,0 +1,29 @@ +// LEDs +//#define MICROPY_HW_LED_MSC PIN_PA15 // red + +#define MICROPY_HW_BOARD_NAME "Mini Sam M0" +#define MICROPY_HW_MCU_NAME "samd21e18" + +#define MICROPY_PORT_A (PORT_PA24 | PORT_PA25) +#define MICROPY_PORT_B (0) +#define MICROPY_PORT_C (0) + +#include "internal_flash.h" + +#define CIRCUITPY_INTERNAL_NVM_SIZE 0 + +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) + +#define DEFAULT_I2C_BUS_SCL (&pin_PA23) +#define DEFAULT_I2C_BUS_SDA (&pin_PA22) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA17) +#define DEFAULT_SPI_BUS_MOSI (&pin_PA16) +#define DEFAULT_SPI_BUS_MISO (&pin_PA19) + +#define DEFAULT_UART_BUS_RX (&pin_PA11) +#define DEFAULT_UART_BUS_TX (&pin_PA10) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk new file mode 100644 index 000000000..8d7e93fb5 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk @@ -0,0 +1,14 @@ +LD_FILE = boards/samd21x18-bootloader.ld +USB_VID = 0x1209 +USB_PID = 0x2017 +USB_PRODUCT = "Mini SAM M0" +USB_MANUFACTURER = "Benjamin Shockley" + +INTERNAL_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = NONE + +CHIP_VARIANT = SAMD21E18A +CHIP_FAMILY = samd21 + +# Include these Python libraries in firmware. +FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel diff --git a/ports/atmel-samd/boards/mini_sam_m0/pins.c b/ports/atmel-samd/boards/mini_sam_m0/pins.c new file mode 100644 index 000000000..3af6de801 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m0/pins.c @@ -0,0 +1,35 @@ +#include "shared-bindings/board/__init__.h" + +#include "board_busses.h" + +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, + { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA08) }, + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) }, + { MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PA18) }, + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) }, + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) }, + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) }, + { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_PA18) }, + { MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_PA27) }, + { MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA27) }, + { MP_ROM_QSTR(MP_QSTR_D28), MP_ROM_PTR(&pin_PA28) }, + { MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA28) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); -- cgit v1.2.3 From 08a2d962e3d8aabb604e76fdb562008373f56532 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Mon, 10 Sep 2018 17:01:31 +0000 Subject: Delete README.md --- ports/atmel-samd/boards/mini_sam_m0/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 ports/atmel-samd/boards/mini_sam_m0/README.md diff --git a/ports/atmel-samd/boards/mini_sam_m0/README.md b/ports/atmel-samd/boards/mini_sam_m0/README.md deleted file mode 100644 index 24061a281..000000000 --- a/ports/atmel-samd/boards/mini_sam_m0/README.md +++ /dev/null @@ -1 +0,0 @@ -Port for Mini SAM M0 Board. -- cgit v1.2.3 From c7cf38186d173bcce6b83ea595920b2cd7a80546 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Mon, 10 Sep 2018 14:55:18 -0500 Subject: Added IS25LP016D --- ports/atmel-samd/external_flash/devices.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index ea1b24a32..32a852fec 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -265,6 +265,21 @@ typedef struct { .write_status_register_split = false, \ } - +// Settings for the ISSI IS25LP016D-JULE-TR 2MiB SPI flash. +// Datasheet: http://www.issi.com/WW/pdf/25LP-WP016D.pdf +#define IS25LP016D {\ + .total_size = (1 << 21), /* 2 MiB */ \ + .start_up_time_us = 5000, \ + .manufacturer_id = 0x9d, \ + .memory_type = 0x60, \ + .capacity = 0x15, \ + .max_clock_speed_mhz = 133, \ + .has_sector_protection = false, \ + .supports_fast_read = true, \ + .supports_qspi = true, \ + .has_quad_enable = true, \ + .supports_qspi_writes = false, \ + .write_status_register_split = false, \ +} #endif // MICROPY_INCLUDED_ATMEL_SAMD_EXTERNAL_FLASH_DEVICES_H -- cgit v1.2.3 From 2138b04e45280e0192f9f25efbd79e270b5a4eb8 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Tue, 11 Sep 2018 07:52:23 -0500 Subject: Update to IS25LP016D Changed .supports_qspi_write to true. --- ports/atmel-samd/external_flash/devices.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index 32a852fec..41f385984 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -278,7 +278,7 @@ typedef struct { .supports_fast_read = true, \ .supports_qspi = true, \ .has_quad_enable = true, \ - .supports_qspi_writes = false, \ + .supports_qspi_writes = true, \ .write_status_register_split = false, \ } -- cgit v1.2.3 From b923324e739e3008e21d976958c70dc66817594b Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Wed, 12 Sep 2018 07:59:07 -0500 Subject: Added HW NEOPIXEL Definition Added definition for the built-in Neopixel. This is useful for CircuitPython Statas: https://learn.adafruit.com/welcome-to-circuitpython/troubleshooting#circuitpython-rgb-status-light-18-10 --- ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h index c447a8dc7..1979900b0 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h @@ -1,9 +1,12 @@ -// LEDs -//#define MICROPY_HW_LED_MSC PIN_PA15 // red - +// Board Name / MCU Type #define MICROPY_HW_BOARD_NAME "Mini Sam M0" #define MICROPY_HW_MCU_NAME "samd21e18" +// LED +#define MICROPY_HW_NEOPIXEL (&pin_PA27) +//#define MICROPY_HW_LED_MSC PIN_PA15 // red + +// Do not reset these pins. #define MICROPY_PORT_A (PORT_PA24 | PORT_PA25) #define MICROPY_PORT_B (0) #define MICROPY_PORT_C (0) @@ -14,6 +17,8 @@ #define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define BOARD_HAS_CRYSTAL 1 + #define DEFAULT_I2C_BUS_SCL (&pin_PA23) #define DEFAULT_I2C_BUS_SDA (&pin_PA22) -- cgit v1.2.3 From 13364f90fe13fa12474dcb737c1a5f1a4cd21ab1 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Sat, 29 Sep 2018 23:16:07 -0500 Subject: Create board.c --- ports/atmel-samd/boards/mini_sam_m4/board.c | 57 +++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4/board.c diff --git a/ports/atmel-samd/boards/mini_sam_m4/board.c b/ports/atmel-samd/boards/mini_sam_m4/board.c new file mode 100644 index 000000000..e8c4e7b00 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4/board.c @@ -0,0 +1,57 @@ +Skip to content + +Search or jump to… + +Pull requests +Issues +Marketplace +Explore + @bwshockley Sign out +1 +0 1,975 bwshockley/circuitpython +forked from adafruit/circuitpython + Code Pull requests 0 Projects 0 Insights Settings +circuitpython/ports/atmel-samd/boards/itsybitsy_m4_express/board.c +2a26dac on Apr 12 +@tannewt tannewt Add initial ItsyBitsy M4 support + +40 lines (35 sloc) 1.42 KB +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" +#include "mpconfigboard.h" +#include "hal/include/hal_gpio.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} -- cgit v1.2.3 From 4acca8b90b90c47776d42c997d45bbedc3deb738 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Sat, 29 Sep 2018 23:17:24 -0500 Subject: Update board.c --- ports/atmel-samd/boards/mini_sam_m4/board.c | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/ports/atmel-samd/boards/mini_sam_m4/board.c b/ports/atmel-samd/boards/mini_sam_m4/board.c index e8c4e7b00..0f60736a2 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/board.c +++ b/ports/atmel-samd/boards/mini_sam_m4/board.c @@ -1,21 +1,3 @@ -Skip to content - -Search or jump to… - -Pull requests -Issues -Marketplace -Explore - @bwshockley Sign out -1 -0 1,975 bwshockley/circuitpython -forked from adafruit/circuitpython - Code Pull requests 0 Projects 0 Insights Settings -circuitpython/ports/atmel-samd/boards/itsybitsy_m4_express/board.c -2a26dac on Apr 12 -@tannewt tannewt Add initial ItsyBitsy M4 support - -40 lines (35 sloc) 1.42 KB /* * This file is part of the MicroPython project, http://micropython.org/ * -- cgit v1.2.3 From 5ab4f09b2fc8fbb0a0ac94998dc6222178ac9745 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Sat, 29 Sep 2018 23:24:32 -0500 Subject: Create mpconfigboard.h --- .../atmel-samd/boards/mini_sam_m4/mpconfigboard.h | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h new file mode 100644 index 000000000..1683b1fc8 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h @@ -0,0 +1,47 @@ +#define MICROPY_HW_BOARD_NAME "Mini SAM M4" +#define MICROPY_HW_MCU_NAME "samd51g19" + +#define CIRCUITPY_MCU_FAMILY samd51 + +// RGB Status LED Pins +#define MICROPY_HW_APA102_MOSI (&pin_PB03) +#define MICROPY_HW_APA102_SCK (&pin_PB02) + +#define CIRCUITPY_BITBANG_APA102 + +// These are pins not to reset. +// QSPI Data pins +#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11) +// RGB Status LED pins, QSPI CS, and QSPI SCK +#define MICROPY_PORT_B (PORT_PB02 | PORT_PB03 | PORT_PB10 | PORT_PB11) +#define MICROPY_PORT_C (0) +#define MICROPY_PORT_D (0) + +#define AUTORESET_DELAY_MS 500 + +// If you change this, then make sure to update the linker scripts as well to +// make sure you don't overwrite code +#define CIRCUITPY_INTERNAL_NVM_SIZE 8192 + +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) + +#include "external_flash/devices.h" + +#define EXTERNAL_FLASH_DEVICE_COUNT 1 +#define EXTERNAL_FLASH_DEVICES W25Q16JV + +#include "external_flash/external_flash.h" + +#define DEFAULT_I2C_BUS_SCL (&pin_PA13) +#define DEFAULT_I2C_BUS_SDA (&pin_PA12) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA01) +#define DEFAULT_SPI_BUS_MOSI (&pin_PB22) +#define DEFAULT_SPI_BUS_MISO (&pin_PB23) + +#define DEFAULT_UART_BUS_RX (&pin_PA16) +#define DEFAULT_UART_BUS_TX (&pin_PA17) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 -- cgit v1.2.3 From 8e52d922cc47e31b8ff7020e507268706814e8ed Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Sat, 29 Sep 2018 23:26:15 -0500 Subject: Create mpconfigboard.mk --- ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk new file mode 100644 index 000000000..4320fd391 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk @@ -0,0 +1,11 @@ +LD_FILE = boards/samd51x19-bootloader-external-flash.ld +USB_VID = 0x1209 +USB_PID = 0x2017 +USB_PRODUCT = "Mini SAM M4" +USB_MANUFACTURER = "Benjamin Shockley" + +QSPI_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = MPZ + +CHIP_VARIANT = SAMD51G19A +CHIP_FAMILY = samd51 -- cgit v1.2.3 From 862d5a06fd9af31305b58f2f45d9c90d26194767 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Sat, 29 Sep 2018 23:33:07 -0500 Subject: Create pins.c --- ports/atmel-samd/boards/mini_sam_m4/pins.c | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4/pins.c diff --git a/ports/atmel-samd/boards/mini_sam_m4/pins.c b/ports/atmel-samd/boards/mini_sam_m4/pins.c new file mode 100644 index 000000000..8498f34d9 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4/pins.c @@ -0,0 +1,43 @@ +#include "shared-bindings/board/__init__.h" + +#include "board_busses.h" + +// This mapping only includes functional names because pins broken +// out on connectors are labeled with their MCU name available from +// microcontroller.pin. +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA07) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA01) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) }, + + { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PB03) }, + { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PB02) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); -- cgit v1.2.3 From f6b9f101dc329de3ae5096f38c5bdc1bd3e32211 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Thu, 4 Oct 2018 21:13:05 -0500 Subject: Added W25Q16JV_IM Added new flash module: W25Q16JV_IM --- ports/atmel-samd/external_flash/devices.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index 41f385984..ce90a85b3 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -197,6 +197,23 @@ typedef struct { .write_status_register_split = false, \ } +// Settings for the Winbond W25Q16JV_IM 2MiB SPI flash. (W25Q16JVUXIM) +// Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf +#define W25Q16JV_IM {\ + .total_size = (1 << 21), /* 2 MiB */ \ + .start_up_time_us = 5000, \ + .manufacturer_id = 0xef, \ + .memory_type = 0x70, \ + .capacity = 0x15, \ + .max_clock_speed_mhz = 133, \ + .has_sector_protection = false, \ + .supports_fast_read = true, \ + .supports_qspi = true, \ + .has_quad_enable = true, \ + .supports_qspi_writes = true, \ + .write_status_register_split = false, \ +} + // Settings for the Winbond W25Q32BV 4MiB SPI flash. // Datasheet: https://www.winbond.com/resource-files/w25q32bv_revi_100413_wo_automotive.pdf #define W25Q32BV {\ -- cgit v1.2.3 From 2ef29c2cec135d20c35396f3868976e89347688e Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Thu, 4 Oct 2018 21:14:07 -0500 Subject: Changed FLASH DEVICE Changed the flash device to W25Q16JV_IM - the type actually used. --- ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h index 1683b1fc8..ae849d1e2 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h @@ -28,7 +28,7 @@ #include "external_flash/devices.h" #define EXTERNAL_FLASH_DEVICE_COUNT 1 -#define EXTERNAL_FLASH_DEVICES W25Q16JV +#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM #include "external_flash/external_flash.h" -- cgit v1.2.3 From 62d316bffb4b348ec8ada8f143025725fb5c85be Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Thu, 4 Oct 2018 21:26:05 -0500 Subject: W25Q16JV IQ and IM Indicate the differences between IQ and IM with the 2 MiB version of the W25Q chip. --- ports/atmel-samd/external_flash/devices.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index ce90a85b3..08e8016b8 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -180,9 +180,9 @@ typedef struct { .write_status_register_split = false, \ } -// Settings for the Winbond W25Q16JV 2MiB SPI flash. +// Settings for the Winbond W25Q16JV 2MiB SPI flash. Note that JV-IQ has a different .memory_type (0x40) // Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf -#define W25Q16JV {\ +#define W25Q16JV_IQ {\ .total_size = (1 << 21), /* 2 MiB */ \ .start_up_time_us = 5000, \ .manufacturer_id = 0xef, \ @@ -197,7 +197,7 @@ typedef struct { .write_status_register_split = false, \ } -// Settings for the Winbond W25Q16JV_IM 2MiB SPI flash. (W25Q16JVUXIM) +// Settings for the Winbond W25Q16JV_IM 2MiB SPI flash. Note that JV-IM has a different .memory_type (0x70) // Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf #define W25Q16JV_IM {\ .total_size = (1 << 21), /* 2 MiB */ \ -- cgit v1.2.3 From 091c5106ef7ee916d65921a2b6124257e9503aab Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Thu, 4 Oct 2018 21:26:28 -0500 Subject: Cleanup Files --- ports/atmel-samd/external_flash/devices.h | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index 08e8016b8..098166a5e 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -282,21 +282,4 @@ typedef struct { .write_status_register_split = false, \ } -// Settings for the ISSI IS25LP016D-JULE-TR 2MiB SPI flash. -// Datasheet: http://www.issi.com/WW/pdf/25LP-WP016D.pdf -#define IS25LP016D {\ - .total_size = (1 << 21), /* 2 MiB */ \ - .start_up_time_us = 5000, \ - .manufacturer_id = 0x9d, \ - .memory_type = 0x60, \ - .capacity = 0x15, \ - .max_clock_speed_mhz = 133, \ - .has_sector_protection = false, \ - .supports_fast_read = true, \ - .supports_qspi = true, \ - .has_quad_enable = true, \ - .supports_qspi_writes = true, \ - .write_status_register_split = false, \ -} - #endif // MICROPY_INCLUDED_ATMEL_SAMD_EXTERNAL_FLASH_DEVICES_H -- cgit v1.2.3 From 6d974593c739c1e29c7650f8e9cdfc80e038c7fc Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 19 Oct 2018 20:52:23 -0500 Subject: Create board.c --- ports/atmel-samd/boards/mini_sam_m4_g18/board.c | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/board.c diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/board.c b/ports/atmel-samd/boards/mini_sam_m4_g18/board.c new file mode 100644 index 000000000..0f60736a2 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4_g18/board.c @@ -0,0 +1,39 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "boards/board.h" +#include "mpconfigboard.h" +#include "hal/include/hal_gpio.h" + +void board_init(void) { +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { +} -- cgit v1.2.3 From 1593f4e3a84c706c26c0553b563e6bd65c164917 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 19 Oct 2018 21:14:46 -0500 Subject: Create mpconfigboard.h --- .../boards/mini_sam_m4_g18/mpconfigboard.h | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h new file mode 100644 index 000000000..b297a8edc --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h @@ -0,0 +1,47 @@ +#define MICROPY_HW_BOARD_NAME "Mini SAM M4" +#define MICROPY_HW_MCU_NAME "samd51g18" + +#define CIRCUITPY_MCU_FAMILY samd51 + +// RGB Status LED Pins +#define MICROPY_HW_APA102_MOSI (&pin_PB03) +#define MICROPY_HW_APA102_SCK (&pin_PB02) + +#define CIRCUITPY_BITBANG_APA102 + +// These are pins not to reset. +// QSPI Data pins +#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11) +// RGB Status LED pins, QSPI CS, and QSPI SCK +#define MICROPY_PORT_B (PORT_PB02 | PORT_PB03 | PORT_PB10 | PORT_PB11) +#define MICROPY_PORT_C (0) +#define MICROPY_PORT_D (0) + +#define AUTORESET_DELAY_MS 500 + +// If you change this, then make sure to update the linker scripts as well to +// make sure you don't overwrite code +#define CIRCUITPY_INTERNAL_NVM_SIZE 4096 + +#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) + +#include "external_flash/devices.h" + +#define EXTERNAL_FLASH_DEVICE_COUNT 1 +#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM + +#include "external_flash/external_flash.h" + +#define DEFAULT_I2C_BUS_SCL (&pin_PA13) +#define DEFAULT_I2C_BUS_SDA (&pin_PA12) + +#define DEFAULT_SPI_BUS_SCK (&pin_PA01) +#define DEFAULT_SPI_BUS_MOSI (&pin_PB22) +#define DEFAULT_SPI_BUS_MISO (&pin_PB23) + +#define DEFAULT_UART_BUS_RX (&pin_PA16) +#define DEFAULT_UART_BUS_TX (&pin_PA17) + +// USB is always used internally so skip the pin objects for it. +#define IGNORE_PIN_PA24 1 +#define IGNORE_PIN_PA25 1 -- cgit v1.2.3 From 88fd5d7daa7ed9d30f8368590b85627f8442b52b Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 19 Oct 2018 21:15:50 -0500 Subject: Create mpconfigboard.mk --- ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk new file mode 100644 index 000000000..eeba0c805 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk @@ -0,0 +1,11 @@ +LD_FILE = boards/samd51x18-bootloader-external-flash.ld +USB_VID = 0x1209 +USB_PID = 0x2017 +USB_PRODUCT = "Mini SAM M4" +USB_MANUFACTURER = "Benjamin Shockley" + +QSPI_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = MPZ + +CHIP_VARIANT = SAMD51G18A +CHIP_FAMILY = samd51 -- cgit v1.2.3 From 548e6893cd3875c29ded778be81c41e672e452af Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 19 Oct 2018 21:16:21 -0500 Subject: Create pins.c --- ports/atmel-samd/boards/mini_sam_m4_g18/pins.c | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/pins.c diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c b/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c new file mode 100644 index 000000000..8498f34d9 --- /dev/null +++ b/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c @@ -0,0 +1,43 @@ +#include "shared-bindings/board/__init__.h" + +#include "board_busses.h" + +// This mapping only includes functional names because pins broken +// out on connectors are labeled with their MCU name available from +// microcontroller.pin. +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA07) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA00) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA01) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB22) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) }, + + { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PB03) }, + { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PB02) }, + { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, + { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, + { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); -- cgit v1.2.3 From 5d190a56151b828537b56bf3868dd34d2ec9dd66 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 19 Oct 2018 21:18:19 -0500 Subject: Update mpconfigboard.h Corrected NVM size. --- ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h index b297a8edc..3c4b21ddd 100644 --- a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h @@ -21,7 +21,7 @@ // If you change this, then make sure to update the linker scripts as well to // make sure you don't overwrite code -#define CIRCUITPY_INTERNAL_NVM_SIZE 4096 +#define CIRCUITPY_INTERNAL_NVM_SIZE 8192 #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) -- cgit v1.2.3 From aec39fd02723537028371efda84878c584e0f02e Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 26 Oct 2018 12:09:59 -0500 Subject: Updated to new D21G18 MCU Updated MIni SAM M0 to new D21G18A MCU to match layout/design of M4 --- lib/uzlib | 2 +- ports/atmel-samd/boards/mini_sam_m0/board.c | 3 +- .../atmel-samd/boards/mini_sam_m0/mpconfigboard.h | 69 +++++++++++++++------- .../atmel-samd/boards/mini_sam_m0/mpconfigboard.mk | 11 ++-- ports/atmel-samd/boards/mini_sam_m0/pins.c | 55 ++++++++++------- 5 files changed, 88 insertions(+), 52 deletions(-) diff --git a/lib/uzlib b/lib/uzlib index f966da0fa..27176508e 160000 --- a/lib/uzlib +++ b/lib/uzlib @@ -1 +1 @@ -Subproject commit f966da0fab121e910ea74f037f074538a2e6dbbb +Subproject commit 27176508e188c0900877e810be34198cd88dcb63 diff --git a/ports/atmel-samd/boards/mini_sam_m0/board.c b/ports/atmel-samd/boards/mini_sam_m0/board.c index c8e20206a..d7e856d61 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/board.c +++ b/ports/atmel-samd/boards/mini_sam_m0/board.c @@ -26,8 +26,7 @@ #include "boards/board.h" -void board_init(void) -{ +void board_init(void) { } bool board_requests_safe_mode(void) { diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h index 1979900b0..cec74844a 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h @@ -1,33 +1,62 @@ // Board Name / MCU Type #define MICROPY_HW_BOARD_NAME "Mini Sam M0" -#define MICROPY_HW_MCU_NAME "samd21e18" - -// LED -#define MICROPY_HW_NEOPIXEL (&pin_PA27) -//#define MICROPY_HW_LED_MSC PIN_PA15 // red - -// Do not reset these pins. -#define MICROPY_PORT_A (PORT_PA24 | PORT_PA25) -#define MICROPY_PORT_B (0) +#define MICROPY_HW_MCU_NAME "samd21g18" + +// RGB LED Definition +#define CIRCUITPY_BITBANG_APA102 +#define MICROPY_HW_APA102_MOSI (&pin_PA00) +#define MICROPY_HW_APA102_SCK (&pin_PB02) + +// Set at 8Mhz +#define SPI_FLASH_BAUDRATE (8000000) + +#define SPI_FLASH_MOSI_PIN PIN_PA10 +#define SPI_FLASH_MISO_PIN PIN_PA08 +#define SPI_FLASH_SCK_PIN PIN_PA11 +#define SPI_FLASH_CS_PIN PIN_PA09 +#define SPI_FLASH_MOSI_PIN_FUNCTION PINMUX_PA10D_SERCOM0_PAD2 +#define SPI_FLASH_MISO_PIN_FUNCTION PINMUX_PA08D_SERCOM0_PAD0 +#define SPI_FLASH_SCK_PIN_FUNCTION PINMUX_PA11D_SERCOM0_PAD3 +#define SPI_FLASH_SERCOM SERCOM0 +#define SPI_FLASH_SERCOM_INDEX 0 +#define SPI_FLASH_MOSI_PAD 2 +#define SPI_FLASH_MISO_PAD 0 +#define SPI_FLASH_SCK_PAD 3 +// Transmit Data Pinout +// <0x0=>PAD[0,1]_DO_SCK +// <0x1=>PAD[2,3]_DO_SCK +// <0x2=>PAD[3,1]_DO_SCK +// <0x3=>PAD[0,3]_DO_SCK +#define SPI_FLASH_DOPO 1 +#define SPI_FLASH_DIPO 1 // same as MISO pad + +// These are pins not to reset. +#define MICROPY_PORT_A (PORT_PA00 | PORT_PA08 | PORT_PA09 | PORT_PA10 |PORT_PA11 | PORT_PA24 | PORT_PA25) +#define MICROPY_PORT_B (PORT_PB02) #define MICROPY_PORT_C (0) -#include "internal_flash.h" +// If you change this, then make sure to update the linker scripts as well to +// make sure you don't overwrite code. +#define CIRCUITPY_INTERNAL_NVM_SIZE 256 + +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE) -#define CIRCUITPY_INTERNAL_NVM_SIZE 0 +#include "external_flash/devices.h" -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000) +#define EXTERNAL_FLASH_DEVICE_COUNT 1 +#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM -#define BOARD_HAS_CRYSTAL 1 +#include "external_flash/external_flash.h" -#define DEFAULT_I2C_BUS_SCL (&pin_PA23) -#define DEFAULT_I2C_BUS_SDA (&pin_PA22) +#define DEFAULT_I2C_BUS_SCL (&pin_PA13) +#define DEFAULT_I2C_BUS_SDA (&pin_PA12) -#define DEFAULT_SPI_BUS_SCK (&pin_PA17) -#define DEFAULT_SPI_BUS_MOSI (&pin_PA16) -#define DEFAULT_SPI_BUS_MISO (&pin_PA19) +#define DEFAULT_SPI_BUS_SCK (&pin_PB03) +#define DEFAULT_SPI_BUS_MOSI (&pin_PB22) +#define DEFAULT_SPI_BUS_MISO (&pin_PA23) -#define DEFAULT_UART_BUS_RX (&pin_PA11) -#define DEFAULT_UART_BUS_TX (&pin_PA10) +#define DEFAULT_UART_BUS_RX (&pin_PA16) +#define DEFAULT_UART_BUS_TX (&pin_PA17) // USB is always used internally so skip the pin objects for it. #define IGNORE_PIN_PA24 1 diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk index 8d7e93fb5..78e245d2f 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk @@ -1,14 +1,11 @@ -LD_FILE = boards/samd21x18-bootloader.ld +LD_FILE = boards/samd21x18-bootloader-external-flash-crystalless.ld USB_VID = 0x1209 USB_PID = 0x2017 USB_PRODUCT = "Mini SAM M0" USB_MANUFACTURER = "Benjamin Shockley" -INTERNAL_FLASH_FILESYSTEM = 1 -LONGINT_IMPL = NONE +SPI_FLASH_FILESYSTEM = 1 +LONGINT_IMPL = MPZ -CHIP_VARIANT = SAMD21E18A +CHIP_VARIANT = SAMD21G18A CHIP_FAMILY = samd21 - -# Include these Python libraries in firmware. -FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel diff --git a/ports/atmel-samd/boards/mini_sam_m0/pins.c b/ports/atmel-samd/boards/mini_sam_m0/pins.c index 3af6de801..3c7420a81 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/pins.c +++ b/ports/atmel-samd/boards/mini_sam_m0/pins.c @@ -4,30 +4,41 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, - { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) }, - { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, + { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) }, { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, - { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA08) }, - { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA09) }, - { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) }, - { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) }, - { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) }, - { MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PA18) }, - { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) }, - { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) }, - { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) }, - { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) }, - { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) }, - { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) }, - { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA14) }, - { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA15) }, - { MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, - { MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_PA18) }, - { MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_PA27) }, - { MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA27) }, - { MP_ROM_QSTR(MP_QSTR_D28), MP_ROM_PTR(&pin_PA28) }, - { MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA28) }, + { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, + + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB03) }, + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB22) }, + { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) }, + + { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, + { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA17) }, + { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) }, + + { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, + { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA07) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA20) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, + + // Built-in User Button + { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA01) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA01) }, + + // Built-in Red LED + { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_PA15) }, + + { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PA00) }, + { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PB02) }, { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, -- cgit v1.2.3 From cd0b2e31aa61512647cde3d05df5172a6074de21 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 26 Oct 2018 12:20:15 -0500 Subject: Update mpconfigboard.h --- ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h index cec74844a..fcbbf40de 100644 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h @@ -28,7 +28,7 @@ // <0x2=>PAD[3,1]_DO_SCK // <0x3=>PAD[0,3]_DO_SCK #define SPI_FLASH_DOPO 1 -#define SPI_FLASH_DIPO 1 // same as MISO pad +#define SPI_FLASH_DIPO 0 // same as MISO pad // These are pins not to reset. #define MICROPY_PORT_A (PORT_PA00 | PORT_PA08 | PORT_PA09 | PORT_PA10 |PORT_PA11 | PORT_PA24 | PORT_PA25) -- cgit v1.2.3 From acb9bd7618ee9c052fec6b1157491529139a6d95 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Fri, 16 Nov 2018 09:46:08 -0600 Subject: Cleanup for Mini SAM M4 Only Remvoed older files and cleaned up repository to reflect changes for Mini SAM M4. --- ports/atmel-samd/boards/mini_sam_m0/board.c | 37 ------------- .../atmel-samd/boards/mini_sam_m0/mpconfigboard.h | 63 ---------------------- .../atmel-samd/boards/mini_sam_m0/mpconfigboard.mk | 11 ---- ports/atmel-samd/boards/mini_sam_m0/pins.c | 46 ---------------- ports/atmel-samd/boards/mini_sam_m4/pins.c | 3 +- ports/atmel-samd/boards/mini_sam_m4_g18/board.c | 39 -------------- .../boards/mini_sam_m4_g18/mpconfigboard.h | 47 ---------------- .../boards/mini_sam_m4_g18/mpconfigboard.mk | 11 ---- ports/atmel-samd/boards/mini_sam_m4_g18/pins.c | 43 --------------- 9 files changed, 2 insertions(+), 298 deletions(-) delete mode 100644 ports/atmel-samd/boards/mini_sam_m0/board.c delete mode 100644 ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h delete mode 100644 ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk delete mode 100644 ports/atmel-samd/boards/mini_sam_m0/pins.c delete mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/board.c delete mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h delete mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk delete mode 100644 ports/atmel-samd/boards/mini_sam_m4_g18/pins.c diff --git a/ports/atmel-samd/boards/mini_sam_m0/board.c b/ports/atmel-samd/boards/mini_sam_m0/board.c deleted file mode 100644 index d7e856d61..000000000 --- a/ports/atmel-samd/boards/mini_sam_m0/board.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of the MicroPython project, http://micropython.org/ - * - * The MIT License (MIT) - * - * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include "boards/board.h" - -void board_init(void) { -} - -bool board_requests_safe_mode(void) { - return false; -} - -void reset_board(void) { -} diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h deleted file mode 100644 index cec74844a..000000000 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.h +++ /dev/null @@ -1,63 +0,0 @@ -// Board Name / MCU Type -#define MICROPY_HW_BOARD_NAME "Mini Sam M0" -#define MICROPY_HW_MCU_NAME "samd21g18" - -// RGB LED Definition -#define CIRCUITPY_BITBANG_APA102 -#define MICROPY_HW_APA102_MOSI (&pin_PA00) -#define MICROPY_HW_APA102_SCK (&pin_PB02) - -// Set at 8Mhz -#define SPI_FLASH_BAUDRATE (8000000) - -#define SPI_FLASH_MOSI_PIN PIN_PA10 -#define SPI_FLASH_MISO_PIN PIN_PA08 -#define SPI_FLASH_SCK_PIN PIN_PA11 -#define SPI_FLASH_CS_PIN PIN_PA09 -#define SPI_FLASH_MOSI_PIN_FUNCTION PINMUX_PA10D_SERCOM0_PAD2 -#define SPI_FLASH_MISO_PIN_FUNCTION PINMUX_PA08D_SERCOM0_PAD0 -#define SPI_FLASH_SCK_PIN_FUNCTION PINMUX_PA11D_SERCOM0_PAD3 -#define SPI_FLASH_SERCOM SERCOM0 -#define SPI_FLASH_SERCOM_INDEX 0 -#define SPI_FLASH_MOSI_PAD 2 -#define SPI_FLASH_MISO_PAD 0 -#define SPI_FLASH_SCK_PAD 3 -// Transmit Data Pinout -// <0x0=>PAD[0,1]_DO_SCK -// <0x1=>PAD[2,3]_DO_SCK -// <0x2=>PAD[3,1]_DO_SCK -// <0x3=>PAD[0,3]_DO_SCK -#define SPI_FLASH_DOPO 1 -#define SPI_FLASH_DIPO 1 // same as MISO pad - -// These are pins not to reset. -#define MICROPY_PORT_A (PORT_PA00 | PORT_PA08 | PORT_PA09 | PORT_PA10 |PORT_PA11 | PORT_PA24 | PORT_PA25) -#define MICROPY_PORT_B (PORT_PB02) -#define MICROPY_PORT_C (0) - -// If you change this, then make sure to update the linker scripts as well to -// make sure you don't overwrite code. -#define CIRCUITPY_INTERNAL_NVM_SIZE 256 - -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE) - -#include "external_flash/devices.h" - -#define EXTERNAL_FLASH_DEVICE_COUNT 1 -#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM - -#include "external_flash/external_flash.h" - -#define DEFAULT_I2C_BUS_SCL (&pin_PA13) -#define DEFAULT_I2C_BUS_SDA (&pin_PA12) - -#define DEFAULT_SPI_BUS_SCK (&pin_PB03) -#define DEFAULT_SPI_BUS_MOSI (&pin_PB22) -#define DEFAULT_SPI_BUS_MISO (&pin_PA23) - -#define DEFAULT_UART_BUS_RX (&pin_PA16) -#define DEFAULT_UART_BUS_TX (&pin_PA17) - -// USB is always used internally so skip the pin objects for it. -#define IGNORE_PIN_PA24 1 -#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk deleted file mode 100644 index 78e245d2f..000000000 --- a/ports/atmel-samd/boards/mini_sam_m0/mpconfigboard.mk +++ /dev/null @@ -1,11 +0,0 @@ -LD_FILE = boards/samd21x18-bootloader-external-flash-crystalless.ld -USB_VID = 0x1209 -USB_PID = 0x2017 -USB_PRODUCT = "Mini SAM M0" -USB_MANUFACTURER = "Benjamin Shockley" - -SPI_FLASH_FILESYSTEM = 1 -LONGINT_IMPL = MPZ - -CHIP_VARIANT = SAMD21G18A -CHIP_FAMILY = samd21 diff --git a/ports/atmel-samd/boards/mini_sam_m0/pins.c b/ports/atmel-samd/boards/mini_sam_m0/pins.c deleted file mode 100644 index 3c7420a81..000000000 --- a/ports/atmel-samd/boards/mini_sam_m0/pins.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "shared-bindings/board/__init__.h" - -#include "board_busses.h" - -STATIC const mp_rom_map_elem_t board_global_dict_table[] = { - { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, - { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, - { MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) }, - { MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, - { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, - { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, - { MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, - - { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB03) }, - { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB22) }, - { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) }, - - { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, - { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, - { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA17) }, - { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) }, - - { MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, - { MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, - - { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA07) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA20) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, - - // Built-in User Button - { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA01) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA01) }, - - // Built-in Red LED - { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_PA15) }, - - { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PA00) }, - { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PB02) }, - { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, - { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, - { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, -}; -MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/boards/mini_sam_m4/pins.c b/ports/atmel-samd/boards/mini_sam_m4/pins.c index 8498f34d9..87e210381 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/pins.c +++ b/ports/atmel-samd/boards/mini_sam_m4/pins.c @@ -13,6 +13,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, { MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_AREF), MP_ROM_PTR(&pin_PA03) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, @@ -24,7 +25,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA00) }, { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA00) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA15) }, { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/board.c b/ports/atmel-samd/boards/mini_sam_m4_g18/board.c deleted file mode 100644 index 0f60736a2..000000000 --- a/ports/atmel-samd/boards/mini_sam_m4_g18/board.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is part of the MicroPython project, http://micropython.org/ - * - * The MIT License (MIT) - * - * Copyright (c) 2017 Scott Shawcroft for Adafruit Industries - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#include "boards/board.h" -#include "mpconfigboard.h" -#include "hal/include/hal_gpio.h" - -void board_init(void) { -} - -bool board_requests_safe_mode(void) { - return false; -} - -void reset_board(void) { -} diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h deleted file mode 100644 index 3c4b21ddd..000000000 --- a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.h +++ /dev/null @@ -1,47 +0,0 @@ -#define MICROPY_HW_BOARD_NAME "Mini SAM M4" -#define MICROPY_HW_MCU_NAME "samd51g18" - -#define CIRCUITPY_MCU_FAMILY samd51 - -// RGB Status LED Pins -#define MICROPY_HW_APA102_MOSI (&pin_PB03) -#define MICROPY_HW_APA102_SCK (&pin_PB02) - -#define CIRCUITPY_BITBANG_APA102 - -// These are pins not to reset. -// QSPI Data pins -#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11) -// RGB Status LED pins, QSPI CS, and QSPI SCK -#define MICROPY_PORT_B (PORT_PB02 | PORT_PB03 | PORT_PB10 | PORT_PB11) -#define MICROPY_PORT_C (0) -#define MICROPY_PORT_D (0) - -#define AUTORESET_DELAY_MS 500 - -// If you change this, then make sure to update the linker scripts as well to -// make sure you don't overwrite code -#define CIRCUITPY_INTERNAL_NVM_SIZE 8192 - -#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) - -#include "external_flash/devices.h" - -#define EXTERNAL_FLASH_DEVICE_COUNT 1 -#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM - -#include "external_flash/external_flash.h" - -#define DEFAULT_I2C_BUS_SCL (&pin_PA13) -#define DEFAULT_I2C_BUS_SDA (&pin_PA12) - -#define DEFAULT_SPI_BUS_SCK (&pin_PA01) -#define DEFAULT_SPI_BUS_MOSI (&pin_PB22) -#define DEFAULT_SPI_BUS_MISO (&pin_PB23) - -#define DEFAULT_UART_BUS_RX (&pin_PA16) -#define DEFAULT_UART_BUS_TX (&pin_PA17) - -// USB is always used internally so skip the pin objects for it. -#define IGNORE_PIN_PA24 1 -#define IGNORE_PIN_PA25 1 diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk deleted file mode 100644 index eeba0c805..000000000 --- a/ports/atmel-samd/boards/mini_sam_m4_g18/mpconfigboard.mk +++ /dev/null @@ -1,11 +0,0 @@ -LD_FILE = boards/samd51x18-bootloader-external-flash.ld -USB_VID = 0x1209 -USB_PID = 0x2017 -USB_PRODUCT = "Mini SAM M4" -USB_MANUFACTURER = "Benjamin Shockley" - -QSPI_FLASH_FILESYSTEM = 1 -LONGINT_IMPL = MPZ - -CHIP_VARIANT = SAMD51G18A -CHIP_FAMILY = samd51 diff --git a/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c b/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c deleted file mode 100644 index 8498f34d9..000000000 --- a/ports/atmel-samd/boards/mini_sam_m4_g18/pins.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "shared-bindings/board/__init__.h" - -#include "board_busses.h" - -// This mapping only includes functional names because pins broken -// out on connectors are labeled with their MCU name available from -// microcontroller.pin. -STATIC const mp_rom_map_elem_t board_global_dict_table[] = { - { MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA05) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA07) }, - - { MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA16) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA16) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA17) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA17) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA07) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA20) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA21) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA00) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA00) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA15) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA15) }, - - { MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) }, - - { MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA01) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB22) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) }, - - { MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PB03) }, - { MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PB02) }, - { MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) }, - { MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) }, - { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }, -}; -MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); -- cgit v1.2.3 From c344d488405ec7b86446c94cb053b7c55f04724d Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Tue, 20 Nov 2018 12:44:12 -0600 Subject: Update devices.h --- ports/atmel-samd/external_flash/devices.h | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index 098166a5e..e5c29d469 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -180,30 +180,13 @@ typedef struct { .write_status_register_split = false, \ } -// Settings for the Winbond W25Q16JV 2MiB SPI flash. Note that JV-IQ has a different .memory_type (0x40) -// Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf -#define W25Q16JV_IQ {\ - .total_size = (1 << 21), /* 2 MiB */ \ - .start_up_time_us = 5000, \ - .manufacturer_id = 0xef, \ - .memory_type = 0x40, \ - .capacity = 0x15, \ - .max_clock_speed_mhz = 133, \ - .has_sector_protection = false, \ - .supports_fast_read = true, \ - .supports_qspi = true, \ - .has_quad_enable = true, \ - .supports_qspi_writes = true, \ - .write_status_register_split = false, \ -} +// Settings for the Winbond W25Q16JV 2MiB SPI flash. -// Settings for the Winbond W25Q16JV_IM 2MiB SPI flash. Note that JV-IM has a different .memory_type (0x70) -// Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf -#define W25Q16JV_IM {\ +#define W25Q16JV {\ .total_size = (1 << 21), /* 2 MiB */ \ .start_up_time_us = 5000, \ .manufacturer_id = 0xef, \ - .memory_type = 0x70, \ + .memory_type = 0x40, \ .capacity = 0x15, \ .max_clock_speed_mhz = 133, \ .has_sector_protection = false, \ @@ -282,4 +265,6 @@ typedef struct { .write_status_register_split = false, \ } + + #endif // MICROPY_INCLUDED_ATMEL_SAMD_EXTERNAL_FLASH_DEVICES_H -- cgit v1.2.3 From 69eb2efcedd3569aca1a8ebd6404c73287bd11a7 Mon Sep 17 00:00:00 2001 From: Benjamin Shockley Date: Tue, 20 Nov 2018 13:21:43 -0600 Subject: Update devices.h --- ports/atmel-samd/external_flash/devices.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/atmel-samd/external_flash/devices.h b/ports/atmel-samd/external_flash/devices.h index e5c29d469..ea1b24a32 100644 --- a/ports/atmel-samd/external_flash/devices.h +++ b/ports/atmel-samd/external_flash/devices.h @@ -181,7 +181,7 @@ typedef struct { } // Settings for the Winbond W25Q16JV 2MiB SPI flash. - +// Datasheet: https://www.winbond.com/resource-files/w25q16jv%20spi%20revf%2005092017.pdf #define W25Q16JV {\ .total_size = (1 << 21), /* 2 MiB */ \ .start_up_time_us = 5000, \ -- cgit v1.2.3 From 754d6afd163ae5f295444166863b5d11afd1b2e4 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 30 Nov 2018 14:36:46 -0800 Subject: Undo uzlib change --- lib/uzlib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/uzlib b/lib/uzlib index 27176508e..f966da0fa 160000 --- a/lib/uzlib +++ b/lib/uzlib @@ -1 +1 @@ -Subproject commit 27176508e188c0900877e810be34198cd88dcb63 +Subproject commit f966da0fab121e910ea74f037f074538a2e6dbbb -- cgit v1.2.3 From 77760090e26d1493f0c55effe7d228da8a4ac6a6 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 30 Nov 2018 14:55:06 -0800 Subject: Fix up spi flash define --- ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h | 7 ------- ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk | 2 ++ supervisor/shared/external_flash/devices.h | 7 +++---- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h index ae849d1e2..338e8b7c9 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.h @@ -25,13 +25,6 @@ #define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE) -#include "external_flash/devices.h" - -#define EXTERNAL_FLASH_DEVICE_COUNT 1 -#define EXTERNAL_FLASH_DEVICES W25Q16JV_IM - -#include "external_flash/external_flash.h" - #define DEFAULT_I2C_BUS_SCL (&pin_PA13) #define DEFAULT_I2C_BUS_SDA (&pin_PA12) diff --git a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk index 4320fd391..a69d2f623 100644 --- a/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk +++ b/ports/atmel-samd/boards/mini_sam_m4/mpconfigboard.mk @@ -5,6 +5,8 @@ USB_PRODUCT = "Mini SAM M4" USB_MANUFACTURER = "Benjamin Shockley" QSPI_FLASH_FILESYSTEM = 1 +EXTERNAL_FLASH_DEVICE_COUNT = 1 +EXTERNAL_FLASH_DEVICES = "W25Q16JV_IM" LONGINT_IMPL = MPZ CHIP_VARIANT = SAMD51G19A diff --git a/supervisor/shared/external_flash/devices.h b/supervisor/shared/external_flash/devices.h index 86e0868d0..8d8574c47 100644 --- a/supervisor/shared/external_flash/devices.h +++ b/supervisor/shared/external_flash/devices.h @@ -220,10 +220,10 @@ typedef struct { .memory_type = 0x70, \ .capacity = 0x15, \ .max_clock_speed_mhz = 133, \ + .quad_enable_bit_mask = 0x02, \ .has_sector_protection = false, \ .supports_fast_read = true, \ .supports_qspi = true, \ - .has_quad_enable = true, \ .supports_qspi_writes = true, \ .write_status_register_split = false, \ } @@ -254,10 +254,10 @@ typedef struct { .memory_type = 0x70, \ .capacity = 0x16, \ .max_clock_speed_mhz = 133, \ + .quad_enable_bit_mask = 0x02, \ .has_sector_protection = false, \ .supports_fast_read = true, \ .supports_qspi = true, \ - .has_quad_enable = true, \ .supports_qspi_writes = true, \ .write_status_register_split = false, \ } @@ -275,7 +275,6 @@ typedef struct { .has_sector_protection = false, \ .supports_fast_read = true, \ .supports_qspi = true, \ - .has_quad_enable = true, \ .supports_qspi_writes = true, \ .write_status_register_split = false, \ .single_status_byte = false, \ @@ -364,10 +363,10 @@ typedef struct { .memory_type = 0x70, \ .capacity = 0x18, \ .max_clock_speed_mhz = 133, \ + .quad_enable_bit_mask = 0x02, \ .has_sector_protection = false, \ .supports_fast_read = true, \ .supports_qspi = true, \ - .has_quad_enable = true, \ .supports_qspi_writes = true, \ .write_status_register_split = false, \ } -- cgit v1.2.3 From dbc7e7c16b6c22b4630511739c7e664658aa71c8 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 30 Nov 2018 14:58:58 -0800 Subject: Auto build mini-sam --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 396e194b7..f562dedca 100755 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ git: # that SDK is shortest and add it there. In the case of major re-organizations, # just try to make the builds "about equal in run time" env: - - TRAVIS_TESTS="unix docs translations" TRAVIS_BOARDS="feather_huzzah circuitplayground_express pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk" TRAVIS_SDK=arm:nrf:esp8266 + - TRAVIS_TESTS="unix docs translations" TRAVIS_BOARDS="feather_huzzah circuitplayground_express mini_sam_m4 pca10056 pca10059 feather_nrf52832 feather_nrf52840_express makerdiary_nrf52840_mdk" TRAVIS_SDK=arm:nrf:esp8266 - TRAVIS_BOARDS="metro_m0_express metro_m4_express pirkey_m0 trellis_m4_express trinket_m0" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow" TRAVIS_SDK=arm - TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300" TRAVIS_SDK=arm -- cgit v1.2.3