You are on page 1of 106

Atmel SAM D21 Xplained Pro

Atmel SAM D21 Xplained Pro

Atmel SAM D21

Atmel SAM D21 Xplained Pro

Atmel IC LCD
LCD LCD
AVR AVR MCU

AVR

Cortex-M0 MCU, Atmel EEworld


Atmel SAM D21 Xplained Pro
MCU
MCUAtmel SAM D21
Atmel ARM Cortex-M0+ SAM D
Atmel SAM D21D10 D11
Atmel 39
SAM D21 Xplained Pro
Atmel Atmel Studio 6 Atmel AVR
SAM 2000
Atmel

D21 wgsxsm

Atmel SAM D21

02

Atmel SAM D21 Xplained Pro

.......................................................................................................................................02
Atmel SAM D21 ...............................................05
1. Atmel SAM DMCU..............................................................................................05
1.1 ..............................................................................................................................................05
1.2 Atmel SAM DMCU..........................................................................................................05
1.3 Atmel SAM D21 MCU.......................................................................................07
2. Atmel SAM D21 Xplained Pro.........................................................................................08
2.1 ..........................................................................................................................08
2.1.1 .............................................................................................08
2.1.2 D20D21.................................................................................11
2.2 .........................................................................................................14
2.2.1 Atmel Studio 6.2beta....................................................................14
2.2.2 Atmel Studio 6.2beta................................................................25
2.2.3 KeilAtmel SAM D21.......................................................................................30

Atmel SAM D21.....................................................40


1. Atmel SAM D21 Xplained Pro.................................................................................40
1.1 Studio.........................................................................................................40
1.2 D21......................................................................................................................................42
1.3 ASF.................................................................................................................44
1.4 PWM....................................................................................................................................46
2. Atmel SAM D21led.............................................................................................49
3. Atmel SAM D21...................................................................................................52
4. Atmel SAM D21.......................................................................................................53
5. SAM D21...........................................................................................60
5.1 ..............................................................................................................................60
5.2 ......................................................................................................................63
6. Atmel SAM D21LED...............................................................................65
7. Atmel SAM D21I2C.................................................................................................68

Atmel SAM D21

03

Atmel SAM D21 Xplained Pro

Atmel SAM D21 Xplained Pro..............70


1. SAM D21 Xplained Pro .............................................................................70
2. SAM D21 Xplained Pro ADXL345 ..........................................................73
3. SAM D21 Xplained Pro ASFADC.................................................................75
4. SAM D21 Xplained Pro ASFuartADC........................................82
5. Atmel SAM D21OLED................................................................................85
5.1 Atmel SAM D21SSD1306 OLED....................................................................85
5.2 Atmel SAM D21OLEDRTC...............................................................89
5.3 Atmel SAM D21OLEDPCF8563
.................................................................................................................................................................91
5.4 Atmel SAM D21OLEDRTC..... 96

Atmel SAM D21......................................................99

................................................................................................................ 104

........................................................................................................................ 105
........................................................................................................................ 106

Atmel SAM D21

04

Atmel SAM D21 Xplained Pro

Atmel SAM D21

1. Atmel SAM D MCU


1.1
Atmel MCUAtmel SAM D21 Xplained
Pro Atmel SAM D21 MCU ATSAMD21J18A
SAM D21
ARM Cortex M0+ MCU
MCU Atmel Event SystemSERCOM
USB Atmel MCU

Atmel SAM D

1.2 Atmel SAM D MCU


Atmel | SMART SAM D ARM Cortex-M0+ (MCU)
Atmel
ARM Cortex-M0+ MCU
Atmel | SMART SAM D

Atmel SAM D21

05

Atmel SAM D21 Xplained Pro


SAM D D21 D
SAM D21 SAM D20 USBDMA /
SAM D20
SAM D11 SAM D10SAM D20 SAM D21 SAM D10
USB
SAM D10 SAM D SAM
D11SAM D20 SAM D21

CPU

Atmel SleepWalking CPU

(SERCOM)

I2CUSART/UART SPI SERCOM


SAM D 21 I2C 3.4 MHz I2SPMBus SMBus
SAM D11 SAM D10 IrDA

DMA SAM D21 8 DMA SAM D11

SAM D10 6 DMA


SAM D11 1

USB SAM D21 USB USB SAM D11

USB RC USB BOM

Atmel

QTouch

8KB 256KB 14 64

Atmel SAM D21

06

Atmel SAM D21 Xplained Pro

1.3 Atmel SAM D21 MCU


Atmel SAM D21 ARM Cortex-M0+
SAM D21
SAM D

ARM Cortex-M0+ MCU 48MHz

256KB 32KB SRAM


DMA

SAM

12

70A/MHz

D21J SAM D21GSAM D21E (SERCOM)

USB

ADCSAM D21J20 SAM D21G14 SAM D21E10

