Initial commit for SAMD compatability
This commit is contained in:
@@ -62,7 +62,7 @@ recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -m
|
||||
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}"
|
||||
|
||||
## Create archives
|
||||
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}"
|
||||
#recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}"
|
||||
|
||||
## Combine gc-sections, archives, and objects
|
||||
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm
|
||||
|
||||
@@ -38,5 +38,6 @@ mysensors_gw_native.build.variant=mysensors_gw
|
||||
mysensors_gw_native.build.variant_system_lib=
|
||||
mysensors_gw_native.build.vid=0x2341
|
||||
mysensors_gw_native.build.pid=0x804d
|
||||
mysensors_gw_native.build.arch=samd
|
||||
mysensors_gw_native.bootloader.tool=openocd
|
||||
mysensors_gw_native.bootloader.file=zero/samd21_sam_ba.bin
|
||||
|
||||
@@ -65,7 +65,7 @@ void SPIClass::config(SPISettings settings)
|
||||
{
|
||||
_p_sercom->disableSPI();
|
||||
|
||||
_p_sercom->initSPI(SPI_PAD_2_SCK_3, SERCOM_RX_PAD_0, SPI_CHAR_SIZE_8_BITS, settings.bitOrder);
|
||||
_p_sercom->initSPI(SPI_PAD_0_SCK_1, SERCOM_RX_PAD_2, SPI_CHAR_SIZE_8_BITS, settings.bitOrder);
|
||||
_p_sercom->initSPIClock(settings.dataMode, settings.clockFreq);
|
||||
|
||||
_p_sercom->enableSPI();
|
||||
@@ -197,4 +197,4 @@ void SPIClass::detachInterrupt() {
|
||||
// Should be disableInterrupt()
|
||||
}
|
||||
|
||||
SPIClass SPI( &sercom4, PIN_SPI_MISO, PIN_SPI_SCK, PIN_SPI_MOSI );
|
||||
SPIClass SPI( &sercom1, PIN_SPI_MISO, PIN_SPI_SCK, PIN_SPI_MOSI );
|
||||
|
||||
@@ -109,7 +109,7 @@ recipe.size.regex=\.text\s+([0-9]+).*
|
||||
#
|
||||
# BOSSA
|
||||
#
|
||||
tools.bossac.path={runtime.tools.bossac-1.6-arduino.path}
|
||||
tools.bossac.path={runtime.tools.bossac-1.6.1-arduino.path}
|
||||
tools.bossac.cmd=bossac
|
||||
tools.bossac.cmd.windows=bossac.exe
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
* +------------+------------------+--------+-----------------+--------------------------------------------------------------------------------------------------------
|
||||
* | 14 | A0 | PA02 | A0 | EIC/EXTINT[2] *ADC/AIN[0] DAC/VOUT PTC/Y[0]
|
||||
* | 15 | A1 | PB08 | A1 | EIC/EXTINT[8] *ADC/AIN[2] PTC/Y[14] SERCOM4/PAD[0] TC4/WO[0]
|
||||
* | 15 | A1 | PB08 | A1 | EIC/EXTINT[8] *ADC/AIN[2] PTC/Y[14] SERCOM4/PAD[0] TC4/WO[0]
|
||||
* | 16 | A2 | PB09 | A2 | EIC/EXTINT[9] *ADC/AIN[3] PTC/Y[15] SERCOM4/PAD[1] TC4/WO[1]
|
||||
* | 17 | A3 | PA04 | A3 | EIC/EXTINT[4] *ADC/AIN[4] AC/AIN[0] PTC/Y[2] SERCOM0/PAD[0] TCC0/WO[0]
|
||||
* | 18 | A4 | PA05 | A4 | EIC/EXTINT[5] *ADC/AIN[5] AC/AIN[1] PTC/Y[5] SERCOM0/PAD[1] TCC0/WO[1]
|
||||
@@ -114,7 +115,7 @@ const PinDescription g_APinDescription[]=
|
||||
// 0..13 - Digital pins
|
||||
// ----------------------
|
||||
// 0/1 - SERCOM/UART (Serial1)
|
||||
{ PORTA, 11, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // RX: SERCOM0/PAD[3]
|
||||
{ PORTA, 8, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // RX: SERCOM0/PAD[3]
|
||||
{ PORTA, 10, PIO_SERCOM, (PIN_ATTR_DIGITAL), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // TX: SERCOM0/PAD[2]
|
||||
|
||||
// 2..12
|
||||
@@ -195,7 +196,12 @@ const PinDescription g_APinDescription[]=
|
||||
// ----------------------
|
||||
// 43 - Alternate use of A0 (DAC output)
|
||||
{ PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, DAC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // DAC/VOUT
|
||||
} ;
|
||||
// 44 - LED_4 (yellow led)
|
||||
{ PORTB, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE },
|
||||
|
||||
// 45 - CE_NRF
|
||||
{ PORTA, 28, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }
|
||||
};
|
||||
|
||||
const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM]={ TCC0, TCC1, TCC2, TC3, TC4, TC5 } ;
|
||||
|
||||
@@ -208,14 +214,15 @@ SERCOM sercom4( SERCOM4 ) ;
|
||||
SERCOM sercom5( SERCOM5 ) ;
|
||||
|
||||
Uart Serial1( &sercom0, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX ) ;
|
||||
Uart Serial( &sercom5, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX, PAD_SERIAL_TX ) ;
|
||||
//Uart Serial( &sercom5, PIN_SERIAL_RX, PIN_SERIAL_TX, PAD_SERIAL_RX, PAD_SERIAL_TX ) ;
|
||||
void SERCOM0_Handler()
|
||||
{
|
||||
Serial1.IrqHandler();
|
||||
}
|
||||
|
||||
/*
|
||||
void SERCOM5_Handler()
|
||||
{
|
||||
Serial.IrqHandler();
|
||||
}
|
||||
|
||||
*/
|
||||
@@ -76,13 +76,18 @@ extern "C"
|
||||
#define digitalPinToInterrupt(P) ( g_APinDescription[P].ulExtInt )
|
||||
|
||||
// LEDs
|
||||
#define PIN_LED_13 (13u)
|
||||
#define PIN_LED_RXL (25u)
|
||||
#define PIN_LED_TXL (26u)
|
||||
#define PIN_LED PIN_LED_13
|
||||
#define PIN_LED2 PIN_LED_RXL
|
||||
#define PIN_LED3 PIN_LED_TXL
|
||||
#define LED_BUILTIN PIN_LED_13
|
||||
#define PIN_LED_13 (7u)
|
||||
#define PIN_LED_RXL (6u)
|
||||
#define PIN_LED_TXL (12u)
|
||||
#define PIN_LED LED_BLUE
|
||||
#define PIN_LED2 LED_RED
|
||||
#define PIN_LED4 LED_GREEN
|
||||
#define LED_BUILTIN LED_YELLOW
|
||||
|
||||
#define LED_BLUE (12u)
|
||||
#define LED_RED (6u)
|
||||
#define LED_GREEN (7u)
|
||||
#define LED_YELLOW (44u)
|
||||
|
||||
/*
|
||||
* Analog pins
|
||||
@@ -126,9 +131,9 @@ static const uint8_t ATN = PIN_ATN;
|
||||
*/
|
||||
#define SPI_INTERFACES_COUNT 1
|
||||
|
||||
#define PIN_SPI_MISO (22u)
|
||||
#define PIN_SPI_MOSI (23u)
|
||||
#define PIN_SPI_SCK (24u)
|
||||
#define PIN_SPI_MISO (36u)
|
||||
#define PIN_SPI_MOSI (35u)
|
||||
#define PIN_SPI_SCK (37u)
|
||||
|
||||
static const uint8_t SS = PIN_A2 ; // SERCOM4 last PAD is present on A2 but HW SS isn't used. Set here only for reference.
|
||||
static const uint8_t MOSI = PIN_SPI_MOSI ;
|
||||
@@ -154,6 +159,28 @@ static const uint8_t SCK = PIN_SPI_SCK ;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* MYSX pins
|
||||
*/
|
||||
|
||||
#define MYSX_D1_DFM
|
||||
#define MYSX_D2_DTM
|
||||
#define MYSX_D3_INT
|
||||
#define MYSX_D4_INT
|
||||
#define MYSX_D5_PWM
|
||||
#define MYSX_D6_PWM
|
||||
#define MYSX_D7_SCL
|
||||
#define MYSX_D8_SDA
|
||||
#define MYSX_D9_A3
|
||||
#define MYSX_D10_A4
|
||||
#define MYSX_D11_MOSI
|
||||
#define MYSX_D12_MISO
|
||||
#define MYSX_D13_SCK
|
||||
#define MYSX_D14_CS
|
||||
#define MYSX_A1
|
||||
#define MYSX_A2
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Arduino objects - C++ only
|
||||
*----------------------------------------------------------------------------*/
|
||||
@@ -171,7 +198,7 @@ extern SERCOM sercom3;
|
||||
extern SERCOM sercom4;
|
||||
extern SERCOM sercom5;
|
||||
|
||||
extern Uart Serial;
|
||||
//extern Uart Serial;
|
||||
extern Uart Serial1;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user