/** | |
* \file | |
* | |
* \brief SAM4L-EK Board header file. | |
* | |
* This file contains definitions and services related to the features of the | |
* SAM4L-EK Board. | |
* | |
* To use this board define BOARD=SAM4L_EK. | |
* | |
* Copyright (c) 2012 - 2013 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 | |
* | |
*/ | |
#ifndef SAM4L_EK_INCLUDED | |
#define SAM4L_EK_INCLUDED | |
#include "compiler.h" | |
/** Name of the board */ | |
#define BOARD_NAME "SAM4L-EK" | |
/** | |
* \defgroup sam4l_ek_group SAM4L-EK Board | |
* @{ | |
*/ | |
/** | |
* \defgroup sam4l_ek_feature_group Feature definitions | |
* @{ | |
*/ | |
//! \name Miscellaneous data | |
//@{ | |
//@} | |
//! Osc frequency (Hz.) and startup time (RCOsc periods). | |
#define FOSC0 (12000000) | |
//! Osc32 frequency (Hz.) and startup time (RCOsc periods). | |
#define FOSC32 (32768) | |
/** | |
* \name Board oscillator configuration | |
* | |
*/ | |
//@{ | |
#define BOARD_OSC32_IS_XTAL true | |
#define BOARD_OSC32_HZ FOSC32 | |
#define BOARD_OSC32_STARTUP_US (1100000) | |
#define BOARD_OSC32_SELCURR BSCIF_OSCCTRL32_SELCURR(10) | |
#define BOARD_OSC0_IS_XTAL true | |
#define BOARD_OSC0_HZ FOSC0 | |
#define BOARD_OSC0_STARTUP_US (1100) | |
//@} | |
/*! \name Number of LEDs. | |
*/ | |
//! @{ | |
#define LED_COUNT 1 | |
//! @} | |
/** | |
* \name LEDs | |
* | |
* LED0 is a single yellow LED that is active low. | |
*/ | |
//@{ | |
#define LED0 PC10 | |
#define LED0_GPIO PIN_PC10 | |
#define LED0_GPIO_MASK GPIO_PC10 | |
#if defined(SAM4L_EK_REV1) | |
# define LED0_ACTIVE_LEVEL IOPORT_PIN_LEVEL_LOW | |
# define LED0_INACTIVE_LEVEL IOPORT_PIN_LEVEL_HIGH | |
#else | |
# define LED0_ACTIVE_LEVEL IOPORT_PIN_LEVEL_HIGH | |
# define LED0_INACTIVE_LEVEL IOPORT_PIN_LEVEL_LOW | |
#endif | |
//@} | |
/** | |
* \name LCD Backlight | |
*/ | |
//@{ | |
#if defined(SAM4L_EK_REV1) | |
# define LCD_BL PA02 | |
# define LCD_BL_GPIO PIN_PA02 | |
# define LCD_BL_GPIO_MASK GPIO_PA02 | |
#else | |
# define LCD_BL PC14 | |
# define LCD_BL_GPIO PIN_PC14 | |
# define LCD_BL_GPIO_MASK GPIO_PC14 | |
#endif | |
#define LCD_BL_ACTIVE_LEVEL IOPORT_PIN_LEVEL_HIGH | |
#define LCD_BL_INACTIVE_LEVEL IOPORT_PIN_LEVEL_LOW | |
//@} | |
/*! \name GPIO Connections of Push Buttons | |
*/ | |
//! @{ | |
#define GPIO_PUSH_BUTTON_0 PIN_PC03 | |
#define GPIO_PUSH_BUTTON_0_MASK GPIO_PC03 | |
#define PUSH_BUTTON_0_DOWN_LEVEL IOPORT_PIN_LEVEL_LOW | |
#define PUSH_BUTTON_0_UP_LEVEL IOPORT_PIN_LEVEL_HIGH | |
//! @} | |
/*! \name Push Button Connection on External Interrupt line | |
*/ | |
//! @{ | |
#define GPIO_PUSH_BUTTON_EIC_PIN PIN_PC03B_EIC_EXTINT5 | |
#define GPIO_PUSH_BUTTON_EIC_PIN_MASK GPIO_PC03B_EIC_EXTINT5 | |
#define GPIO_PUSH_BUTTON_EIC_PIN_MUX MUX_PC03B_EIC_EXTINT5 | |
#define GPIO_PUSH_BUTTON_EIC_LINE 5 | |
#define GPIO_UNIT_TEST_EIC_PIN PIN_PA06C_EIC_EXTINT1 | |
#define GPIO_UNIT_TEST_EIC_PIN_MASK GPIO_PA06C_EIC_EXTINT1 | |
#define GPIO_UNIT_TEST_EIC_PIN_MUX MUX_PA06C_EIC_EXTINT1 | |
#define GPIO_UNIT_TEST_EIC_LINE 1 | |
#define GPIO_EIC_TRIG_PIN PIN_PB05 | |
//! @} | |
/*! \name GPIO Connections of Touch sensors | |
*/ | |
//! @{ | |
#define GPIO_QTOUCH_SLIDER_0 PIN_PB02 | |
#define GPIO_QTOUCH_SLIDER_0_MASK GPIO_PB02 | |
#define GPIO_QTOUCH_SLIDER_0_MUX MUX_PB02G_CATB_SENSE23 | |
#define GPIO_QTOUCH_SLIDER_1 PIN_PA04 | |
#define GPIO_QTOUCH_SLIDER_1_MASK GPIO_PA04 | |
#define GPIO_QTOUCH_SLIDER_1_MUX MUX_PA04G_CATB_SENSE0 | |
#define GPIO_QTOUCH_SLIDER_2 PIN_PA05 | |
#define GPIO_QTOUCH_SLIDER_2_MASK GPIO_PA05 | |
#define GPIO_QTOUCH_SLIDER_2_MUX MUX_PA05G_CATB_SENSE1 | |
#define GPIO_QTOUCH_DISCHARGE PIN_PB03 | |
#define GPIO_QTOUCH_DISCHARGE_MASK GPIO_PB03 | |
#define GPIO_QTOUCH_DISCHARGE_MUX MUX_PB03G_CATB_DIS | |
#define GPIO_QTOUCH_BUTTON PIN_PB04 | |
#define GPIO_QTOUCH_BUTTON_MASK GPIO_PB04 | |
#define GPIO_QTOUCH_BUTTON_MUX MUX_PB04G_CATB_SENSE24 | |
//! @} | |
/*! \name Touch sensors pin assignements | |
*/ | |
//! @{ | |
#define QTOUCH_PINSEL_SLIDER_0 23 | |
#define QTOUCH_PINSEL_SLIDER_1 0 | |
#define QTOUCH_PINSEL_SLIDER_2 1 | |
#define QTOUCH_PINSEL_BUTTON 24 | |
//! @} | |
/*! \name GPIO Connections of SAM4L4C VBUS monitoring | |
*/ | |
//! @{ | |
#if defined(SAM4L_EK_REV1) | |
#define USB_VBUS_FLAGS IOPORT_MODE_GLITCH_FILTER | |
#define USB_VBUS_PIN PIN_PC14 /* As IO pin input */ | |
/* No EIC for VBus pin */ | |
#elif 0 // The Vbus monitoring can not be used on SAM4L_EK Rev. 2 | |
#define USB_VBUS_FLAGS IOPORT_MODE_GLITCH_FILTER | |
#define USB_VBUS_EIC PIN_PA06C_EIC_EXTINT1 /* As EIC input */ | |
#define USB_VBUS_EIC_MUX IOPORT_MODE_MUX_C | |
#define USB_VBUS_EIC_LINE 1 | |
#define USB_VBUS_EIC_IRQn EIC_1_IRQn | |
#endif | |
//! @} | |
/*! \name GPIO Connections of SAM4L4C VBUS Power Control | |
*/ | |
//! @{ | |
#define USB_VBOF_PIN PIN_PC08 /* As IO pin output */ | |
#define USB_VBOF_ACTIVE_LEVEL 0 | |
#define USB_VBOF_INACTIVE_LEVEL 1 | |
//! @} | |
/*! \name GPIO Connections of SAM4L4C VBUS error detecting | |
*/ | |
//! @{ | |
#define USB_VBERR_FLAGS IOPORT_MODE_PULLUP | IOPORT_MODE_GLITCH_FILTER | |
#define USB_VBERR_PIN PIN_PC07 /* As IO pin input */ | |
/* No EIC for VBErr pin */ | |
//! @} | |
/*! \name GPIO Connections of SAM4L4C ID detecting | |
*/ | |
//! @{ | |
#define USB_ID_FLAGS IOPORT_MODE_PULLUP | IOPORT_MODE_GLITCH_FILTER | |
#define USB_ID_PIN PIN_PB05 /* As IO pin input */ | |
/* No EIC for ID pin */ | |
//! @} | |
//! \name USART connections to GPIO for Virtual Com Port | |
// @{ | |
#define COM_PORT_USART USART2 | |
#define COM_PORT_USART_ID ID_USART2 | |
#define COM_PORT_RX_PIN PIN_PC11B_USART2_RXD | |
#define COM_PORT_RX_GPIO GPIO_PC11B_USART2_RXD | |
#define COM_PORT_RX_MUX MUX_PC11B_USART2_RXD | |
#define COM_PORT_TX_PIN PIN_PC12B_USART2_TXD | |
#define COM_PORT_TX_GPIO GPIO_PC12B_USART2_TXD | |
#define COM_PORT_TX_MUX MUX_PC12B_USART2_TXD | |
// @} | |
//! \name USART connections to the Board Monitor | |
// @{ | |
#define BM_USART_USART USART0 | |
#define BM_USART_USART_ID ID_USART0 | |
#define BM_USART_RX_PIN PIN_PC02C_USART0_RXD | |
#define BM_USART_RX_GPIO GPIO_PC02C_USART0_RXD | |
#define BM_USART_RX_MUX MUX_PC02C_USART0_RXD | |
#define BM_USART_TX_PIN PIN_PA07B_USART0_TXD | |
#define BM_USART_TX_GPIO GPIO_PA07B_USART0_TXD | |
#define BM_USART_TX_MUX MUX_PA07B_USART0_TXD | |
// @} | |
//! \name USART connections to the RS485 | |
// @{ | |
#define RS485_USART_USART USART0 | |
#define RS485_USART_USART_ID ID_USART0 | |
#define RS485_USART_RX_PIN PIN_PC02C_USART0_RXD | |
#define RS485_USART_RX_GPIO GPIO_PC02C_USART0_RXD | |
#define RS485_USART_RX_MUX MUX_PC02C_USART0_RXD | |
#define RS485_USART_TX_PIN PIN_PA07B_USART0_TXD | |
#define RS485_USART_TX_GPIO GPIO_PA07B_USART0_TXD | |
#define RS485_USART_TX_MUX MUX_PA07B_USART0_TXD | |
#define RS485_USART_RTS_PIN PIN_PA06B_USART0_RTS | |
#define RS485_USART_RTS_GPIO GPIO_PA06B_USART0_RTS | |
#define RS485_USART_RTS_MUX MUX_PA06B_USART0_RTS | |
#define RS485_USART_CTS_PIN PIN_PC08E_USART2_CTS | |
#define RS485_USART_CTS_GPIO GPIO_PC08E_USART2_CTS | |
#define RS485_USART_CTS_MUX MUX_PC08E_USART2_CTS | |
// @} | |
//! \name TWIMS1 pins | |
// @{ | |
#define TWIMS1_TWI_SDA_PIN PIN_PB00A_TWIMS1_TWD | |
#define TWIMS1_TWI_SDA_GPIO GPIO_PB00A_TWIMS1_TWD | |
#define TWIMS1_TWI_SDA_MUX MUX_PB00A_TWIMS1_TWD | |
#define TWIMS1_TWI_SCL_PIN PIN_PB01A_TWIMS1_TWCK | |
#define TWIMS1_TWI_SCL_GPIO GPIO_PB01A_TWIMS1_TWCK | |
#define TWIMS1_TWI_SCL_MUX MUX_PB01A_TWIMS1_TWCK | |
// @} | |
//! \name USART0 pins | |
// @{ | |
#define USART0_RX_PIN PIN_PC02C_USART0_RXD | |
#define USART0_RX_MUX MUX_PC02C_USART0_RXD | |
#define USART0_RX_GPIO GPIO_PC02C_USART0_RXD | |
#define USART0_TX_PIN PIN_PA07B_USART0_TXD | |
#define USART0_TX_MUX MUX_PA07B_USART0_TXD | |
#define USART0_TX_GPIO GPIO_PA07B_USART0_TXD | |
// @} | |
//! \name DACC pins | |
// @{ | |
#define DACC_EXT_TRIG0_PIN PIN_PB04E_DACC_EXT_TRIG0 | |
#define DACC_EXT_TRIG0_GPIO GPIO_PB04E_DACC_EXT_TRIG0 | |
#define DACC_EXT_TRIG0_MUX MUX_PB04E_DACC_EXT_TRIG0 | |
#define DACC_VOUT_PIN PIN_PA06A_DACC_VOUT | |
#define DACC_VOUT_GPIO GPIO_PA06A_DACC_VOUT | |
#define DACC_VOUT_MUX MUX_PA06A_DACC_VOUT | |
// @} | |
/* Select the SPI module that AT25DFx is connected to */ | |
#define AT25DFX_SPI_MODULE SPI | |
/* Chip select used by AT25DFx components on the SPI module instance */ | |
#define AT25DFX_CS 2 | |
/** | |
* @} | |
*/ | |
#endif /* SAM4L_EK_INCLUDED */ |