余白 Copyright © 2018-2023 てきーらサンドム


■■■ SAMマイコンの道標(SAME70/S70/V7x) ■■■


端子一覧(SAME70/S70/V7x 144pin) 2023/2/1 追加
144pin(QFP, 0.8ptBGA)の端子配置を以下に示します。
端子機能略号
 AFn.m:AFEn_ADm (アナログ入力)
 PWMxx_yy:PWMxx_PWMyy (PWM関係)
 VCORE:VDDCORE, VUTMII:VDDUTMII, VUTMIC:VDDUTMIC, VPLLU:VDDPLLUSB
 GUTMI:GNDUTMI, GPLLU:GPLLUSB
 水色(CAN):E70/V70/V71、緑(Ether):E70/V71、黄(MediaLB):V70/V71、       信号名の後は、,i:入力、,o:出力、無印:入出力
QFP BGA
0.8pt
PowerRail Primary Alternate PIOA PIOB PIOC PIOD リセット後
102 C11 VDDIO PA0 WKUP0,i PWMC0_H0,o TIOA0 A17,o I2SC0_MCK,o PIO,I,PU,ST
99 D12 VDDIO PA1 WKUP1,i PWMC0_L0,o TIOB0 A18,o I2SC0_CK PIO,I,PU,ST
93 E12 VDDIO PA2 WKUP2,i PWMC0_H1,o - DATRG,i - PIO,I,PU,ST
91 F12 VDDIO PA3 PIODC0,i TWD0 LONCOL1,i PCK2,o - PIO,I,PU,ST
77 K12 VDDIO PA4 WKUP3/PIODC1,i TWCK0,o TCLK0,i UTXD1,o - PIO,I,PU,ST
73 M11 VDDIO PA5 WKUP4/PIODC2,i PWMC1_L3,o ISI_D4,i URXD1,i - PIO,I,PU,ST
114 B9 VDDIO PA6 - - PCK0,o UTXD1,o - PIO,I,PU,ST
35 L2 VDDIO PA7 XIN32,i - PWMC0_H3,o - - PIO,HiZ
36 M2 VDDIO PA8 XOUT32,o PWMC1_H3,o AF0.TRG,i - - PIO,HiZ
75 M12 VDDIO PA9 WKUP6/PIODC3,i URXD0,i ISI_D3,i PWMC0_FI0,i - PIO,I,PU,ST
66 L9 VDDIO PA10 PIODC4,i UTXD0,o PWMC0_EXTRG0,i RD,i - PIO,I,PU,ST
64 J9 VDDIO PA11 WKUP7/PIODC5,i QCS,o PWMC0_H0,o PWMC1_L0,o - PIO,I,PU,ST
68 L10 VDDIO PA12 PIODC6,i QIO1 PWMC0_H1,o PWMC1_H0,o - PIO,I,PU,ST
42 M3 VDDIO PA13 PIODC7,i QIO0 PWMC0_H2,o PWMC1_L1,o - PIO,I,PU,ST
51 K6 VDDIO PA14 WKUP8/PIODCEN1,i QSCK,o PWMC0_H3,o PWMC1_H1,o - PIO,I,PU,ST
49 L5 VDDIO PA15 - D14 TIOA1 PWMC0_L3,o I2SC0_WS PIO,I,PU,ST
45 K5 VDDIO PA16 - D15 TIOB1 PWMC0_L2,o I2SC0_DI,i PIO,I,PU,ST
25 J1 VDDIO PA17 AF0.6,i QIO2 PCK1,o PWMC0_H3,o - PIO,I,PU,ST
24 H2 VDDIO PA18 AF0.7,i PWMC1_EXTRG1,i PCK2,o A14,o - PIO,I,PU,ST
23 H1 VDDIO PA19 AF0.8/WKUP9,i - PWMC0_L0,o A15,o I2SC1_MCK,o PIO,I,PU,ST
22 H3 VDDIO PA20 AF0.9/WKUP10,i - PWMC0_L1,o A16,o I2SC1_CK PIO,I,PU,ST
32 K2 VDDIO PA21 AF0.1/PIODCEN2,i RXD1,i PCK1,o PWMC1_FI0,i - PIO,I,PU,ST
37 K3 VDDIO PA22 PIODCCLK,i RK PWMC0_EXTRG1,i NCS2,o - PIO,I,PU,ST
46 L4 VDDIO PA23 - SCK1 PWMC0_H0,o A19,o PWMC1_L2,o PIO,I,PU,ST
56 L7 VDDIO PA24 - RTS1,o PWMC0_H1,o A20,o ISI_PCK,i PIO,I,PU,ST
59 K8 VDDIO PA25 - CTS1,i PWMC0_H2,o A23,o MCCK,o PIO,I,PU,ST
62 J8 VDDIO PA26 - DCD1,i TIOA2,o MCDA2 PWMC1_FI1,i PIO,I,PU,ST
70 J10 VDDIO PA27 - DTR1,o TIOB2 MCDA3 ISI_D7,i PIO,I,PU,ST
112 C9 VDDIO PA28 - DSR1,i TCLK1,i MCCDA PWMC1_FI2,i PIO,I,PU,ST
129 A6 VDDIO PA29 - RI1,i TCLK2,i - - PIO,I,PU,ST
116 A10 VDDIO PA30 WKUP11,i PWMC0_L2,o PWMC1_EXTRG0,i MCDA0 I2SC0_DO,o PIO,I,PU,ST
118 C8 VDDIO PA31 - SPI0_NPCS1 PCK2,o MCDA1 PWMC1_H2,o PIO,I,PU,ST
21 H4 VDDIO PB0 AF0.10,i/RTCOUT0,o PWMC0_H0,o - RXD0,i TF PIO,I,PU,ST
20 G3 VDDIO PB1 AF1.0,i/RTCOUT1,o PWMC0_H1,o GTSUCOMP,o TXD0 TK PIO,I,PU,ST
26 J2 VDDIO PB2 AF0.5,i CANTX0,o - CTS0,i SPI0_NPCS0 PIO,I,PU,ST
31 J3 VDDIO PB3 AF0.2/WKUP12,i CANRX0,i PCK2,o RTS0,o ISI_D2,i PIO,I,PU,ST
105 A12 VDDIO PB4 TDI,i TWD1 PWMC0_H2,o MLBCLK,i TXD1 PIO,I,PU,ST
109 C10 VDDIO PB5 TDO/SWO,o
WKUP13,i
TWCK1,o PWMC0_L0,o MLBDAT TD,o O,PU
79 J11 VDDIO PB6 SWDIO
TMS,i
- - - - PIO,I,ST
89 F9 VDDIO PB7 SWCLK/TCK,i - - - - PIO,I,ST
141 A3 VDDIO PB8 XOUT,o - - - - PIO,HiZ
142 A2 VDDIO PB9 XIN,i - - - - PIO,HiZ
87 G12 VDDIO PB12 ERASE,i PWMC0_L1,o GTSUCOMP,o - PCK0,o PIO,I,PD,ST
144 B2 VDDIO PB13 DAC0,o PWMC0_L2,o PCK0,o SCK0 - PIO,I,PU,ST
11 E4 VDDIO PC0 AF1.9,i D0 PWMC0_L0,o - - PIO,I,PU,ST
38 J4 VDDIO PC1 - D1 PWMC0_L1,o - - PIO,I,PU,ST
39 K4 VDDIO PC2 - D2 PWMC0_L2,o - - PIO,I,PU,ST
40 L3 VDDIO PC3 - D3 PWMC0_L3,o - - PIO,I,PU,ST
41 J5 VDDIO PC4 - D4 - - - PIO,I,PU,ST
58 L8 VDDIO PC5 - D5 TIOA6 - - PIO,I,PU,ST
54 K7 VDDIO PC6 - D6 TIOB6 - - PIO,I,PU,ST
48 M4 VDDIO PC7 - D7 TCLK6,i - - PIO,I,PU,ST
82 J12 VDDIO PC8 - NWR0/NWE,o TIOA7 - - PIO,I,PU,ST
86 G11 VDDIO PC9 - NANDOE,o TIOB7 - - PIO,I,PU,ST
90 F10 VDDIO PC10 - NANDWE,o TCLK7,i - - PIO,I,PU,ST
94 F11 VDDIO PC11 - NRD,o TIOA8 - - PIO,I,PU,ST
17 F4 VDDIO PC12 AF1.3,i NCS3,o TIOB8 CANRX1,i - PIO,I,PU,ST
19 G2 VDDIO PC13 AF1.1,i NWAIT,i PWMC0_H3,o - - PIO,I,PU,ST
97 E10 VDDIO PC14 - NCS0,o TCLK8,i CANTX1,o - PIO,I,PU,ST
18 G1 VDDIO PC15 AF1.2,i NCS1/SDCS,o PWMC0_L3,o - - PIO,I,PU,ST
100 D11 VDDIO PC16 - A21/NANDALE,o - - - PIO,I,PU,ST
103 B12 VDDIO PC17 - A22/NANDCLE,o - - - PIO,I,PU,ST
111 B10 VDDIO PC18 - A0/NBS0,o PWMC0_L1,o - - PIO,I,PU,ST
117 D8 VDDIO PC19 - A1,o PWMC0_H2,o - - PIO,I,PU,ST
120 A9 VDDIO PC20 - A2,o PWMC0_L2,o - - PIO,I,PU,ST
122 A7 VDDIO PC21 - A3,o PWMC0_H3,o - - PIO,I,PU,ST
124 C7 VDDIO PC22 - A4,o PWMC0_L3,o - - PIO,I,PU,ST
127 C6 VDDIO PC23 - A5,o TIOA3 - - PIO,I,PU,ST
130 B6 VDDIO PC24 - A6,o TIOB3 SPI1_SPCK,o - PIO,I,PU,ST
133 C5 VDDIO PC25 - A7,o TCLK3,i SPI1_NPCS0 - PIO,I,PU,ST
13 F2 VDDIO PC26 AF1.7,i A8,o TIOA4 SPI1_MISO,i - PIO,I,PU,ST
12 E2 VDDIO PC27 AF1.8,i A9,o TIOB4 SPI1_MOSI,o - PIO,I,PU,ST
76 L12 VDDIO PC28 - A10,o TCLK4,i SPI1_NPCS1 - PIO,I,PU,ST
16 F3 VDDIO PC29 AF1.4,i A11,o TIOA5 SPI1_NPCS2,o - PIO,I,PU,ST
15 F1 VDDIO PC30 AF1.5,i A12,o TIOB5 SPI1_NPCS3,o - PIO,I,PU,ST
14 E1 VDDIO PC31 AF1.6,i A13,o TCLK5,i - - PIO,I,PU,ST
1 D4 VDDIO PD0 DAC1,o GTXCK,i PWMC1_L0,o SPI1_NPCS1 DCD0,i PIO,I,PU,ST
132 B5 VDDIO PD1 - GTXEN,o PWMC1_H0,o SPI1_NPCS2 DTR0,o PIO,I,PU,ST
131 A5 VDDIO PD2 - GTX0,o PWMC1_L1,o SPI1_NPCS3 DSR0,i PIO,I,PU,ST
128 B7 VDDIO PD3 - GTX1,o PWMC1_H1,o UTXD4,o RI0,i PIO,I,PU,ST
126 D6 VDDIO PD4 - GRXDV,i PWMC1_L2,o TRACED0,o DCD2,i PIO,I,PU,ST
125 D7 VDDIO PD5 - GRX0,i PWMC1_H2,o TRACED1,o DTR2,o PIO,I,PU,ST
121 A8 VDDIO PD6 - GRX1,i PWMC1_L3,o TRACED2,o DSR2,i PIO,I,PU,ST
119 B8 VDDIO PD7 - GRXER,i PWMC1_H3,o TRACED3,o RI2,i PIO,I,PU,ST
113 E9 VDDIO PD8 - GMDC,o PWMC0_FI1,i - TRACECLK,o PIO,I,PU,ST
110 D9 VDDIO PD9 - GMDIO PWMC0_FI2,i AF1.TRG,i - PIO,I,PU,ST
101 C12 VDDIO PD10 - GCRS,i PWMC0_L0,o TD,o MLBSIG PIO,I,PD,ST
98 E11 VDDIO PD11 - GRX2,i PWMC0_H0,o GTSUCOMP,o ISI_D5,i PIO,I,PU,ST
92 G10 VDDIO PD12 - GRX3,i CANTX1,o SPI0_NPCS2,o ISI_D6,i PIO,I,PU,ST
88 G9 VDDIO PD13 - GCOL,i - -,o - PIO,I,PU,ST
84 H10 VDDIO PD14 - GRXCK,i - -,o - PIO,I,PU,ST
106 A11 VDDIO PD15 - GTX2,o RXD2,i NWR1/NBS1,o - PIO,I,PU,ST
78 K11 VDDIO PD16 - GTX3,o TXD2 -,o - PIO,I,PU,ST
74 L11 VDDIO PD17 - GTXER,o SCK2 -,o - PIO,I,PU,ST
69 M10 VDDIO PD18 - NCS1/SDCS,o RTS2,o URXD4,i - PIO,I,PU,ST
67 M9 VDDIO PD19 - NCS3,o CTS2,i UTXD4,o - PIO,I,PU,ST
65 K9 VDDIO PD20 - PWMC0_H0,o SPI0_MISO GTSUCOMP,o - PIO,I,PU,ST
63 H9 VDDIO PD21 - PWMC0_H1,o SPI0_MOSI TIOA11 ISI_D1,i PIO,I,PU,ST
60 M8 VDDIO PD22 - PWMC0_H2,o SPI0_SPCK,o TIOB11 ISI_D0,i PIO,I,PU,ST
57 M7 VDDIO PD23 - PWMC0_H3,o - -,o - PIO,I,PU,ST
55 M6 VDDIO PD24 - PWMC0_L0,o RF TCLK11,i ISI_HSYNC,i PIO,I,PU,ST
52 M5 VDDIO PD25 - PWMC0_L1,o SPI0_NPCS1 URXD2,i ISI_VSYNC,i PIO,I,PU,ST
53 L6 VDDIO PD26 - PWMC0_L2,o TD,o UTXD2,o UTXD1,o PIO,I,PU,ST
47 J6 VDDIO PD27 - PWMC0_L3,o SPI0_NPCS3,o TWD2,o ISI_D8,i PIO,I,PU,ST
71 K10 VDDIO PD28 WKUP5,i URXD3,i -,i TWCK2,o ISI_D9,i PIO,I,PU,ST
108 D10 VDDIO PD29 - - - -,o - PIO,I,PU,ST
34 M1 VDDIO PD30 AF0.0,i UTXD3,o - - ISI_D10,i PIO,I,PU,ST
2 D3 VDDIO PD31 - QIO3 UTXD3,o PCK2,o ISI_D11,i PIO,I,PU,ST
4 C2 VDDIO PE0 AF1.11,i D8 TIOA9 I2SC1_WS - PIO,I,PU,ST
6 A1 VDDIO PE1 - D9 TIOB9 I2SC1_DO,o - PIO,I,PU,ST
7 B1 VDDIO PE2 - D10 TCLK9,i I2SC1_DI,i - PIO,I,PU,ST
10 E3 VDDIO PE3 AF1.10,i D11 TIOA10 - - PIO,I,PU,ST
27 K1 VDDIO PE4 AF0.4,i D12 TIOB10 - - PIO,I,PU,ST
28 L1 VDDIO PE5 AF0.3,i D13 TCLK10 - - PIO,I,PU,ST
136 B4 VUTMII HSDM - - - - - -
137 A4 VUTMII HSDP - - - - - -
83 H12 VDDIO NRST - - - - - I,PU
85 H11 VDDIO TST,i - - - - - I,PD
104 B11 VDDIO JTAGSEL,i - - - - - I,PD
9 D1 VDDIO VREFP,i - - - - - -
8 D2 GND VREFN,i - - - - - -
30 - VDDIO VDDIO - - - - - -
43 - VDDIO VDDIO - - - - - -
72 G8 VDDIO VDDIO - - - - - -
80 H6 VDDIO VDDIO - - - - - -
96 H7 VDDIO VDDIO - - - - - -
3 C3 VDDOUT VDDOUT - - - - - -
123 J7 VDDPLL VDDPLL - - - - - -
143 F8 VPLLU VPLLU - - - - - -
139 B3 VUTMIC VUTMIC - - - - - -
134 E7 VUTMII VUTMII - - - - - -
29 - VCORE VCORE - - - - - -
33 - VCORE VCORE - - - - - -
50 E8 VCORE VCORE - - - - - -
81 H5 VCORE VCORE - - - - - -
107 H8 VCORE VCORE - - - - - -
5 C1 VDDIN VDDIN - - - - - -
140 C4 - VBG,i - - - - - -
44 F5 GND GND - - - - - -
61 F6 GND GND - - - - - -
95 G4 GND GND - - - - - -
115 G5 GND GND - - - - - -
135 G6 GND GND - - - - - -
138 G7 GND GND - - - - - -
- D5 GNDANA GNDANA - - - - - -
- F7 GNDPLL GNDPLL - - - - - -
- E6 GPLLU GPLLU - - - - - -
- E5 GUTMI GUTMI - - - - - -

 
32k発振端子に注意(SAMD5x, E5x) 2019/4/15 追加
SAMD5x,E5xの32k発振端子(PA00,PA01)に水晶を接続する場合、少なくともPA01隣接端子(100pinならPC00端子)はレベル固定とします。さらにジッターを極力少なくするには、近辺の端子も固定とします。
パッケージ レベル固定必須端子 レベル固定推奨端子
100〜128pin PC00 PB00, PB01, PB02, PB03, PC01
64pin PA02* PB00, PB01, PB02, PB03, PA03
48pin PA02* PB02, PB03, PA03
 *:推奨レベルかもしれないが念のため
 