10 DAC

QFP

QFN SAM D21J64 SAM D21G48 SAM D21E32

Atmel SAM D21 Xplained Pro SAM D21J18A


ARM Cortex-M0+ based microcontroller with 256KB Flash, 32KB SRAM, 48 MHz, five 16bit timer/counters, DMA, 6 SERCOMs, USB Host and Device, 20-channel 12-bit ADC, 10-bit
DAC, 64 pins
SAM D MCU http://www.Atmel.com/zh/cn/products/
microcontrollers/arm/SAM-d.aspx#SAMD21

Atmel SAM D21

07

Atmel SAM D21 Xplained Pro

2. Atmel SAM D21 Xplained Pro


2.1
2.1.1
Atmel SAMD21 Xplained Pro ATSAMD21J18A
ATSAMD21J18A ARM Cortex-M0+ 48MHz
150A/MHz 256KB Flash 32KB SRAM Atmel MCU

SAM D21 Xplained Pro :


4 60mm x 100mm
SAMD21 J18A USB
micro-USB LED

EDBG AT32UC3A4256J 32
AVR MCU SWD
USB UART
Atmel Data Gateway Interface SPI TWI
GPIO

Atmel SAM D21

08

Atmel SAM D21 Xplained Pro

SAMD21J18A

SAMD21J18A
ARM Cortex-M0+ 48MHz2.14 Coremark/MHz
70uA/MHz ARMCortex-M0+
EventSystem
256KB FLASH 32KB SRAM
ARMCortex-M0+
64 Pin QFN
6 Serial Communication Interface,
SERCOMUART/USARTSPII2C
USB2.0
96MHz PLL I2S

Atmel SAM D21

09

Atmel SAM D21 Xplained Pro


1 20 16-bit ADC / 1 12-bit DAC
/ 2
GPIO
SAMD21J18A SAMD20
USB ADCDAC

SAMD21J18A

http://bbs.eeworld.com.cn/thread-447538-1-1.html
http://bbs.eeworld.com.cn/thread-447681-1-1.html
http://bbs.eeworld.com.cn/thread-447598-1-1.html

Atmel SAM D21

10

Atmel SAM D21 Xplained Pro


2.1.2 D20 D21
D21 D20

Evaluation Kit

Atmel SAM D21

11

Atmel SAM D21 Xplained Pro

1. D21 USB
2. D21 DATAFLASH
3. D21
4. D20 Atmel arm
5. D21 D20

Atmel SAM D21

12

Atmel SAM D21 Xplained Pro

D20 JTAG D21

2 Atmel

http://bbs.eeworld.com.cn/thread-450104-1-1.html

Atmel SAM D21

13

Atmel SAM D21 Xplained Pro

2.2
2.2.1 Atmel Studio 6.2beta
IDEAtmel Studio Atmel SAM D21
6.2beta

Atmel Studio 6.2beta


ARM
Atmel Studio GCC
Atmel ARMAVR MCU AFSAtmel
Software Framework
Atmel
Windows CELinuxAndroid(BSP)
BSP
BSP
IDE

Atmel SAM-ICE JTAG


AT91SAM JTAG/ICE
Atmel Atmel SAM-ICE JTAG AT91SAMMCUMPU

AT91SAM MCU MPU


PCB (BOM)
Atmel
SAM-ICE JTAGAT91SAMMCUMPU

Atmel Studio 6.2beta


Atmel

Atmel SAM D21

14

Atmel SAM D21 Xplained Pro

Atmel

Atmel SAM D21

15

Atmel SAM D21 Xplained Pro


Atmel Studio 6.2 beta Atmel Studio 6.2 beta C
D

Microsoft.NET Framework 4.0

Atmel SAM D21

16

Atmel SAM D21 Xplained Pro

Microsoft.NET Framework 4.0

Microsoft.NET Framework 4.0 NET


Atmel SAM D21

17

Atmel SAM D21 Xplained Pro

Atmel SAM D21

Atmel Studio GCC

Atmel SAM D21

18

Atmel SAM D21 Xplained Pro

Full/Custom

Atmel SAM D21

19

Atmel SAM D21 Xplained Pro

USB

Atmel SAM D21

20

Atmel SAM D21 Xplained Pro

Atmel SAM D21

21

Atmel SAM D21 Xplained Pro

Atmel SAM D21

22

Atmel SAM D21 Xplained Pro

Atmel SAM D21

23

Atmel SAM D21 Xplained Pro

Atmel SAM D21

24

Atmel SAM D21 Xplained Pro

2.2.2 Atmel Studio 6.2beta


USB Atmel SAM D21 Debug

Atmel SAM D21

25

Atmel SAM D21 Xplained Pro


Atmel Studio 6.2

New ExampleProject

Atmel SAM D21

26

Atmel SAM D21 Xplained Pro


Atmel

