forked from micropython/micropython
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #18 from turbinenreiter/master
Add Adalogger board definition in preparation of adding SD card support.
- Loading branch information
Showing
8 changed files
with
492 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
/** | ||
* \file | ||
* | ||
* \brief Memory access control configuration file. | ||
* | ||
* Copyright (c) 2014-2015 Atmel Corporation. All rights reserved. | ||
* | ||
* \asf_license_start | ||
* | ||
* \page License | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright notice, | ||
* this list of conditions and the following disclaimer. | ||
* | ||
* 2. Redistributions in binary form must reproduce the above copyright notice, | ||
* this list of conditions and the following disclaimer in the documentation | ||
* and/or other materials provided with the distribution. | ||
* | ||
* 3. The name of Atmel may not be used to endorse or promote products derived | ||
* from this software without specific prior written permission. | ||
* | ||
* 4. This software may only be redistributed and used in connection with an | ||
* Atmel microcontroller product. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED | ||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE | ||
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR | ||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
* \asf_license_stop | ||
* | ||
*/ | ||
/* | ||
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> | ||
*/ | ||
|
||
#ifndef _CONF_ACCESS_H_ | ||
#define _CONF_ACCESS_H_ | ||
|
||
#include "compiler.h" | ||
#include "board.h" | ||
|
||
|
||
/*! \name Activation of Logical Unit Numbers | ||
*/ | ||
//! @{ | ||
#define LUN_0 ENABLE //!< On-Chip Virtual Memory. | ||
#define LUN_1 DISABLE //!< AT45DBX Data Flash. | ||
#define LUN_2 DISABLE //!< SD/MMC Card over SPI. | ||
#define LUN_3 DISABLE //!< SD/MMC Card over MCI Slot 0. | ||
#define LUN_4 DISABLE | ||
#define LUN_5 DISABLE | ||
#define LUN_6 DISABLE | ||
#define LUN_7 DISABLE | ||
#define LUN_USB DISABLE //!< Host Mass-Storage Memory. | ||
//! @} | ||
|
||
/*! \name LUN 0 Definitions | ||
*/ | ||
//! @{ | ||
#define LUN_0_INCLUDE "rom_fs.h" | ||
#define Lun_0_test_unit_ready rom_fs_test_unit_ready | ||
#define Lun_0_read_capacity rom_fs_read_capacity | ||
#define Lun_0_unload NULL /* Can not be unloaded */ | ||
#define Lun_0_wr_protect rom_fs_wr_protect | ||
#define Lun_0_removal rom_fs_removal | ||
#define Lun_0_usb_read_10 rom_fs_usb_read_10 | ||
#define Lun_0_usb_write_10 rom_fs_usb_write_10 | ||
#define LUN_0_NAME "\"On-Chip ROM\"" | ||
//! @} | ||
|
||
#define MEM_USB LUN_USB | ||
|
||
/*! \name Actions Associated with Memory Accesses | ||
* | ||
* Write here the action to associate with each memory access. | ||
* | ||
* \warning Be careful not to waste time in order not to disturb the functions. | ||
*/ | ||
//! @{ | ||
#define memory_start_read_action(nb_sectors) | ||
#define memory_stop_read_action() | ||
#define memory_start_write_action(nb_sectors) | ||
#define memory_stop_write_action() | ||
//! @} | ||
|
||
/*! \name Activation of Interface Features | ||
*/ | ||
//! @{ | ||
#define ACCESS_USB true //!< MEM <-> USB interface. | ||
#define ACCESS_MEM_TO_RAM false //!< MEM <-> RAM interface. | ||
#define ACCESS_STREAM false //!< Streaming MEM <-> MEM interface. | ||
#define ACCESS_STREAM_RECORD false //!< Streaming MEM <-> MEM interface in record mode. | ||
#define ACCESS_MEM_TO_MEM false //!< MEM <-> MEM interface. | ||
#define ACCESS_CODEC false //!< Codec interface. | ||
//! @} | ||
|
||
/*! \name Specific Options for Access Control | ||
*/ | ||
//! @{ | ||
#define GLOBAL_WR_PROTECT false //!< Management of a global write protection. | ||
//! @} | ||
|
||
|
||
#endif // _CONF_ACCESS_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/** | ||
* \file | ||
* | ||
* \brief User board configuration template | ||
* | ||
*/ | ||
/* | ||
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> | ||
*/ | ||
|
||
#ifndef CONF_BOARD_H | ||
#define CONF_BOARD_H | ||
|
||
#endif // CONF_BOARD_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
|
||
#include <stdbool.h> | ||
#include <stdint.h> | ||
|
||
#ifndef CONF_USB_H_INCLUDED | ||
#define CONF_USB_H_INCLUDED | ||
|
||
#define USB_DEVICE_MAJOR_VERSION 1 | ||
#define USB_DEVICE_MINOR_VERSION 0 | ||
#define USB_DEVICE_POWER 100 // Consumption on Vbus line (mA) | ||
#define USB_DEVICE_ATTR \ | ||
(USB_CONFIG_ATTR_BUS_POWERED) | ||
// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_SELF_POWERED) | ||
// (USB_CONFIG_ATTR_REMOTE_WAKEUP|USB_CONFIG_ATTR_BUS_POWERED) | ||
|
||
//! USB Device string definitions (Optional) | ||
#ifndef USB_DEVICE_MANUFACTURE_NAME | ||
# define USB_DEVICE_MANUFACTURE_NAME "Adafruit Industries" | ||
#endif | ||
|
||
#ifndef USB_DEVICE_PRODUCT_NAME | ||
# define USB_DEVICE_PRODUCT_NAME "Feather M0 Adalogger" | ||
#endif | ||
|
||
#define USB_DEVICE_GET_SERIAL_NAME_POINTER serial_number | ||
#define USB_DEVICE_GET_SERIAL_NAME_LENGTH 32 | ||
extern char serial_number[USB_DEVICE_GET_SERIAL_NAME_LENGTH]; | ||
|
||
//! Control endpoint size | ||
#define USB_DEVICE_EP_CTRL_SIZE 64 | ||
|
||
//! Two interfaces for this device (CDC COM + CDC DATA + MSC) | ||
#define USB_DEVICE_NB_INTERFACE 3 | ||
|
||
// (3 | USB_EP_DIR_IN) // CDC Notify endpoint | ||
// (4 | USB_EP_DIR_IN) // CDC TX | ||
// (5 | USB_EP_DIR_OUT) // CDC RX | ||
// (1 | USB_EP_DIR_IN) // MSC IN | ||
// (2 | USB_EP_DIR_OUT) // MSC OUT | ||
#define USB_DEVICE_MAX_EP 5 | ||
|
||
#define UDI_CDC_PORT_NB 1 | ||
#define UDI_CDC_ENABLE_EXT(port) mp_cdc_enable(port) | ||
extern bool mp_cdc_enable(uint8_t port); | ||
#define UDI_CDC_DISABLE_EXT(port) mp_cdc_disable(port) | ||
extern void mp_cdc_disable(uint8_t port); | ||
#define UDI_CDC_LOW_RATE | ||
|
||
#define UDI_CDC_DEFAULT_RATE 115200 | ||
#define UDI_CDC_DEFAULT_STOPBITS CDC_STOP_BITS_1 | ||
#define UDI_CDC_DEFAULT_PARITY CDC_PAR_NONE | ||
#define UDI_CDC_DEFAULT_DATABITS 8 | ||
|
||
#define UDI_CDC_RX_NOTIFY(port) usb_rx_notify() | ||
void usb_rx_notify(void); | ||
#define UDI_CDC_SET_CODING_EXT(port,cfg) | ||
#define UDI_CDC_SET_DTR_EXT(port,set) | ||
#define UDI_CDC_SET_RTS_EXT(port,set) | ||
|
||
/** | ||
* USB CDC low level configuration | ||
* In standalone these configurations are defined by the CDC module. | ||
* For composite device, these configuration must be defined here | ||
* @{ | ||
*/ | ||
//! Endpoint numbers definition | ||
|
||
#define UDI_CDC_COMM_EP_0 (3 | USB_EP_DIR_IN) // Notify endpoint | ||
#define UDI_CDC_DATA_EP_IN_0 (4 | USB_EP_DIR_IN) // TX | ||
#define UDI_CDC_DATA_EP_OUT_0 (5 | USB_EP_DIR_OUT) // RX | ||
|
||
//! Interface numbers | ||
#define UDI_CDC_COMM_IFACE_NUMBER_0 0 | ||
#define UDI_CDC_DATA_IFACE_NUMBER_0 1 | ||
|
||
/** | ||
* Configuration of MSC interface | ||
* @{ | ||
*/ | ||
//! Vendor name and Product version of MSC interface | ||
#define UDI_MSC_GLOBAL_VENDOR_ID \ | ||
'A', 'T', 'M', 'E', 'L', ' ', ' ', ' ' | ||
#define UDI_MSC_GLOBAL_PRODUCT_VERSION \ | ||
'1', '.', '0', '0' | ||
|
||
//! Interface callback definition | ||
#define UDI_MSC_ENABLE_EXT() mp_msc_enable() | ||
extern bool mp_msc_enable(); | ||
#define UDI_MSC_DISABLE_EXT() mp_msc_disable() | ||
extern void mp_msc_disable(); | ||
|
||
//! Enable id string of interface to add an extra USB string | ||
#define UDI_MSC_STRING_ID 5 | ||
|
||
/** | ||
* USB MSC low level configuration | ||
* In standalone these configurations are defined by the MSC module. | ||
* For composite device, these configuration must be defined here | ||
* @{ | ||
*/ | ||
//! Endpoint numbers definition | ||
#define UDI_MSC_EP_IN (1 | USB_EP_DIR_IN) | ||
#define UDI_MSC_EP_OUT (2 | USB_EP_DIR_OUT) | ||
|
||
//! Interface number | ||
#define UDI_MSC_IFACE_NUMBER 2 | ||
|
||
/** | ||
* Description of Composite Device | ||
* @{ | ||
*/ | ||
//! USB Interfaces descriptor structure | ||
#define UDI_COMPOSITE_DESC_T \ | ||
usb_iad_desc_t udi_cdc_iad; \ | ||
udi_cdc_comm_desc_t udi_cdc_comm; \ | ||
udi_cdc_data_desc_t udi_cdc_data; \ | ||
udi_msc_desc_t udi_msc | ||
|
||
//! USB Interfaces descriptor value for Full Speed | ||
#define UDI_COMPOSITE_DESC_FS \ | ||
.udi_cdc_iad = UDI_CDC_IAD_DESC_0, \ | ||
.udi_cdc_comm = UDI_CDC_COMM_DESC_0, \ | ||
.udi_cdc_data = UDI_CDC_DATA_DESC_0_FS, \ | ||
.udi_msc = UDI_MSC_DESC_FS | ||
|
||
//! USB Interfaces descriptor value for High Speed | ||
#define UDI_COMPOSITE_DESC_HS \ | ||
.udi_cdc_iad = UDI_CDC_IAD_DESC_0, \ | ||
.udi_cdc_comm = UDI_CDC_COMM_DESC_0, \ | ||
.udi_cdc_data = UDI_CDC_DATA_DESC_0_HS, \ | ||
.udi_msc = UDI_MSC_DESC_HS | ||
|
||
//! USB Interface APIs | ||
#define UDI_COMPOSITE_API \ | ||
&udi_api_cdc_comm, \ | ||
&udi_api_cdc_data, \ | ||
&udi_api_msc | ||
//@} | ||
|
||
/** | ||
* USB Device Driver Configuration | ||
* @{ | ||
*/ | ||
//@} | ||
|
||
//! The includes of classes and other headers must be done at the end of this file to avoid compile error | ||
#include "udi_cdc.h" | ||
#include "udi_msc.h" | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/** | ||
* \file | ||
* | ||
* \brief User board initialization template | ||
* | ||
*/ | ||
/* | ||
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> | ||
*/ | ||
|
||
#include "board.h" | ||
#include "conf_board.h" | ||
|
||
void board_init(void) | ||
{ | ||
/* This function is meant to contain board-specific initialization code | ||
* for, e.g., the I/O pins. The initialization can rely on application- | ||
* specific board configuration, found in conf_board.h. | ||
*/ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// LEDs | ||
#define MICROPY_HW_LED1 PIN_PA17 // red | ||
// #define UART_REPL | ||
#define USB_REPL | ||
|
||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather M0 Adalogger" | ||
#define MICROPY_HW_MCU_NAME "samd21g18" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
LD_FILE = boards/samd21x18-bootloader.ld | ||
USB_VID = 0x239A | ||
USB_PID = 0x8015 |
Oops, something went wrong.