...

Stellaris 概要 - Texas Instruments Wiki

by user

on
Category: Documents
7

views

Report

Comments

Transcript

Stellaris 概要 - Texas Instruments Wiki
Stellaris 概要
Module Topics
Stellaris 概要 .............................................................................................................................................. 1-1
Stellaris ブロック図 .............................................................................................................................. 1-2
Cortex-M3 を見てみましょう .............................................................................................................. 1-3
Cortex-M3 アーキテクチャ.............................................................................................................. 1-3
Stellaris の全体像 .................................................................................................................................. 1-8
Stellaris の特徴 .................................................................................................................................. 1-8
Stellaris 評価キット .........................................................................................................................1-10
StellarisWare .....................................................................................................................................1-11
フラッシュ・プログラマー ...........................................................................................................1-12
Lab1 LM Flash Programmer を使う ....................................................................................................1-13
Stellaris 評価キットと PC の接続...................................................................................................1-13
LM Flash Programmer を使ったプログラムの書き込み ..............................................................1-14
Stellaris 1day Workshop –Stellaris outline
1-1
Stellaris ブロック図
Stellarisブロック図
ARM® Cortex™-M3 v7-M プロセッサ・コア


~ 100 MHz
~ 125 MIPS(100 MHz 動作時)


~256 KB フラッシュ / 96 KB SRAM
ROM には、Stellaris DriverLib、ブートローダ、AES テーブル、
CRC を内蔵
オンチップ・メモリ
外部ペリフェラル・インターフェイス(EPI)


外部ペリフェラルに対応した 32 ビット専用パラレル・バス
SDRAM、SRAM/フラッシュ、M2M をサポート







10/100 イーサネット MAC + PHY
3 つの CAN 2.0 A/B コントローラ
USB(フル・スピード) OTG / ホスト / デバイス
3 つの UART(IrDA および ISO 7816 をサポート*)
2 つの I2C
2 つの同期シリアル・インターフェイス(SSI)
インテグレーテッド・インターチップ・サウンド(I2S)





32 チャネル DMA コントローラ
内部精度 16MHz オシレータ
別々のクロック・ドメインを備えた 2 つのウォッチドッグ・タイマ
ARM Cortex Systick タイマ
RTC 機能を備えた 4 つの 32 ビット・タイマ
(最大で 8 つの 16 ビット・タイマ)
低消費電力のバッテリ・バックアップ機能付きハイバネーショ
ン・モジュール
豊富なシリアル・インターフェース
システム統合

高度なモーション・コントロール

8 個の高度な PWM 出力
(モーション・アプリケーションおよびエネルギー・アプリケーショ
ンに対応)
2 つの直交エンコーダ入力(QEI)



2 つの 8 チャネル 10 ビット ADC(合計で 16 チャネルに対応)
2
3 つのアナログ・コンパレータ
オンチップ電圧レギュレータ(1.2V の内部動作)

アナログ
Cortex™-M3の位置付け
ARMv7-A
x1-4
A
Cortex-A9
Cortex-A8
ARMv6
ARM1176JZ(F)-S
ARM1156T2(F)-S
ARM1136J(F)-S
R
ARMv7-R
Cortex-R4F
ARMv5
ARM1026EJ-S
Cortex-R4
ARM968E-S
ARM926EJ-S
ARM946E-S
ARM966E-S
ARM7EJ-S
M
ARMv7-M
ARMv4
ARM920T
Cortex-M3
ARM922T
ARM7TDMI(S)
1-2
Cortex-M1
Stellaris 1day Workshop – Stellaris outline
Cortex-M3 を見てみましょう
Cortex-M3 アーキテクチャ
ARM® Cortex™-M3とは?


Cortexファミリのプロセッサは、あらゆる必要性能レベルにわたり、特
定市場向けのアプリケーションに最適化した多様なソリューションを
提供
ARM Cortexファミリは、3シリーズで構成され、全シリーズともに
Thumb-2命令セットを実装し、多様な市場における性能とコストの要
求に対応
 ARM Cortex-A シリーズ



ARM Cortex-R シリーズ



複雑なOSおよびユーザ・アプリケーション向けのアプリケーション・
プロセッサ
ARM、Thumb、Thumb-2命令セットをサポート
リアルタイム・システム向けの組込みプロセッサ
ARM、Thumb、Thumb-2命令セットをサポート
ARM Cortex-M シリーズ

コストを重視するアプリケーションに最適化した
ディープ・エンベデッド・プロセッサ
Thumb-2命令セットのみをサポート