LED Toggle

Atmel SAM D21

27

Atmel SAM D21 Xplained Pro

OK

Atmel SAM D21

28

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/thread-447871-1-1.html

Atmel SAM D21

29

Atmel SAM D21 Xplained Pro


2.2.3 Keil Atmel SAM D21

MDK MDK4.73 SAMD21


MDK5 MDK5 package installer Keil
SAMD21_DFP SAMD21

LED Blinky
MDK
MDK4.73 keil.SAMD21_dfp.1.0.0
SAMD21 Series ATSAMD21J ATSAMD21J18A

Atmel SAM D21

30

Atmel SAM D21 Xplained Pro

MDK5 MDK4
Startup

main.c

main.cSAMD21
8MHz GCLK CPU PM PORT
LED
LED PB30.

Atmel SAM D21

31

Atmel SAM D21 Xplained Pro


void LED_Init(void)
{
PORT->Group[1].DIRSET.reg
PORT->Group[1].OUTSET.reg
}
void LED_ON(void)
{
PORT->Group[1].OUTCLR.reg
}
void LED_OFF(void)
{
PORT->Group[1].OUTSET.reg
}

= PORT_PB30;
= PORT_PB30;

= PORT_PB30;

= PORT_PB30;

SAM D21 ABC PORT->Group[1] B


Group[1]
PB30
PORT->Group[1].DIRSET.reg = PORT_PB30;
LED LED PB30
PORT->Group[1].OUTCLR.reg = PORT_PB30;
LED PB30
PORT->Group[1].OUTSET.reg = PORT_PB30;
main
int
{








}

main(void)

LED_Init();
while(1)
{
LED_ON();
delay(10000);
LED_OFF();
delay(100000);
}

http://bbs.eeworld.com.cn/thread-447420-1-1.html

Atmel SAM D21

32

Atmel SAM D21 Xplained Pro

Keil PC IDE
SAMD21
ARM Cortex-M0+ MCU 48MHz
48MHz SAM D21

DFLL48M
Atmel IDEAtmelStudio Example
Keil
Atmel-42119-SAM-D20-D21-System-Clock-Management-Driver-SYSTEM-CLOCK_
Application-Note_AT03259

1MHz
#include "SAMD21.h"
void LED_Init(void)
{
PORT->Group[1].DIRSET.reg = PORT_PB30;
PORT->Group[1].OUTSET.reg = PORT_PB30;
}
void LED_ON(void)
{
PORT->Group[1].OUTCLR.reg = PORT_PB30;
}
void LED_OFF(void)

Atmel SAM D21

33

Atmel SAM D21 Xplained Pro


{
PORT->Group[1].OUTSET.reg = PORT_PB30;
}
void SysTick_Handler(void)
{
if(PORT->Group[1].OUTSET.reg == PORT_PB30)
{
LED_ON();
}
else
{
LED_OFF();
}
}
int main(void)
{
LED_Init();
SysTick_Config(1000000);
while(1)
{
}
}

http://bbs.eeworld.com.cn/forum. ... 47420&highlight=D21


Keil SAMD21
LED 2s
Keil SAMD21 LED
2s

Atmel SAM D21

34

Atmel SAM D21 Xplained Pro


DFLL48M GCLK:

Generic Clock Generator 0

SystemController DFLL48M Generic Clock Generator 0


Open Close DFLL48M
Open

Open NVM Software Calibration Area DFLL48M

Atmel SAM D21

35

Atmel SAM D21 Xplained Pro

DFLL48M

Keil Cannot enter Debug Mode

Boot NMI
NMI Reset NMI
Boot
NMI NMI

AtmelStudio AtmelStudio Example


Keil Keil
Keil Keil
SAM

OK
8 OSC8M

void configure_osc8m(SYSCTRL_OSC8M_Type osc8m)


{
osc8m.bit.ENABLE = 1;
SYSCTRL->OSC8M = osc8m;
}
void configure_osc8m_8m(void)
{
SYSCTRL_OSC8M_Type osc8m;
osc8m = SYSCTRL->OSC8M;
osc8m.bit.PRESC = SYSCTRL_OSC8M_PRESC_0_Val;
osc8m.bit.RUNSTDBY = 0;
osc8m.bit.ONDEMAND = 1;
configure_osc8m(osc8m);
}
Atmel SAM D21

36

Atmel SAM D21 Xplained Pro


DFLL48M