発振回路(SAMD5x, E5x) 2020/10/25 更新
 SAMD5x/SAME5xには、高速発振器3種類(5個)、低速発振器3種類を搭載しています。32k発振端子に関しては上述も参照してください。
名称 用途 出力周波数 精度 消費電流[μA] (typ.は25℃時, max.は85℃時)
DFLL48M 内部高速発振 48MHz open loop時:±1.7%(0〜60℃), -4.6%〜2.7%(-40〜85℃)
closed loop時はリファレンス周波数に依存
404typ., 854max.
DPLL0/1 逓倍発振(入力32k〜3.2MHz) 96〜200MHz 入力に依存 900typ. 1300max.(96MHz), 2000typ. 2300max.(200MHz)
XOSC0/1 外部水晶発振(高速) 8〜48MHz 外部発振子に依存 660max.(8MHz), 810max.(16MHz), 1090max.(16MHz), 1460max.(48MHz)。いずれもALC=ON時
OSCULP32K 内部超低電力発振 32.768kHz キャリブレーション無し時:-17%〜15%(-40〜85℃) データシートF版にも記載無し
XOSC32K 外部水晶発振(低速) 32.768kHz 外部発振子に依存 1.5typ., 2max.(通常ゲイン/ESR=58kΩmax.), 1.9typ., 3max.(高ゲイン/ESR90kΩmax.)