Note:
• ARM Code 32-bit
• Thumb Code 16-bit
• Thumb-2 Code mostly 16-bit & some 32-bit (25% Faster, 26% Smaller)
Cortex™-M3 コアの特徴





フラッシュ・メモリの使用に最適化され
たアーキテクチャ
シングル・サイクルの乗算命令、および
ハードの除算命令
Thumb2 16-/32-ビット混在命令セット
– モード切り替え不要
1.25 DMIPS/MHz - ARM7 や ARM9
より高性能
確定的な高速割り込み処理:




Stellaris 1day Workshop – Stellaris outline
処理開始まで通常12サイクル、最低6
サイクル
C言語との親和性 – 割り込みハンドラ
をCの関数で記述可
クロック・ゲーティングを使用した3つの
スリープ・モードによる低消費電力
データ・ブレークポイント、フラッシュ・パ
ッチなどの充実したデバッグ機能
1-3
一貫した命令セット = ARM7 Thumbがベース
ARM7(Thumb) → Cortex-M0 → Cortex-M3への上位互換

ADC
ADD
ADR
AND
ASR
BFC
BFI
BIC
CDP
CLREX
CMP
LDMIA
BKPT
BLX
ADC
LDRBT
BX
CPS
AND
ADD
ASR
CMN
DBG
EOR
LDC
ADR
LDMDB
LDR
LDRB
B
LDRD
LDREX
LDREXB
LDRH
LDRHT
LDRSB
CMP
EOR
LDRSHT
LDRSH
LDRT
LDR
LDRB
LDM
LSL
LSR
MLS
LDRH
LDRSB
LDRSH
MLA
MOV
MOVT
MVN
DMB
LDRSBT
DSB
CMN
MCR
ISB
MCRR
MRS
BL
MSR
CLZ
CBZ
BIC
LDREXH
MRC
B
CBNZ
LSL
LSR
MOV
MRRC
MUL
NOP
NOP
REV
MUL
MVN
ORR
ORN
ORR
PLD
PLDW
REV16
REVSH
POP
PUSH
ROR
PLI
POP
PUSH
REVSH
RBIT
SEV
SXTB
RSB
SBC
STM
REV
REV16
ROR
SXTH
UXTB
STR
STRB
STRH
RRX
RSB
SBC
SBFX
UXTH
WFE
SUB
SVC
TST
SDIV
SEV
SMLAL
SMULL
WFI
YIELD
CORTEX-M0
STMDB
SSAT
STC
STMIA
STR
STRB
STRBT
STRT
STRD
STREX
STREXB
STREXH
STRH
STRHT
SUB
SXTB
SXTH
TBB
TBH
TEQ
TST
UBFX
UDIV
UMLAL
UMULL
USAT
UXTB
UXTH
WFE
WFI
YIELD
IT
CORTEX-M3
Present in ARM7TDMI
シンプルなレジスタセット

R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13(SP)
R14(LR)
R15(PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8_fiq
R9_fiq
R10_fiq
R11_fiq
R12_fiq
R13_fiq
R14_fiq
R15(PC)
CPSR
SPSR_fiq
User/
FIQ
System
従来のARM
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13_svc
R14_svc
R15(PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13_abt
R14_abt
R15(PC)
SPSR_svc SPSR_abt
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13_und
R14_und
R15(PC)
SPSR_irq
SPSR_und
SVC Abort IRQ Undef
レジスタ 37個
1-4

R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13_irq
R14_irq
R15(PC)
Cortex-M3
R0
R0
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
R9
R9
(切り替えない事も可)
R10
R10
R11
R11
R12
R12
R13(SP) SP_main R13(SP) SP_process
R14(LR)
R14(LR)
R15(PC)
R15(PC)
スタック・ポインタ
だけが切り替わる
xPSR
xPSR
特権
非特権
スレッドモード
スレッドモード
ハンドラモード
レジスタ 18個
Stellaris 1day Workshop – Stellaris outline
シンプルな実行モード
基本的なシステム



RTOSを使うシステム
一つのスタックでシンプルな構成


OSとユーザルーチンで特権レベル
を変え、
システムの保護を行うことができる
スタックを分離することができる
Reset
Reset
特権レベル
スレッドモード
ネスト
ハンドラモード
特権レベル
初期化ルーチン
スレッドモード
メインルーチン
モニタなど
初期化ルーチン
OSカーネルなど
ネスト
ハンドラモード
割り込みルーチン
メインスタック
割り込みルーチン
メインスタック
スタック切り替え
スレッドモード
非特権レベル
ユーザルーチン
プロセススタック
アンアラインドデータアクセス


データを詰めてメモリを有
効利用することができる
パックされた通信データなど
はそのままアクセスできる


必要により自動的に複数のバス
サイクルが発生
プログラム処理が簡略化できる
例)
struct pk_data {
char
int
char
short
};
a;
b;
c;
d;
// 1バイト
// 4バイト
// 1バイト
// 2バイト
ARM7TDMI-Sはアンア
ラインドデータをサポート
していない
ARM Cortex-M3はア
ンアラインドデータをサ
ポート
char
char
int
int
char
short
char
short
データはワード
境界で整列する
必要がある
無駄な空間
Stellaris 1day Workshop – Stellaris outline
空き
1-5
メモリ/ペリフェラルのビット操作



Bit band regionはビット単位でアクセ
スも出来る領域(1/2/4バイトも可)
データとペリフェラルに固定したアドレ
スが割り当てられている
Bit band regionの特定のビットは対
応するBit band areasへのワード単位
の1命令の書き込みで可能

例)0x2000000a番地のbit3を1
にする
C言語の例:
*((int *)(0x22000000+0xa*32+3*4)) = 1;
Bit band areasのアクセスアドレス =
bit band areasのベースアドレス+
バイトオフセット×32+
Bit band areas 32MB
ビット番号 × 4
通常のペリフェラル31MB
Bit band region 1MB
ペリフェラル 0.5GB
0x40000000
Bit band areas 32MB
SRAM 0.5GB
0x20000000
通常のデータ 31MB
コード 0.5GB
Bit band region 1MB
0x00000000
アセンブラは不要!