void configure_dfll(SYSCTRL_DFLLCTRL_Type dfllctrl, SYSCTRL_DFLLMUL_Type dfllmul,


SYSCTRL_DFLLVAL_Type dfllval)
{
SYSCTRL->DFLLCTRL.reg = dfllctrl.reg & ~SYSCTRL_DFLLCTRL_ONDEMAND;
while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY)) {
/* Wait for DFLL sync */
}
SYSCTRL->DFLLMUL.reg
= dfllmul.reg;
SYSCTRL->DFLLVAL.reg
= dfllval.reg;
dfllctrl.bit.ENABLE = 1;
/* Write full configuration to DFLL control register */
SYSCTRL->DFLLCTRL.reg = dfllctrl.reg;
}
void configure_dfll_open_loop(void)
{
SYSCTRL_DFLLCTRL_Type dfllctrl;
SYSCTRL_DFLLMUL_Type dfllmul;
SYSCTRL_DFLLVAL_Type dfllval;
dfllctrl.bit.LLAW
= 0;
dfllctrl.bit.STABLE
= 0;
dfllctrl.bit.QLDIS
= 0;
dfllctrl.bit.CCDIS
= 0;
dfllctrl.bit.ONDEMAND = 1;
dfllctrl.bit.MODE
= 0;
dfllval.bit.COARSE
= (*((uint8_t*)(0x806020+7)))>>2;//0x1f / 4; /*
Midpoint */
dfllval.bit.FINE
= (*((uint32_t*)(0x806020+8))) &
0x3FF;//0xff / 4; /* Midpoint */
dfllmul.bit.CSTEP
= 1;
dfllmul.bit.FSTEP
= 1;
dfllmul.bit.MUL
= 6; /* Multiply 8MHz by 6 to get
48MHz */
configure_dfll(dfllctrl, dfllmul, dfllval);
NVMCTRL->CTRLB.bit.RWS = 2;
}

COARSE FINE NVM Software Calibration Area

void configure_gclk(GCLK_GENCTRL_Type genctrl, GCLK_GENDIV_Type gendiv)


{
while (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY) {
/* Wait for synchronization */
};
//cpu_irq_enter_critical();

Atmel SAM D21

37

Atmel SAM D21 Xplained Pro


/* Select the correct generator */
GCLK->GENDIV.bit.ID = gendiv.bit.ID;
/* Write the new generator configuration */
while (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY) {
/* Wait for synchronization */
};
GCLK->GENDIV = gendiv;
while (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY) {
/* Wait for synchronization */
};
genctrl.bit.GENEN = GCLK->GENCTRL.bit.GENEN;
GCLK->GENCTRL = genctrl;
//cpu_irq_leave_critical();
}

void configure_gclk_gen_dfll(void)
{
/* Change system clock to DFLL */
GCLK_GENCTRL_Type genctrl;
GCLK_GENDIV_Type gendiv;
genctrl.reg = 0;
gendiv.reg = 0;
genctrl.bit.ID = GCLK_CLKCTRL_GEN_GCLK0_Val;
gendiv.bit.ID = GCLK_CLKCTRL_GEN_GCLK0_Val;
genctrl.bit.SRC = GCLK_SOURCE_DFLL48M;
genctrl.bit.DIVSEL = 0;
genctrl.bit.IDC = 0;
genctrl.bit.OOV = 0;
genctrl.bit.RUNSTDBY = 0;
genctrl.bit.OE = 0;
gendiv.bit.DIV = 0;
configure_gclk(genctrl, gendiv);
}

main
int ieo=0;
int main(void)
{
while(ieo!=5);
configure_osc8m_8m();
configure_dfll_open_loop();

Atmel SAM D21

38

Atmel SAM D21 Xplained Pro


configure_gclk_gen_dfll();
LED_Init();
SysTick_Config(48000000/4);
while(1)
{
}
}

ieo

SysTick_Config CM 1/4
1/2 Tick
1/4 Tick 32

main.zip
http://download.eeworld.com.cn/detail/phantom7/550573

http://bbs.eeworld.com.cn/thread-448782-1-1.html

Atmel SAM D21

39

Atmel SAM D21 Xplained Pro

Atmel SAM
D21
1. Atmel SAM D21 Xplained Pro
1.1 Studio .
tmel D21 Studio .

USB
EDBG EDBG
USB
EDBG

Atmel SAM D21

40

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=447603

Atmel SAM D21

41

Atmel SAM D21 Xplained Pro

1.2 D21

Hi,
I just installed the SAMD21 xplained board and Atmel studio 6.2. Towards the end of the
install it decided to update the debug firmware from 1.12 to 1.18 (if memory serves correct)
but stopped with a timeout before it had finished. I could see the EDBG debug tool before the
upgrade, but now I can't see it. Any way to restart the firmware upgrade?
Regards, Alan

Known issue with the beta. Go to Tools|Command Prompt and write atfw -h
Full command to force upgrade is something like (given only 1 edbg connected)
atfw -t edbg -a \tools\EDBG\edbg_fw.zip
atfw

Atmel SAM D21

42

Atmel SAM D21 Xplained Pro

D21
c:\Program Files\Atmel\Atmel Studio 6.2\atbackend> atfw
EDBG c:\Program Files\Atmel\Atmel Studio 6.2\tools\EDBG