■DFLL48Mは、リセット解除後に自動的に発振し、クロック生成器0を経由してCPUへクロック供給します。

■XOSCnの消費電流を下げるにはALC(自動レベル制御)をONにします。ただし発振子がオーバートーン発振を起こさないよう確認が必要です。

■DPLLn(FDPLL200M)の逓倍率は、1/32単位で指定できます。整数部をLDR、分数部をLDRFRACとすると、
   発振周波数 = 入力周波数 x (LDR + 1 + LDRFRAC/32)   [ただし発振範囲は、96〜200MHz], [XOSC入力時は分周設定で3.2MHz以下にする]
となります。入力32.768kHzの場合、96MHz発振なら理論誤差0で逓倍できます(LDR = 2928, LDRFRAC = 22)。
リファレンス入力として、デフォルトのXOSC32K以外にXOSC0, XOSC1あるいはGCLKを選択できます。
 (2020/10/25 追記実際にSAME54-XPRO評価ボードで試してみたところ、入力32.768kHzで出力96MHzおよび120MHzはロックが頻繁に外れて安定に出力しませんでした。おそらくOSCCTRL.DPLLCTRLBレジスタの中のフィルターパラメータ(DCOFILTERおよびFILTER)やロックタイム(LTIME)を調整する必要があると思いますが、数種類試した範囲ではダメでした。入力2MHzおよび3MHz(原発振12MHz分周)の場合はデフォルトパラメータで安定しました。
 
クロック生成 GCLK(SAMD5x, E5x) 2020/10/25 更新
 発振回路等→クロック生成器→各種周辺回路、および周辺回路アクセス用のバス・クロックの順でクロックを供給します(一部除く)。
 SAMD5x/SAME5xにはクロック生成器が12個あり、生成器0のみリセット後も動作します。他の生成器はリセットで停止します。
クロック・ソース選択 クロック生成器分周設定  クロック供給先(代表例)(詳細後述)
設定値 ソース名称 生成器番号 分周範囲 (補足2参照) リセット時  選択可能生成器 対象ブロック
0 XOSC0 0 1/1〜1/n〜1/255,
1/2〜1/(2n+1)〜1/512
注意:速度を落としすぎると
デバッガが二度と反応しなく
なるかも?
DFLL,
1/1, 動作
生成器0のみ CPU、バス等(MCLK:メインクロック・コントローラ)
1 XOSC1 1 1/1〜1/n〜1/65535,
1/2〜1/(2n+1)〜1/131072
 停止 生成器0〜8 周辺回路ch0:DFLL48Mへのソースクロック
2 クロック入力端子
(ポート)
2 1/1〜1/n〜1/255,
1/2〜1/(2n+1)〜1/512
 停止    : (同上)   :
3 クロック生成器1
の出力
3  停止 生成器0〜8 周辺回路ch19:SERCOM0(シリアル・コミュニケーションI/F 0)
4 OSCULP32K 4  停止 生成器0〜8 周辺回路ch20:SERCOM1(シリアル・コミュニケーションI/F 1)
5 XOSC32K 5  停止    : (同上)   :
6 DFLL 6  停止 生成器0〜8 周辺回路ch30:TC0, TC1(基本タイマ)
7 DPLL0 7  停止    : (同上)   :
8 DPLL1 8  停止
9〜 予約 9〜11  停止 無し(32k系発振回路直接) RTC, WDT(Watchdog Timer), EIC(External Interrupt Cont.)

注意1:CPUから周辺回路をアクセスするためのバスクロックの供給/停止の選択はMCLKにおいて行います(対象周辺回路ごと)。詳細後述。
注意2:CPUから周辺回路のレジスタをアクセスする場合に同期化処理が必要になる場合があります(詳細後述)
補足1:MCLK(メイン・クロック・コントローラ)内で、さらに1/1〜1/128分周が可能です。
補足2:分周範囲はGENCTRLn.DIVSELの設定により1/nか1/(2n+1)が選択可能です。生成器0の出力を下げすぎるとデバッガが反応しなくなるかもしれません。SAMD5x/SAME5xは未確認ですが、SAMC21で生成器0を4MHz/512=7.8kHzに設定したらデバッガが反応しなくなりました(PICkit4, Snapとも)。

パス・クロック供給 2020/10/25 APBB.USBの対象名修正
 CPUから周辺回路をアクセスするには、メインクロック・コントローラ(MCLK)のレジスタ設定が必要です。ただし一部の周辺回路はデフォルトでイネーブルになっています(下表*印)。
 なお下表のAxx.yyは実際には、MCLK->AxxMASK.bit.yyとコーディングします。 
bit 対象 bit 対象 bit 対象
AHB.HPB0 *周辺バス・ブリッジA APBA.MCLK *メインクロック制御
AHB.HPB1 *周辺バス・ブリッジB APBA.RSTC *リセット制御
AHB.HPB2 *周辺バス・ブリッジC APBA.OSCCTRL *高速発振器制御 APBC.GMAC *Ethernet制御
AHB.HPB3 *周辺バス・ブリッジD APBA.OSC32KCTRL *低速発振器制御 APBC.TCC2 制御向きタイマ2
AHB.DSU *デバイス・サービス・ユニット APBA.SUPC *電源供給制御 APBC.TCC3 制御向きタイマ3
AHB.NVMCTRL *フラッシュ制御 APBA.GCLK *クロック生成 APBC.TC4 *汎用タイマ4
AHB.CMCC *キャッシュ制御 APBA.WDT *ウォッチドッグ APBC.TC5 汎用タイマ5
AHB.DMAC *DMAC APBA.RTC *時計 APBC.PDEC 位置デコーダ
AHB.USB *USB APBA.EIC *外部割込制御 APBC.AC コンパレータ
AHB.PAC *周辺アクセス保護 APBA.FREQM 周波数計 APBC.AES セキュリティ
AHB.QSPI *QSPI APBA.SERCOM0 シリアル通信0 APBC.TRNG 乱数生成
AHB.GMAC *Ethernet制御 APBA.SERCOM1 シリアル通信1 APBC.ICM ハッシュ・モニタ
AHB.SDHC0 *SDカード制御0 APBA.TC0 汎用タイマ0 APBC.QSPI *QSPI
AHB.SDHC1 *SDカード制御1 APBA.TC1 汎用タイマ1 APBC.CCL カスタム・ロジック
AHB.CAN0 *CAN0
AHB.CAN1 *CAN1 APBB.USB USB APBD.SERCOM4 シリアル通信4
AHB.ICM *ハッシュ・モニタ APBB.DSU *デバイス・サービス・ユニット APBD.SERCOM5 シリアル通信5
AHB.PUKCC *公開キー生成 APBB.NVMCTRL *フラッシュ制御 APBD.SERCOM6 シリアル通信6
AHB.QSPI_2X *QSPI APBB.PORT *ポート APBD.SERCOM7 シリアル通信7
AHB.NVMCTRL_SMEEPROM *フラッシュ制御 APBB.EVSYS イベント制御 APBD.TCC4 制御向きタイマ4
AHB.NVMCTRL_CACHE *フラッシュ制御 APBB.SERCOM2 シリアル通信2 APBD.TC6 汎用タイマ6
APBB.SERCOM3 シリアル通信3 APBD.TC7 汎用タイマ7
APBB.TCC0 制御向きタイマ0 APBD.ADC0 AD変換0
APBB.TCC1 制御向きタイマ1 APBD.ADC1 AD変換1
APBB.TC2 汎用タイマ2 APBD.DAC DA変換
APBA.PAC *周辺アクセス保護 APBB.TC3 汎用タイマ3 APBD.I2S I2S
APBA.PM *パワー管理 APBB.RAMECC *RAMエラー訂正 APBD.PCC パラレル転送

■クロック供給先一覧
 GCLK->PCHCTRL[周辺ch番号].bit.GEN に供給元の生成器番号を設定し、
 GCLK->PCHCTRL[周辺ch番号].bit.ENABLE を1にすれば供給します。
ch番号(定義名) 供給先 ch番号(定義名) 供給先 ch番号(定義名) 供給先
0 DFLL48Mリファレンス入力 16 イベント・チャネル5 32 コンパレータ
1 DPLL0リファレンス入力 17 イベント・チャネル6 33 カスタム・ロジック
2 DPLL1リファレンス入力 18 イベント・チャネル7 34 シリアル通信4(コア)
3 各種低速用(*) 19 イベント・チャネル8 35 シリアル通信5(コア)
4 外部割込制御 20 イベント・チャネル9 36 シリアル通信6(コア)
5 周波数計(測定用) 21 イベント・チャネル10 37 シリアル通信7(コア)
6 周波数計(参照用) 22 イベント・チャネル11 38 制御向きタイマ4
7 シリアル通信0(コア) 23 シリアル通信2(コア) 39 汎用タイマ6,7
8 シリアル通信1(コア) 24 シリアル通信3(コア) 40 AD変換0
9 汎用タイマ0,1 25 制御向きタイマ0,1 41 AD変換1
10 USB 26 汎用タイマ2,3 42 DA変換
11 イベント・チャネル0 27 CAN0 43 I2S
12 イベント・チャネル1 28 CAN1 44 I2S
13 イベント・チャネル2 29 制御向きタイマ2,3 45 SDカード制御0
14 イベント・チャネル3 30 汎用タイマ4,5 46 SDカード制御1
15 イベント・チャネル4 31 位置デコーダ 47 CM4トレース
*:DPLL, SDカード制御, シリアル通信で補助的に使用。シリアル通信の低速用は、I2Cの特定機能で使用(例えばSMBusタイミング)。

■レジスタ・アクセスの同期化処理
 周辺回路の一部のレジスタは、CPUバスからアクセスする場合に同期化処理が必要になります(CPUバスと周辺クロックの違いにより)。
 (1)書き込み時
   各周辺レジスタの中でレジスタのPropertyにWrite-Syncronizedと書かれているものは、
  同期待ち(Synchronization Busy)レジスタの対応フラグが1の間は「書き換え中」なのでアクセスしてはいけません。
   例えば、SERCOM USARTのCTRLBレジスタの中にRXEN(受信許可)、TXEN(送信許可)のビットがありますが、
  これをビット・アクセスで連続して書き換えるのはNGです。一般的には、ビットアクセスではなく、ワードアクセスでRXEN,TXENを同時に書き換えればよいのですが、
  何かの事情でどうしても1ビットづつ書き換えたい場合は、ビジーフラグが0になってから次のアクセスします。
     例(この例は例外だが、他のレジスタでは必要になる場合があるかも):
        SERCOM1->USART.CTRLB.bit.RXEN = 1;
        while (SERCOM1->USART.SYNCBUSY.bit.CTRLB);
        SERCOM1->USART.CTRLB.bit.TXEN = 1;

 (2)読み出し時
   レジスタのPropertyにRead-Synchronizedと書かれているものは、このレジスタの読み出しに先だって「読み出し要求(作法は周辺回路による)」を行って、
  同期待ち(Synchronization Busy)レジスタの対応フラグが0に戻ってから読み出しを行います。
     例(カウンタ値の読み出し):
        TC0->COUNT16.CTRLBSET.bit.CMD = 4;  //カウント値の読み出し要求.
        while (TC0->COUNT16.SYNCBUSY.bit.COUNT);
        (格納先) = TC0->COUNT16.COUNT.reg;
 
フラッシュ(SAMD5x, E5x) 2020/10/10 追加
 SAMD5x/SAME5xは、リセット解除後のフラッシュのリードウエイト数は自動的に決定されます(NVMCRTL.CTRLA.AUTOWSの初期値1)。
 手動でリードウエイト数を設定する場合は、NVMCRTL.CTRLA.RWSにウエイト数を設定し、その後でNVMCRTL.CTRLA.AUTOWSを0にします。
 ウエイト数に対する最大動作速度[MHz]を下表に示します。通常品の場合です(品名に-EFPが付くものは下記より遅くなります)。
デバイス (電圧) wait0 wait1 wait2 wait3 wait4 wait5
2.7V超 24 51 77 101 119 120
2.7V以下 22 44 67 89 111 120

 耐久性は、書き込み回数 10,000回(min)、10,000回書き込み後の保持年数は20年(min)です(Ta=85℃)。
 書込/消去の速度は、ページ書込3ms(max)、ブロック消去200ms(max)、チップ消去は6.4s(typ)、25s(max)です。
 
メモリマップ(SAMD5x, E5x) 2020/10/10 追加
■リトル・エンディアン
■メモリ・マップ(コア機能以外も含む)
アドレス範囲 区分 アドレス 用途 D51 E51 E53 E54
0〜  コード領域
(内蔵Flash等)
0〜 ベクタ・テーブル(詳細次表)、プログラム・コード
0x0080 0080〜
0x0080 0085
ADC,USB調整データ
使用時は必ず読取って設定のこと(DS 9.5参照)
0x0080 0100〜
0x0080 010F
温度補正データ
使用時は必ず読取って設定のこと(DS 9.5参照)
0x0080 4000〜
0x0080 401F
パワーオン時自動反映(DS 9.4参照)
0x0080 61FC,
0x0080 6010〜
シリアル番号(128bit) (DS 9.6参照)
ブート領域 (DS 25.6.2-53参照)
SmartEEPROM領域 (DS 5.6.2-6参照)
0x0300 0000〜 CMCC(キャッシュ・コントローラ)
0x0400 0000〜 QSPI(直接コード実行可能)
0x2000 0000〜 内蔵RAM 0x2000 0000〜 内蔵RAM
0x4000 0000〜 周辺ブリッジA 0x4000 0000〜 PAC, PM, MCLK, RSTC
0x4000 1000〜 OSCCTRL, OSC32KCTRL, SUPC, GCLK
0x4000 2000〜 WDT, RTC, EIC, FREQM
0x4000 3000〜 SERCOM0, SERCOM1, TC0, TC1
0x4100 0000〜  周辺ブリッジB  0x4100 0000〜 USB, DSU, NVMCTRL, CMCC, PORT, DMAC, EVSYS
0x4101 0000〜 SERCOM2, SERCOM3, TCC0, TCC1, TC2, TC3
0x4102 0000〜 RAMECC
0x4200 0000〜 周辺ブリッジC 0x4200 0000〜 CAN0, CAN1
0x4200 0800〜 GMAC
0x4200 0C00〜 TCC2, TCC3, TC4, TC5, PDEC, AES, TRNG, ICM
0x4200 3000〜 PUKCC, QSPI, CCL
0x4300 0000〜  周辺ブリッジD  0x4300 0000〜 SERCOM4〜SERCOM7, TCC4, TC6, TC7, ADC0
0x4300 2000〜 ADC1, DAC, I2S, PCC
0xE000 0000〜 コア内機能 0xE000 0000〜 システム制御、システム・タイマ、多重割込み制御
(32bitアクセスのみ可能)

■ベクター・テーブル
テーブル先頭からの
オフセット(ワード単位)
内容
0 リセット時のスタック・ポインタのロード値
1 リセット
2 NMI
3 ハード不良検出
4 メモリ管理不正
5 バス不正
6 使用方法不正
7-10 予約
11 SVCall
12 デバッグ・モニタ
13 予約
14 PendSV
15 システム・タイマ
16 多重割込み(NVIC)0 以下詳細は「多重割込制御」参照
17 多重割込み1
152 多重割込み136
割込みには、12クロックかかるようです。ハードウエアでスタックへ自動退避されるのは戻りアドレス、ステータス・レジスタの他に6本(R0〜R3,R12,R14(リンクレジスタ))あります。

 
多重割込制御 NVIC(SAMD5x, E5x) 2020/10/10 追加
■SAMD5x/SAME5xには137要因の割込み入力があります。
■制御レジスタ(32bitアクセスのみ可)は合計55本あります。NVIC_ISER〜NVIC_ICPRはレジスタ[0]のbit0〜bit31が割込み要因0〜31、レジスタ[1]のbit0〜が割込み要因32〜に対応しています。
アドレス 名称 内容 初期値 詳細
0xE000 E100〜
(5ワード)
NVIC_ISER0〜
NVIC_ISER4
割込み許可 0 リード:割込み許可状態を読み取れます。
ライト:1を立てたbitに対応した割込みを許可します。0のbitは許可/禁止状態を変更しません。
0xE000 E180〜
(5ワード)
NVIC_ICER0〜
NVIC_ICER4
割込み禁止 0 ライト:1を立てたbitに対応した割込みを禁止します。0のbitは許可/禁止状態を変更しません。
0xE000 E200〜
(5ワード)
NVIC_ISPR0〜
NVIC_ISPR4
割込み発生 0 リード:割込み発生状態を読み取れます。
ライト:1を立てたbitに対応した割込みを強制的に発生します。0のbitは影響しません。
0xE000 E280〜
(5ワード)
NVIC_ICPR0〜
NVIC_ICPR4
割込みクリア 0 ライト:1を立てたbitに対応した割込みをクリアします。0のbitは影響しません。
0xE000 E400〜
(35ワード)
NVIC_IPR0〜
NVIC_IPR11
優先順序設定 0 割込み要因に対応して1バイト毎に割込みの優先順序を設定します(上位3bitのみ有効)。
アクセスは1ワード単位なので、bit7-5, bit15-13, bit23-21, bit31-29を設定することになります。
設定値000が高優先、111が低優先です。

■割込みソース対応
番号 割込みソース 番号 割込みソース 番号 割込みソース 番号 割込みソース 番号 割込みソース 番号 割込みソース
0 PM 23 EIC-EXTINT11 46 SERCOM0-0 69 SERCOM5-3〜7 92 TCC1-下記以外 115 PDEC-下記以外
1 MCLK 24 EIC-EXTINT12 47 SERCOM0-1 70 SERCOM6-0 93 TCC1-MC0 116 PDEC-MC0
2 OSCCTRL-XOSC0系 25 EIC-EXTINT13 48 SERCOM0-2 71 SERCOM6-1 94 TCC1-MC1 117 PDEC-MC1
3 OSCCTRL-XOSC1系 26 EIC-EXTINT14 49 SERCOM0-3〜7 72 SERCOM6-2 95 TCC1-MC2 118 ADC0-下記以外
4 OSCCTRL-DFLL系 27 EIC-EXTINT15 50 SERCOM1-0 73 SERCOM6-3〜7 96 TCC1-MC3 119 ADC0-RESRDY
5 OSCCTRL-DPLL0系 28 FREQM 51 SERCOM1-1 74 SERCOM7-0 97 TCC2-下記以外 120 ADC1-下記以外
6 OSCCTRL-DPLL1系 29 NVMCTRL-0〜7 52 SERCOM1-2 75 SERCOM7-1 98 TCC2-MC0 121 ADC2-RESRDY
7 OSC32KCTRL 30 NVMCTRL-8〜10 53 SERCOM1-3〜7 76 SERCOM7-2 99 TCC2-MC1 122 AC
8 SUPC-下記以外 31 DMA-0ch 54 SERCOM2-0 77 SERCOM7-3〜7 100 TCC2-MC2 123 DAC-下記以外
9 SUPC-BOD33DET 32 DMA-1ch 55 SERCOM2-1 78 CAN0 101 TCC3-下記以外 124 DAC-EMPTY0
10 WDT 33 DMA-2ch 56 SERCOM2-2 79 CAN1 102 TCC3-MC0 125 DAC-EMPTY1
11 RTC 34 DMA-3ch 57 SERCOM2-3〜7 80 USB-下記以外 103 TCC3-MC1 126 DAC-RESRDY0
12 EIC-EXTINT0 35 DMA-4〜31ch 58 SERCOM3-0 81 USB-SOF HSOF 104 TCC4-下記以外 127 DAC-RESRDY1
13 EIC-EXTINT1 36 EVSYS-0 59 SERCOM3-1 82 USB-TRCPT0 105 TCC4-MC0 128 I2S
14 EIC-EXTINT2 37 EVSYS-1 60 SERCOM3-2 83 USB-TRCPT1 106 TCC4-MC1 129 PCC
15 EIC-EXTINT3 38 EVSYS-2 61 SERCOM3-3〜7 84 GMAC 107 TC0 130 AES
16 EIC-EXTINT4 39 EVSYS-3 62 SERCOM4-0 85 TCC0-下記以外 108 TC1 131 TRNG
17 EIC-EXTINT5 40 EVSYS-4〜11 63 SERCOM4-1 86 TCC0-MC0 109 TC2 132 ICM
18 EIC-EXTINT6 41 PAC 64 SERCOM4-2 87 TCC0-MC1 110 TC3 133 PUKCC
19 EIC-EXTINT7 42 65 SERCOM4-3〜7 88 TCC0-MC2 111 TC4 134 QSPI
20 EIC-EXTINT8 43 66 SERCOM5-0 89 TCC0-MC3 112 TC5 135 SDHC0
21 EIC-EXTINT9 44 67 SERCOM5-1 90 TCC0-MC4 113 TC6 136 SDHC1
22 EIC-EXTINT10 45 RAMECC 68 SERCOM5-2 91 TCC0-MC5 114 TC7

■割込み優先制御
 ・同時に複数の割込み要求が発生した場合、割込み優先順序レジスタの設定値が小さい方を優先します。
  優先順序レジスタの設定値が同じ場合は、ベクタ番号の若い方を優先します。
 ・初期状態では、どの優先度の割込みも受付可能です。
 ・多重割込み(ある割込みを受付けている中で他の割込みを許可)の場合、新たな割込みの優先順序レジスタの設定値が現在の割込みの値より小さい場合に受付可能です。