アセンブラ不要の割り込みハンドラ




ASM
ベクタ・テーブルの設定もC言語で



割り込みハンドラはC言語で簡単に記述可能
#pragmaやinterrupt修飾子などは不要
割り込みハンドラのネストも特別なケアは必要なし
命令コードではなく、ハンドラのアドレスを指定
関数ポインタの配列により設定可能
ブート・コードもC言語で可能

ハードによるスタック・ポインタの設定
C/C++
2010/1/6
1-6
Stellaris 1day Workshop – Stellaris outline
充実したデバッグ機能

基本デバッグ機能




フラッシュ・パッチ / ブレークポイント




4個のハードウェア・ウォッチポイント
ハードウエア・トリガによるプログラム・カウンタの
サンプリング
プロファイリングサポート


6個のハードウェア・ブレークポイント
フラッシュ・メモリ領域をSRAMか
システム・アドレス空間に再マッピング可能
データ・ウォッチポイントとトリガ(DWT)


コアの停止、リセット、ステップ実行
NVIC中の全ての割り込み関連の情報の取得
すべてのメモリとレジスタへのアクセス(DAP経由)
各種動作時間の計測
SWV (Serial Wire Viewer)

DWTなどのトレース情報をチップ外部に出力
メモリマップ
CortexCortex-M3では空間の使い方も定義しています
リザーブ
NVIC
EPI接続の
EPI接続の
外部空間
内部ペリフェラル
内部SRAM
内部SRAM
内部Flash
内部Flash
Stellaris 1day Workshop – Stellaris outline
1-7
Stellaris の全体像
Stellaris の特徴
4 世代にわたるStellaris
Tempest
DustDevil
Fury
Sandstorm
64KB フラッシュ
8KB SRAM
モーション・コントロール
1MSPS ADC
2006
256KB フラッシュ
64KB SRAM
モーション・コントロール
イーサネット MAC+PHY
CAN 2.0
イーサネット+CAN
128KB フラッシュ
64KB SRAM
モーション・コントロール
を機能拡張
USB 2.0
OTG/Host/Device
32 チャネル DMA
より高い性能
低消費電力
ETH+CAN+USB OTG
外部バスの能力
I2S
高精度 OSC
Low power
最高100MHz
USB搭載
DMA搭載
モーション・コントロール IP
50MHzシングル・サイクルFlash
2007
2008
2009
Ethernet対応
CAN対応
最大256KB
2011
2010
LM3S100シリーズからLM3S9000シリーズまで約160の製品群
※デバイス・クラスはDID (Device Identification)レジスタのCLASSフィールド値により区別できます
シングル・サイクルのフラッシュ・メモリ(最高 50MHz)
 ARM7 や Cortex-M3を使用した、より高速なコア・スピードをうたっている競合他社様もあ
りますが、フラッシュ・メモリがシングル・サイクルではないチップがあります。
 また、シングル・サイクルをうたっている競合他社様もありますが、最大のコア・スピードに