XPlained

http://bbs.eeworld.com.cn/thread-447769-1-1.html

Atmel SAM D21

43

Atmel SAM D21 Xplained Pro

1.3 ASF
ASF Atmel Software Framework, Atmel
ASF

Atmel SAM D21

44

Atmel SAM D21 Xplained Pro

SW0 LED
http://bbs.eeworld.com.cn/thread-447875-1-1.html

Atmel SAM D21

45

Atmel SAM D21 Xplained Pro

1.4 PWM
Studio6.2, ASF
D21 LED ASF ASF
timer TC ADD
APPLY,

ASF explorer: Quick Start Guide

Atmel SAM D21

46

Atmel SAM D21 Xplained Pro

Atmel SAM D21

47

Atmel SAM D21 Xplained Pro

: PB02 0.58 3.3

http://bbs.eeworld.com.cn/thread-449790-1-1.html

Atmel SAM D21

48

Atmel SAM D21 Xplained Pro

2. Atmel SAM D21 led


example LED blink 6.2

D21

io LED

Atmel SAM D21

49

Atmel SAM D21 Xplained Pro

pin pin
find reference sw0 SAMD21_xplained_pro.h
led PB30 PA15

Atmel SAM D21

50

Atmel SAM D21 Xplained Pro

IO
http://bbs.eeworld.com.cn/thread-449453-1-1.html

Atmel SAM D21

51

Atmel SAM D21 Xplained Pro

3. Atmel SAM D21


Atmel SAM D21 :
EDBG systeminit 48MHZ
48MHZ NVM DFLLVAL
3 printf
KEIL
http://www.keil.com/support/man/docs/gsac/gsac_retargetcortex.htm
KEIL BUG

UART.rar
http://download.eeworld.com.cn/detail/phantom7/550574

http://bbs.eeworld.com.cn/thread-449179-1-1.html

Atmel SAM D21

52

Atmel SAM D21 Xplained Pro

4. Atmel SAM D21


SAM D21 pwm SAM D21 Xplained Pro
LED0

LEDPWM .pdf
http://download.eeworld.com.cn/detail/phantom7/550575

http://www.Atmel.com/tools/Atmelstudio.aspx?tab=overview Atmelstudio
6.2

Atmel SAM D21

53

Atmel SAM D21 Xplained Pro

SAMD21-X-PLAINEDAtmelstudio

LEDctrlbypwm

Atmel SAM D21

54

Atmel SAM D21 Xplained Pro

SAMD21-X-PLAINED

IO

Atmel SAM D21

55

Atmel SAM D21 Xplained Pro

ASF

Atmel SAM D21

56

Atmel SAM D21 Xplained Pro


PWM LED0 LED0 IO PWM

LED0 IO pwm
Atmelstudio TCC asf TCC

quick star guide recoverable fault


quick star guide

Atmel SAM D21

57

Atmel SAM D21 Xplained Pro

copy main.c

Atmel SAM D21

58

Atmel SAM D21 Xplained Pro

SAM D21 Xplained Pro PDF

http://bbs.eeworld.com.cn/thread-447772-1-1.html

Atmel SAM D21

59

Atmel SAM D21 Xplained Pro

5. SAM D21
5.1
EEWORLD SAM D21
EEWORLD Atmel

Atmel Studio 6.2

Atmel Studio 6.2

tool

F5

Atmel Studio 6.2


Atmel SAM D21

60

Atmel SAM D21 Xplained Pro

WIN7
WIN7 XP XP

Atmel SAM D21

61

Atmel SAM D21 Xplained Pro

WIN7
WIN7
GHOST GHOST

http://bbs.eeworld.com.cn/thread-447593-1-1.html

Atmel SAM D21

62

Atmel SAM D21 Xplained Pro

5.2
SAM D21 +
GHOST
Atmel
C:\Windows\inf
mdmcpq.inf

C:\Windows\System32\drivers usbser.sys

WIN7 WIN7 XP XP WIN7

Atmel win7

Atmel SAM D21

63

Atmel SAM D21 Xplained Pro

Atmel SAM D21


usbser.sys
mdmcpq.infusbser.sys

win7
http://bbs.eeworld.com.cn/thread-447656-1-1.html

Atmel SAM D21

64

Atmel SAM D21 Xplained Pro

6. Atmel SAM D21 LED


MDK
MDK keil 5
MDK LED0PB30 500ms


int BSP_Init(void)
{
SysTick_Init();
LED_Init();
return 0;
}
BSP_Init()
int BSP_Init(void)
{
SysTick_Init();
LED_Init();
return 0;
}

Atmel SAM D21

65

Atmel SAM D21 Xplained Pro


