From d595a03bbd03b0a026962a9a2453ddc268fd0d03 Mon Sep 17 00:00:00 2001 From: Radomir Dopieralski Date: Mon, 29 Jan 2018 19:08:26 +0100 Subject: Update ugame port for the final ugame10 version There have been multiple uGame prototypes with differences in the pins and other details. This updates the board definition to fit the final uGame 10 design. --- ports/atmel-samd/boards/ugame/board.c | 37 ------------------- ports/atmel-samd/boards/ugame/mpconfigboard.h | 46 ------------------------ ports/atmel-samd/boards/ugame/mpconfigboard.mk | 11 ------ ports/atmel-samd/boards/ugame/pins.c | 18 ---------- ports/atmel-samd/boards/ugame10/board.c | 37 +++++++++++++++++++ ports/atmel-samd/boards/ugame10/mpconfigboard.h | 45 +++++++++++++++++++++++ ports/atmel-samd/boards/ugame10/mpconfigboard.mk | 11 ++++++ ports/atmel-samd/boards/ugame10/pins.c | 27 ++++++++++++++ 8 files changed, 120 insertions(+), 112 deletions(-) delete mode 100644 ports/atmel-samd/boards/ugame/board.c delete mode 100644 ports/atmel-samd/boards/ugame/mpconfigboard.h delete mode 100644 ports/atmel-samd/boards/ugame/mpconfigboard.mk delete mode 100644 ports/atmel-samd/boards/ugame/pins.c create mode 100644 ports/atmel-samd/boards/ugame10/board.c create mode 100644 ports/atmel-samd/boards/ugame10/mpconfigboard.h create mode 100644 ports/atmel-samd/boards/ugame10/mpconfigboard.mk create mode 100644 ports/atmel-samd/boards/ugame10/pins.c diff --git a/ports/atmel-samd/boards/ugame/board.c b/ports/atmel-samd/boards/ugame/board.c deleted file mode 100644 index d7e856d61..000000000 --- a/ports/atmel-samd/boards/ugame/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/ugame/mpconfigboard.h b/ports/atmel-samd/boards/ugame/mpconfigboard.h deleted file mode 100644 index 8a68b39cb..000000000 --- a/ports/atmel-samd/boards/ugame/mpconfigboard.h +++ /dev/null @@ -1,46 +0,0 @@ -#define MICROPY_HW_BOARD_NAME "uGame" -#define MICROPY_HW_MCU_NAME "samd21e18" - -// Salae reads 12mhz which is the limit even though we set it to the -// safer 8mhz. -#define SPI_FLASH_BAUDRATE (8000000) - -#define SPI_FLASH_MOSI_PIN PIN_PA16 -#define SPI_FLASH_MISO_PIN PIN_PA19 -#define SPI_FLASH_SCK_PIN PIN_PA17 -#define SPI_FLASH_CS_PIN PIN_PA11 -#define SPI_FLASH_MOSI_PIN_FUNCTION PINMUX_PA16D_SERCOM3_PAD0 -#define SPI_FLASH_MISO_PIN_FUNCTION PINMUX_PA19D_SERCOM3_PAD3 -#define SPI_FLASH_SCK_PIN_FUNCTION PINMUX_PA17D_SERCOM3_PAD1 -#define SPI_FLASH_SERCOM SERCOM3 -#define SPI_FLASH_SERCOM_INDEX 3 -#define SPI_FLASH_MOSI_PAD 0 -#define SPI_FLASH_MISO_PAD 3 -#define SPI_FLASH_SCK_PAD 1 -// 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 0 -#define SPI_FLASH_DIPO 3 // same as MISO pad - -// These are pins not to reset. -#define MICROPY_PORT_A (PORT_PA11 | PORT_PA16 |\ - PORT_PA17 | PORT_PA18 | PORT_PA19 | PORT_PA24 |\ - PORT_PA25) -#define MICROPY_PORT_B (0) -#define MICROPY_PORT_C (0) - -#define CALIBRATE_CRYSTALLESS 1 - -#include "spi_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 CIRCUITPY_INTERNAL_NVM_SIZE 0 -#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE) - -//#include "flash_W25Q32BV.h" -#include "flash_S25FL216K.h" diff --git a/ports/atmel-samd/boards/ugame/mpconfigboard.mk b/ports/atmel-samd/boards/ugame/mpconfigboard.mk deleted file mode 100644 index 4c7f22369..000000000 --- a/ports/atmel-samd/boards/ugame/mpconfigboard.mk +++ /dev/null @@ -1,11 +0,0 @@ -LD_FILE = boards/samd21x18-bootloader-external-flash-crystalless.ld -#LD_FILE = boards/samd21x18-bootloader.ld -USB_VID = 0x239A -USB_PID = 0x801F -USB_PRODUCT = "uGame" -USB_MANUFACTURER = "Radomir Dopieralski" - -SPI_FLASH_FILESYSTEM = 1 - -CHIP_VARIANT = SAMD21E18A -CHIP_FAMILY = samd21 diff --git a/ports/atmel-samd/boards/ugame/pins.c b/ports/atmel-samd/boards/ugame/pins.c deleted file mode 100644 index b9c8f2386..000000000 --- a/ports/atmel-samd/boards/ugame/pins.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "samd21_pins.h" - -STATIC const mp_rom_map_elem_t board_global_dict_table[] = { - { MP_ROM_QSTR(MP_QSTR_X), MP_ROM_PTR(&pin_PA00) }, - { MP_ROM_QSTR(MP_QSTR_O), MP_ROM_PTR(&pin_PA01) }, - - { MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02) }, - - { MP_ROM_QSTR(MP_QSTR_UP), MP_ROM_PTR(&pin_PA03) }, - { MP_ROM_QSTR(MP_QSTR_LEFT), MP_ROM_PTR(&pin_PA04) }, - { MP_ROM_QSTR(MP_QSTR_DOWN), MP_ROM_PTR(&pin_PA23) }, - { MP_ROM_QSTR(MP_QSTR_RIGHT), MP_ROM_PTR(&pin_PA05) }, - - { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA06) }, - { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA07) }, - { MP_ROM_QSTR(MP_QSTR_DC), MP_ROM_PTR(&pin_PA08) }, -}; -MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); diff --git a/ports/atmel-samd/boards/ugame10/board.c b/ports/atmel-samd/boards/ugame10/board.c new file mode 100644 index 000000000..d7e856d61 --- /dev/null +++ b/ports/atmel-samd/boards/ugame10/board.c @@ -0,0 +1,37 @@ +/* + * 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/ugame10/mpconfigboard.h b/ports/atmel-samd/boards/ugame10/mpconfigboard.h new file mode 100644 index 000000000..16a792f42 --- /dev/null +++ b/ports/atmel-samd/boards/ugame10/mpconfigboard.h @@ -0,0 +1,45 @@ +#define MICROPY_HW_BOARD_NAME "uGame10" +#define MICROPY_HW_MCU_NAME "samd21e18" + +// Salae reads 12mhz which is the limit even though we set it to the +// safer 8mhz. +#define SPI_FLASH_BAUDRATE (8000000) + +#define SPI_FLASH_MOSI_PIN PIN_PA16 +#define SPI_FLASH_MISO_PIN PIN_PA19 +#define SPI_FLASH_SCK_PIN PIN_PA17 +#define SPI_FLASH_CS_PIN PIN_PA18 +#define SPI_FLASH_MOSI_PIN_FUNCTION PINMUX_PA16D_SERCOM3_PAD0 +#define SPI_FLASH_MISO_PIN_FUNCTION PINMUX_PA19D_SERCOM3_PAD3 +#define SPI_FLASH_SCK_PIN_FUNCTION PINMUX_PA17D_SERCOM3_PAD1 +#define SPI_FLASH_SERCOM SERCOM3 +#define SPI_FLASH_SERCOM_INDEX 3 +#define SPI_FLASH_MOSI_PAD 0 +#define SPI_FLASH_MISO_PAD 3 +#define SPI_FLASH_SCK_PAD 1 +// 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 0 +#define SPI_FLASH_DIPO 3 // same as MISO pad + +// These are pins not to reset. +#define MICROPY_PORT_A (PORT_PA16 | PORT_PA17 | PORT_PA18 | PORT_PA19 |\ + PORT_PA24 | PORT_PA25) +#define MICROPY_PORT_B (0) +#define MICROPY_PORT_C (0) + +#define CALIBRATE_CRYSTALLESS 1 + +#include "spi_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 CIRCUITPY_INTERNAL_NVM_SIZE 0 +#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE) + +//#include "flash_W25Q32BV.h" +#include "flash_S25FL216K.h" diff --git a/ports/atmel-samd/boards/ugame10/mpconfigboard.mk b/ports/atmel-samd/boards/ugame10/mpconfigboard.mk new file mode 100644 index 000000000..343115fbb --- /dev/null +++ b/ports/atmel-samd/boards/ugame10/mpconfigboard.mk @@ -0,0 +1,11 @@ +LD_FILE = boards/samd21x18-bootloader-external-flash-crystalless.ld +#LD_FILE = boards/samd21x18-bootloader.ld +USB_VID = 0x239A +USB_PID = 0x801F +USB_PRODUCT = "uGame10" +USB_MANUFACTURER = "Radomir Dopieralski" + +SPI_FLASH_FILESYSTEM = 1 + +CHIP_VARIANT = SAMD21E18A +CHIP_FAMILY = samd21 diff --git a/ports/atmel-samd/boards/ugame10/pins.c b/ports/atmel-samd/boards/ugame10/pins.c new file mode 100644 index 000000000..af516a401 --- /dev/null +++ b/ports/atmel-samd/boards/ugame10/pins.c @@ -0,0 +1,27 @@ +#include "samd21_pins.h" + +STATIC const mp_rom_map_elem_t board_global_dict_table[] = { + { MP_ROM_QSTR(MP_QSTR_X), MP_ROM_PTR(&pin_PA00) }, + { MP_ROM_QSTR(MP_QSTR_O), MP_ROM_PTR(&pin_PA01) }, + + { MP_ROM_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02) }, + { MP_ROM_QSTR(MP_QSTR_MUTE), MP_ROM_PTR(&pin_PA23) }, + + { MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA10) }, + + { MP_ROM_QSTR(MP_QSTR_UP), MP_ROM_PTR(&pin_PA03) }, + { MP_ROM_QSTR(MP_QSTR_LEFT), MP_ROM_PTR(&pin_PA04) }, + { MP_ROM_QSTR(MP_QSTR_DOWN), MP_ROM_PTR(&pin_PA22) }, + { MP_ROM_QSTR(MP_QSTR_RIGHT), MP_ROM_PTR(&pin_PA05) }, + + { MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA06) }, + { MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA07) }, + { MP_ROM_QSTR(MP_QSTR_DC), MP_ROM_PTR(&pin_PA09) }, + { MP_ROM_QSTR(MP_QSTR_CS), MP_ROM_PTR(&pin_PA08) }, + + { MP_ROM_QSTR(MP_QSTR_A), MP_ROM_PTR(&pin_PA11) }, + { MP_ROM_QSTR(MP_QSTR_B), MP_ROM_PTR(&pin_PA14) }, + { MP_ROM_QSTR(MP_QSTR_C), MP_ROM_PTR(&pin_PA15) }, + { MP_ROM_QSTR(MP_QSTR_D), MP_ROM_PTR(&pin_PA28) }, +}; +MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table); -- cgit v1.2.3