制限があります。
ベンダー
MCU ライン
フラッシュ・アクセ
ス・タイム
20MHz CPU
フラッシュ・アクセ
ス・タイム
25MHz CPU
フラッシュ・アクセ
ス・タイム
50MHz CPU
測定単位
Texas
Instruments
ST Micro
Atmel
Stellaris
1
1
1
1
サイクル
STM32
AVR8
1
1
2
N/A
3
N/A
サイクル
サイクル
50MHz以上のコア・スピード動作時には、プリフェッチ・バッファを使いリニア・アドレ
ッシング ルーチンのノー・ウェイト動作を実現しています。
2010/1/6
1-8
注)フラッシュ・メモリへのアクセス仕様は、各社発行のデータシートより
17
Stellaris 1day Workshop – Stellaris outline
豊富なコネクティビティを手軽に
 10/100イーサネットMAC+PHY
 CAN2.0A/Bコントローラ
 USB
(Full speed) OTG/Host/Device
 UART/I2C/I2S/SSI
医療、工業、放送、通信、セキュリティ、ビル管理、アミューズメント、…
幅広い分野で汎用的にお使いいただくために
2010/1/6
18
MCUセレクションツール
Stellaris 1day Workshop – Stellaris outline
1-9
Stellaris 評価キット
Stellaris 評価キット ”Zero-to-32bits in 10 minutes”
• 10 分以内で立ち上げ動作させる上で必要なものを全て提供
• 評価ボード、ケーブル類、各種開発ツール、技術資料、StellarisWare ソフトウェ
ア、アプリケーション・ノート
• Stellaris製品共通のシリアル・インサーキット・デバッグ・インターフェイスとしても機能
するため、アプリケーションの評価キット上の検証から、プロトタイプ作成に至るまで
広範囲に使用可能
EK-LM3S811
少ピン数
49 米ドル
EK-LM3S1968
多ピン数
59 米ドル
EK-LM3S2965
CAN 通信機能
79 米ドル
EK-LM3S3748
USB ホスト/デバイス
109 米ドル
EK-LM3S6965
Ethernet MAC+PHY
69 米ドル
EK-LM3S8962
Ethernet+CAN
89 米ドル
EK-LM3S9B90
Ethernet+USB OTG
99 米ドル
EK-LM3S9B92
Ethernet+OTG+MC
99 米ドル
4 種類の開発ツールから選択:
EKK-LM3Sx
ARM RealView Microcontroller Development Kit tools(32KB のアドレス制限)
EKI-LM3Sx
IAR Embedded Workbench KickStart(32KB のアドレス制限)
EKC-LM3Sx
CodeSourcerySourcery G++ GNU(30 日間評価ライセンス)
EKT-LM3Sx
Code Red Technologies Red Suite(フル評価ライセンスをボードに組み込み) 20
Stellaris評価キット:EK-LM3S9B92
$99
参考価格


LM3S9B92を搭載した評価ボード
インサーキット・デバッグ・インターフェイス(BD-ICDI)ボード



ケーブル



1 - 10
PC の USB ポートおよび評価ボードの 10 ピン ARM JTAG コネクタへ接続
8 ピン電源/UART コネクタで、実際の COM ポートから評価ボードへ電力を供給
USB miniB - USB-A 変換ケーブル、USB-µA - USB-A メス型変換ケーブル、
USB-µB - USB-A オス型変換ケーブル
21
JTAG/SWD 接続用 10 ピン・リボン・ケーブル、電源/UART 接続用 8 ピン・リボン・ケーブル
CD-ROM には、評価ソフトウェア・ツール、技術資料、ソース・コード、回路図を収録
Stellaris 1day Workshop – Stellaris outline
EK-LM3S9B92:ボード拡大図
電源切り替えスイッチ
ユーザー・スイッチ
USB OTG
マイクロ
コネクタ
電源/UART
Ethernet
JTAG
パワーLED
リセット・スイッチ
ユーザーLED
StellarisWare
Introducing
フリー・ライセンスかつロイヤリティ・フリーのソース・コード付ライブラリ
 ペリフェラル・ドライバ・ライブラリ
 グラフィックス・ライブラリ
 USB ライブラリ
 ブート・ローダ
 IEC 60730 ライブラリ
Stellaris MCUでの開発をスムーズ
に行っていただくために評価/製品
開発時に必要なソフトウェアをライ
ブラリとして提供
チップの制御方法把握のためだけ
でなく、WebサーバーやUSBメモリ
など一つのアプリケーションとして
動作するサンプルプログラムを同封
※弊社Webサイトからダウンロード可能
※IEC60730ライブラリについてはアプリケーション・ノート(AN01272)を参照
Stellaris 1day Workshop – Stellaris outline
1 - 11
フラッシュ・プログラマー
フラッシュ・プログラマー