SysTick
static
uint32_t TimingDelay;
void SysTick_Init(void)
{
/*
SystemFrequency / 1000
1ms
* SystemFrequency / 100000
10us
* SystemFrequency / 1000000 1us
*/
if (SysTick_Config(SystemCoreClock / 1000000))
{
/* Capture error */
while (1);
}
//
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}
void Delay_us(uint32_t nTime)
{
TimingDelay = nTime;
//
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
while(TimingDelay != 0);
}
/**
* @brief
* @param
* @retval
* @attention SysTick SysTick_Handler()
*/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
void SysTick_Handler(void)
{
TimingDelay_Decrement();
}

LED
#define LED_BIT
0x1<<30
void LED_Init(void)
{
REG_PORT_OUTSET1 = LED_BIT; // PB30 1
LED
REG_PORT_DIRSET1 = LED_BIT;

// PB30

Atmel SAM D21

66

Atmel SAM D21 Xplained Pro


void LED_On(void)
{
REG_PORT_OUTCLR1 = LED_BIT;
}
void LED_Off(void)
{
REG_PORT_OUTSET1 = LED_BIT;
}
void LED_Toggle(void)
{
REG_PORT_OUTTGL1 = LED_BIT;
}

// LED

500ms 498ms

http://bbs.eeworld.com.cn/thread-449628-1-1.html

Atmel SAM D21

67

Atmel SAM D21 Xplained Pro

7. Atmel SAM D21I2C


I2C I2C
1 datasheetSAMD21J18A 6 SERCOM USART,UART, SPI,
I2C up to 3.4MHz, SMBus, PMBus, and LIN slave SERCOM
I2C

2I2C Atmel Studio I2C

Atmel SAM D21

68

Atmel SAM D21 Xplained Pro

4 ( )

http://bbs.eeworld.com.cn/thread-449800-1-1.html

Atmel SAM D21

69

Atmel SAM D21 Xplained Pro

Atmel SAM
D21 Xplained Pro
1.SAM D21 Xplained Pro
Atmel AVR Studio 4Atmel ARM Atmel
( + )Atmel Studio 6.2
(
)
Atmel SAM D21

32.768Khz

LED PB30

Atmel SAM D21

70

Atmel SAM D21 Xplained Pro


Atmel Studio 6.2 D21 TC

32768hz
1024
32768/1024=3232 1
48
16

LED

Atmel SAM D21

71

Atmel SAM D21 Xplained Pro


LED

LED IO

http://download.eeworld.com.cn/detail/phantom7/550580

http://bbs.eeworld.com.cn/thread-449183-1-1.html

Atmel SAM D21

72

Atmel SAM D21 Xplained Pro

2.SAM D21 Xplained Pro ADXL345


ADXL345 I2C\SPI SAMD21J18A I2C
ADXL345 SAMD21J18A I2C Atmel SAM D21I2C
I2C
PA08 <>SDA
PA09<>SCL

ADXL345 0x53
LED0

Atmel SAM D21

73

Atmel SAM D21 Xplained Pro

ADXL345

Atmel SAM D21

74

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=449894

3.SAM D21 Xplained Pro ASF ADC


solution project
solution D21 test solution project
add to solution

set as start up
LEDlib
math libm

src ASFconfig main.c board.h D21


SAMD21_xplained_pro.h board_init.c
LED button IO port.h port.c

Atmel SAM D21

75

Atmel SAM D21 Xplained Pro

ADC alt+W asf add adc api

Atmel SAM D21

76

Atmel SAM D21 Xplained Pro

poll callback

asf explore adc quick start guide

Atmel SAM D21

77

Atmel SAM D21 Xplained Pro

copy http://asf.Atmel.com/docs/3.17.0 ... basic_


use_case.html Positive input on ADC PIN 0
AIN0 ext3 PA02 PA02 VCC 12bit
debug optimized out O0 4095

Atmel SAM D21

78

Atmel SAM D21 Xplained Pro


while adc 1v ref 1v
4095 1v ad
100 980

Atmel SAM D21

79

Atmel SAM D21 Xplained Pro

as

Atmel SAM D21

80

Atmel SAM D21 Xplained Pro

14M
http://bbs.eeworld.com.cn/thread-449572-1-1.html

Atmel SAM D21

81

Atmel SAM D21 Xplained Pro

4.SAM D21 Xplained Pro ASF uart ADC

xplained adc
adc
ADC uart
asf project uart secom
uart uart mcu D21 secom uart

asfcopy cdc com15

hello world stc


uart write while stc
sscom

Atmel SAM D21

82

Atmel SAM D21 Xplained Pro

while(port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_ACTIVE);
as asf

int
{










main (void)

uint16_t result,vres;
uint8_t string[] = v=0.000\r\n;
system_init();
configure_adc();
configure_usart();

usart_write_buffer_wait(&usart_instance, string, sizeof(string));


while (1) {
// Is button pressed?
if (port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_ACTIVE) {
// Yes, so turn LED on.

Atmel SAM D21

83

Atmel SAM D21 Xplained Pro


while(port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_
ACTIVE);




port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);
adc_start_conversion(&adc_instance);

do {
/* Wait for conversion to be done and read out

result */





} while (adc_read(&adc_instance, &result) == STATUS_BUSY);


vres=(result*1000)>>12;
string[4]=(vres/100)+0x30;
string[5]=(vres/10)%10+0x30;
string[6]=vres%10+0x30;
usart_write_buffer_wait(&usart_instance, string,

sizeof(string));
}else {
// No, so turn LED off.
port_pin_set_output_level(LED_0_PIN, !LED_0_ACTIVE);
}
}
}

http://bbs.eeworld.com.cn/thread-449588-1-1.html

Atmel SAM D21

84

Atmel SAM D21 Xplained Pro

5. Atmel SAM D21 OLED


5.1 Atmel SAM D21 SSD1306 OLED

Atmel Studio SSD1306 OLED


IC SSD1306
OLED 4 SPI(3 ) LCD OLED

OLED BS0/BS1/BS2 VCC,GND,RESET


CS,DC,SCLK,SDIN

ssd1306.c ssd1306_interface_init(); PIN

Extension Header EXT3 7 PIN

Atmel SAM D21

85

Atmel SAM D21 Xplained Pro

OLED --
-------------------VCC--VCC
GND --GND
RES--PA27
CS --PB17
DC--PB30
SCLK--PB23
SDIN--PB22
0.9612864OLED

Atmel SAM D21

86

Atmel SAM D21 Xplained Pro

Atmel SAM D21

87

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=447722

Atmel SAM D21

88

Atmel SAM D21 Xplained Pro

5.2 Atmel SAM D21 OLED RTC


, , Atmel Studio
IIC SPI RTC PCF8563 DS1302 IIC ,
SPI , PIN, , ,
, RTC , STM32 , ,
... RTC , ,
, , ,
AtmelStudio , , :AtmelStudio-6.0
( )
, , , ...

RTC driver, , config

Atmel SAM D21

89

Atmel SAM D21 Xplained Pro

AtmelStudio-6.0 ( ).doc
http://bbs.eeworld.com.cn/thread-449632-1-1.html

Atmel SAM D21

90

Atmel SAM D21 Xplained Pro

5.3 Atmel SAM D21 OLED PCF8563

OLED RTC http://bbs.eeworld.com.cn/


thread-449815-1-1.html RTC
SAM D21 IIC PCF8563 PCF8563

UART

1 IIC
Atmel STUDIO
IO PA08--I2C_SDA,PA09--I2C_SCL, datasheet
SERCOM2

MCU PCF8563 I2C


//! [initialize_i2c]void configure_i2c_master(void)

Atmel SAM D21

91

Atmel SAM D21 Xplained Pro

SERCOM2 IO PCF8563

DATASHEET 0x02,
I2C

0x02

Atmel SAM D21

92

Atmel SAM D21 Xplained Pro

...... ...... 0x02


packet databuffer

Atmel SAM D21

93

Atmel SAM D21 Xplained Pro

OLED
2. UART
PC PC

10 0x55 0xAA

0x00 OK Sta: Connected


0x02, Sta: UnConnected
0x01, 6

Atmel SAM D21

94

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/thread-450183-1-1.html

Atmel SAM D21

95

Atmel SAM D21 Xplained Pro

5.4 Atmel SAM D21 OLED RTC

http://bbs.eeworld.com.cn/thread-449632-1-1.html

SERCOM4 PB10 PB11 Atmel


SAM D21 Xplained Pro USER GUIDE 11 DATASHEET 15

Atmel SAM D21

96

Atmel SAM D21 Xplained Pro

SAMD21_xplained_pro.h

10

Atmel SAM D21

97

Atmel SAM D21 Xplained Pro

http://bbs.eeworld.com.cn/thread-449815-1-1.html

Atmel SAM D21

98

Atmel SAM D21 Xplained Pro

Atmel SAM D21

Atmel AVR ARM9 Atmel


Atmel Cortex-M0

BruceLone AVR,COTEX-M3
SAM D21
MCUAtmel MCU
MCU, SAM D21

hh376158101 avr
SAM D21 SAM D21
USBDMA ad
zjbwxl Atmel SAM D
bjwl_6338 SAM D21 Xplained Pro

wolf11111 SAM D21 Xplained Pro GSM


GPRS
iwqtthf Atmel SAM D21
PCB , KEIL IAR
EWEARM CC1101 , 433MHZ,
1. , ARM ,

2.
3.
4. ,AVR ,
5.
6. ADC, ADC , , ,

Atmel SAM D21

99

Atmel SAM D21 Xplained Pro