LM Flash Programmer(LMFlash.exe)



わかりやすいグラフィカル・ユーザー・インターフェイス
すべての評価キットをサポート
主な特長は次のとおり




2010/1/21
1 - 12
Program(プログラム)
Verify(検証)
Erase(消去)
Read memory(メモリのリード)
22
Stellaris 1day Workshop – Stellaris outline
Lab1 LM Flash Programmer を使う
Lab1:LM Flash Programmerを使う
いろいろなサンプル・プログラムを動かしてみましょう!
Stellaris 評価キットと PC の接続
ソフトウェアは全てインストール済みですので、ボートと PC を USB ケーブルにて接続
すると LM Flash Programmer からプログラムを書き込めるようになります。
1. ボードが正しく認識されていることを確
認します。0
USB ケーブルでボードと PC を接続し、
ウィンドウズのコントロールパネルから
システムを開きます。「ハードウェア」
タブをクリックし、「デバイスマネージ
ャ」ボタンをクリックしてデバイスマネ
ージャを開きます。右図のように USB
(Universal Serial Bus)コントローラのツ
リーに Stellaris ICDI Board A 及び Stellaris
ICDI Board B、ポート(COM と LPT)に
Stellaris ICDI COM port(COMxx)があるこ
とを確認してください。
Stellaris 1day Workshop – Stellaris outline
1 - 13
LM Flash Programmer を使ったプログラムの書き込み
2. LM Flash Programmer を起動します。
デスクトップにある LM Flash Programmer アイコンをダブルクリックしてください。
3. 評価ボードを選択します。
使用するボードを Configuration タブの Quick Set プルダウンメニューから選択してく
ださい。
4. サンプルプログラムを選択します。
Program タブの Select .bin file 内にある Browse ボタンをクリックし、書き込む.bin フ
ァイルを選択します。サンプルプログラムは C:\StellarisWare\boards\<評価キット名>
1 - 14
Stellaris 1day Workshop – Stellaris outline
フォルダに多数収録されています。ここでは”usb_host_msc”サンプルをもとに手順を
紹介します。
.bin ファイルは C:\StellarisWare\boards\<評価キット名>\usb_host_msc\ccs\Debug フォ
ルダにありますので選択してください。
.bin ファイル選択後 Program ボタンをクリックするとプログラムの書き込みが始まり
ます。LM Flash Programmer ウィンドウの最下部に表示されるスクロールが 100%に
到達し、”Program Complete”と表示されると書き込み完了です。
Stellaris 1day Workshop – Stellaris outline
1 - 15
5. “usb_host_msc”サンプルプログラムの動作を確認します。
このサンプルプログラムは Stellaris の USB ホスト機能を使い、USB マス・ストレー
ジ・クラスを使ってファイルシステムを読み出すデモ・ソフトウェアです。ボード
に USB メモリを接続し、USB メモリにあるファイルシステムの内容を PC のターミ
ナルソフトに表示します。
まずはボードに USB メモリを接続してください。
次に PC のターミナルソフトを起動してください。ターミナルソフトの設定は手順
1にて確認した COM 番号へ Serial ポート接続するようにし、詳細設定にてボーレー
ト 115200bps、データ 8bit、パリティなし、ストップビット 1bit としてください。下
図は TeraTerm での設定例になります。
1 - 16
Stellaris 1day Workshop – Stellaris outline
次にボードのリセット・プッシュスイッチを押しプログラムを最初から実行させま
す。すると下図のようなコマンドライン入力がターミナルに表示されま
す。”help<Enter>”、”ls<Enter>”など入力し USB メモリ内のファイルシステム情報が
表示されることを確認してください。
Stellaris 1day Workshop – Stellaris outline
1 - 17
6. 他のサンプルプログラムに書き換え、動作を確認します。
他のサンプルプログラムの.bin ファイルを LM Flash Programmer で書き込み、試して
ください。動作内容は各サンプルプログラムのフォルダ C:\StellarisWare\boards\<評
価キット名>\<サンプルプログラム名>\にはそのプログラムの内容を紹介している
readme.txt ファイルを参照してください。
例えば”blinky”はボード上の User LED を点滅させるプログラムです。シンプルなプ
ログラムですので簡単に試せるでしょう。その他、時間の許す限り試してみてくだ
さい。
以上で Lab1 は終了です。LM Flash Programmer を終了してくださ
い。お疲れ様でした。
1 - 18
Stellaris 1day Workshop – Stellaris outline
Fly UP