7. PGA, ,1/2--16 , ,
. 12 ADC 17 , ,
8.
SAM D21 Xplained Pro M0
AT89
jofficer D21 mcu M0+
MCU J 64 pin256K flash32K ram
R7F0C8
SAM D21
R7F0C8 1
D21 AD 2
D21 AD 3
DDS D21 DA
4 R7F0C8 10pin TFT
DavidZH Atmel Atmel SAM D21
Xplained Pro CortexM0+ MCU Atmel SAM D21
Xplained Pro
zch_genius
MCU
IO 1. MCU 2.
3.
sjtitrSAM D21

916636D21 Atmel
MCU D21

lun0144
mcu
william228 AT89S52 AVR
STM8/32 Atmel, D21 D21

expertss AT89C51 ATMEGA128 ATXMEGA128A1U


SAM3U4E Atmel ATEML
Atmel Atmel M0 D21 Atmel
qin552011373 Atmel Atmel
Atmel SAM D21

100

Atmel SAM D21 Xplained Pro


Atmel M0+
Atmel SAM D21 ARM Cortex-M0+
12 ADC,10 DAC
8 Atmel
Atmel
zgbkdlm AVR , Atmel . ARM
M0+,M4 , TI,STM32,CYPRESS , Atmel
ARM ,
ltbytyn1 M0+ SAM D21 12 AD
2 EDBG EDBG Atmel ARM
Cortex-M programming and debugAtmel megaAVR? programming and debugAtmel AVR
XMEGA?programming and debug AVR JTAG ATMEGA32A
EDBG
chen8710Atmel Cortex M0+ SAM MCU

MCU
Atmel MCU
MCU
zqjqq881. AT 2. FRE ST 3.
4. 5. M0/M3
ddllxxrr MEGA16MEGA8 AT89C51.AVR
SAMD21J18A USB, USB USB
AVR AVR AtmelStudio 6 ASF,
Atmel SAM D21 Xplained Pro cortex m0+
SDM D21 Atmel Xplained
mcu
KevenZhang Atmel
Atmel 51
yimapingchuan MCU Atmel MCU
Atmel MCU
MCU
ainiyiwangnian ARM
Atmel SAM D21 ARM Cortex-M0+

weiwei4 USB HID , USB-DMX512


, Freestyler , , DMX512 , DMX

Atmel SAM D21

101

Atmel SAM D21 Xplained Pro


senjienly c51, msp430
stm32 MCU
Atmel MCU
SAM D21 Xplained Pro (SERCOM)
I2CUSART/UART SPI
SERCOM SAM D 21 I2C 3.4 MHz
I2SPMBus SMBusSAM D11 SAM D10 IrDA
wubing AVRAtmel
Atmel MCU
Leeone cotex mx st
Atmel 1 AVR, Atmel
AVR 2
70ua/Mhz, 3ADC:SAM D21 12 ADC,

yyunluo SAM D20 2


SAM D21 SAM D20 DMA and Event systemFull-Speed USB Device
and embedded Host AVR xmega Event system
USB D21
begger_chen Atmel MCU

AD

songshuheng Atmel mega xmega


32bit-mcu mcu 32bit
long_xj 16 64

ctqvsly M0 Atmel M0
1. JTAG 2. USB
8Mb Flash 3. FATFS FLASHH 4.
5. M0 USB 6. 16-bit ADC
12-bit DAC
lyncxy119 Atmel M0 Atmel
CPU

gxliu08 / /

Atmel SAM D21

102

Atmel SAM D21 Xplained Pro

foxpro2005 AVR Atmel Cortex-Mx


EEWORLD SAM Dxx
Atmel QTouch

SAM D21
PC FPS
PC SAM D21 I2C UART
DMA CPU
USB PC
Kinectwii PC

bingling_894
Atmel SAM D21 Xplained Pro

zidantou Atmel SAM D21 Xplained Pro


16 AD 12 DA 320x240

Atmel SAM D21

103

Atmel SAM D21 Xplained Pro

Atmel SAM D21 MCU


Atmel SAM D21 Xplained Pro
Atmel SAM D21
Atmel SAM D21
Atmel SAM D20J / SAM D20G / SAM D20E ARM Complete
Atmel Studio
Atmel
Atmel SAM D21

Atmel SAM D21

104

Atmel SAM D21 Xplained Pro


EEWORLD
Atmel D MCU
Atmel

EEWORLD
2015.1.4

Atmel SAM D21

105

Atmel SAM D21 Xplained Pro

1 Atmel D21/R21 Atmel SAM D21 Xplained Pro


Atmel http://www.atmel.com http://www.atmel.
com/zh/cn/ EEWORLD
EEWORLD http://bbs.eeworld.com.cn Atmel SAM D21

2 Atmel D21/R21 Atmel SAM D21 Xplained Pro


Atmel EEWORLD
3 Atmel SAM D21 MCU

4 Atmel EEWORLD

Atmel SAM D21

106

You might also like