Back to page

− Links

 Print 

BTC095 AT91SAM7X512マイコンボード :: Besttechnology

knowledge:BTC095 AT91SAM7X512マイコンボード

Table of contents
    • 概要
    • 基本仕様
      • 外観
      • 回路図
      • 端子配置・外形
        • CN1
        • CN2
        • CN3
        • CN4
        • CN5
        • JP1
        • JP2
        • JP3
        • JP4
        • JP5
        • JP6
        • JP7
        • LED1
        • LED2,3,4
        • PB1(プッシュボタン)
    • 各機能の詳細
      • 電源
      • RS232C(CN4)
      • USB Mini-B(CN5)
      • プッシュスイッチ(PB1)
      • CAN, PHY(CN3)
    • 開発環境
      • GCC Developer Lite
        • ターゲットファイル
        • SIMPLE TERMとブートローダ
        • FLASH WRITER
          • FLASH WRITERとSAM-BA
          • FLASH WRITERとOpenOCD
    • JTAG I/F
    • LOCKEビット
    • SAM7X用ライブラリ
    • サンプルプログラム
    • その他

ショップページへ[1]

概要 anchor.png[2]

AT91SAM7X512マイコンボードはARM7TDMIコアを内蔵したAtmel社製AT91SAM7X512を搭載したマイコンボードです。 ボード上にはUSBコネクタ、3.3Vレギュレータ、RS232Cポート、CAN I/F、PHY等を装備し、外部端子にはマイコンのほぼ全ての端子が割り当てられています。

Page Top

基本仕様 anchor.png[3]

商品番号BTC095
PCBリビジョンE054C (4層)
CPUAtmel AT91SAM7X512[4]
メモリフラッシュROM: 512kbyte
SRAM: 128kbyte
オンボードSPI接続DataFlash: 8Mbyte
クロックCPU外部クロック: 18.432MHz (内部動作クロックはCKGR及びPMCによりプログラマブル)
PHY外部クロック: 25MHz
通信機能RS232Cレベル変換装備 (DBGUのみ)
動作温度0~+50℃
動作電圧外部:DC3.8~20V USBもしくは外部端子にて供給可能(外部端子優先)
内部:DC3.3V(I/O), DC1.8V(CORE)
搭載機能イーサネットPHY(KS8001L[5]), SPI接続 64Mbit DataFlash(AT45DB642D-CNU[6]), CANトランシーバ(SN65HVD232D[7]), RS232Cラインドライバ, 3.3V/300mA出力リニアレギュレータ
消費電流40mA (MAX)
寸法W36.8×D52.0mm (参考)
コネクタ等40ピン端子×2, 10ピン端子×1, RS232C通信用ピンヘッダ×1, リセットボタン×1, 電源モニタLED, PHYステータスLED, miniB USBコネクタ×1
付属品USBケーブル×1, 2列ピンヘッダ
環境配慮RoHS準拠, 鉛フリー半田
Page Top

外観 anchor.png[8]

topbottom
Page Top

回路図 anchor.png[11]

  • JP1,JP3,JP4,JP6,JP7,R8はノーマウント
Page Top

端子配置・外形 anchor.png[13]

Page Top
CN1 anchor.png[14]
  • 2.54mmピッチ2列 40ピン
  • 推奨ピンヘッダ:ヒロセ電機 HIF3H-40PB-2.54DSA
  • 推奨レセプタクル:ヒロセ電機 HIF3H-40DA-2.54DSA
    No.端子名No.端子名
    1TDI2PB16
    3PB44PA23
    5PA246NRST
    7TST8PA25
    9PA2610PB18
    11PB1912PB20
    13PB2114PB22
    15PB2316PB24
    17PB2518PB26
    19PA2720PA28
    21PA2922TDO
    23JTAGSEL24TMS
    25TCK26PA30
    27PA028PA1
    29PA330PA2
    31PA432PA5
    33PA634PA7
    35ERASE36DDM
    37VIN38DDP
    39GND403.3V
Page Top
CN2 anchor.png[15]
  • 2.54mmピッチ2列 40ピン
  • 推奨ピンヘッダ:ヒロセ電機 HIF3H-40PB-2.54DSA
  • 推奨レセプタクル:ヒロセ電機 HIF3H-40DA-2.54DSA
    No.端子名No.端子名
    1PA222PA21
    3PA204PA19
    5PB116PB10
    7PB38PB2
    9BP110PB0
    11PB1212PB7
    13PB1714PB15
    15PB516PB6
    17PB1318PB14
    19PB820PB9
    21PA1822PA17
    23PA1624PA15
    25PA1426PA13
    27PA1228PA11
    29PA1030PA9
    31PA832PB30
    33PB2934PB28
    35PB2736AD7
    37AD638AD5
    39AD440ADVREF
Page Top
CN3 anchor.png[16]
  • 2.54mmピッチ2列 10ピン
  • 推奨ピンヘッダ:ヒロセ電機 HIF3H-10PB-2.54DSA
  • 推奨レセプタクル:ヒロセ電機 HIF3H-10DA-2.54DSA
    No.端子名No.端子名
    1CANH2CANL
    3GND43.3V
    5RD+6RD-
    7AVDD8GND
    9TD+10TD-
Page Top
CN4 anchor.png[17]
  • 2mmピッチ 3ピン ヒロセ電機 A4B-03PA-2DSA(71)
  • 推奨圧着ソケット:ヒロセ電機 A4B-03S-2C
  • PA27とPA28端子をRS232Cレベルに変換
  • PA27/PA28はJP4をリリースすることでRS232Cレベル変換ICと切り離し可能
    No.端子名I/O
    1TX (RS232C←PA28)O
    2GND-
    3RX (RS232C→PA27)I
Page Top
CN5 anchor.png[18]
  • USB Mini-B
  • DDPとDDM 端子へ接続
  • USBバスパワーによる電源供給(CN1-37 VIN 端子が優先)
  • DDP端子のプルアップ制御用としてNRSTが使用される
Page Top
JP1 anchor.png[19]
  • レギュレータ(U1)のイネーブル制御(U1のSHDN端子とGND間)
  • オープン:レギュレタアクティブ, ショート:レギュレータディスエーブル
  • 出荷時オープン
Page Top
JP2 anchor.png[20]
  • SPI接続DataFlash(U3)のチップセレクト制御(U9のPA12端子とU3のCS端子間)
  • オープン:U3のCSがプルアップ抵抗によりHIGHとなりSPIバスから切断, ショート:U3のCSがU9のPA12により制御
  • 出荷時ショート
Page Top
JP3 anchor.png[21]
  • SPI接続DataFlash(U3)の書き込みイネーブル制御(U3のWP端子とGND間)
  • オープン:U3はライトイネーブル, ショート:U3はライトプロテクト
  • 出荷時オープン
Page Top
JP4 anchor.png[22]
  • RS232Cレベル変換(U4)のレシーバイネーブル制御(U4のEN端子とGND間)
  • オープン:レシーバイネーブル, ショート:レシーバディスエーブル
  • 出荷時オープン
Page Top
JP5 anchor.png[23]
  • CAN I/F(U7)の受信(U9のPA19端子とU7のR端子間)
  • オープン:U9のPA19は解放, ショート:U9のPA19はU7のR端子と接続
  • 出荷時ショート
Page Top
JP6 anchor.png[24]
  • CAN I/F(U7)のCANバスイネーブル制御(U7のEN端子とGND間)
  • オープン:CANバスに接続, ショート:CANバスから解放
  • 出荷時オープン
Page Top
JP7 anchor.png[25]
  • PHY(U8)のパワーダウン制御(U8のPD端子とGND間)
  • オープン:アクティブ, ショート:パワーダウン
  • 出荷時オープン
Page Top
LED1 anchor.png[26]
  • マイコンボードに電源を印加すると点灯
Page Top
LED2,3,4 anchor.png[27]
  • PHY(KSZ8001L)のLED0,1,2端子に接続
Page Top
PB1(プッシュボタン) anchor.png[28]
  • 押下でマイコンのNRST端子をGNDへ短絡
Page Top

各機能の詳細 anchor.png[29]

Page Top

電源 anchor.png[30]

本ボードには出力DC3.3V/300mAの2入力レギュレータ(U1:LT1579CS8[31])が搭載されています。2入力の一方はCN5から入力されるUSBバスパワー、もう一方はCN1-37(VIN)端子に接続されており、CN1-37(VIN)からの入力が優先されます。
U1で作られたDC3.3VはCN1-40(VCC)から取り出すことが可能ですが、負荷電流は本ボードの駆動電力も含めて最大300mAを超えてはなりません。

ボード上のレギュレータを使用しない場合は、JP1を短絡した上で、CN1-37(VCC)端子からDC3.3Vを供給します。

Page Top

RS232C(CN4) anchor.png[32]

CN4にはマイコンのDBGU端子をRS232Cレベルに変換した信号が接続されます。主にPCのCOMポートと接続し、プログラムの転送やデバッグに使用します。
接続するホストに応じて以下の通信ケーブルないしI/Fがオプションで使用できます。

Page Top

USB Mini-B(CN5) anchor.png[38]

CN5にはマイコンのUDP(USB Device Port)に関連する端子が接続されています。USBケーブルによりPCからUSBバスパワーが供給されます。
なお、SAM-BAやUDPを制御するプログラムを使用しない限り、PCとUSBケーブルで接続してもUSBデバイスとして使用できません。また、USBホストとしては機能しません。

Page Top

プッシュスイッチ(PB1) anchor.png[40]

PB1にはマイコンのNRST端子が接続されています。押下されるとNRST端子がGNDに接続されます。
なお、マイコンのリセットコントローラ適宜設定しない限り、NRST端子はチップリセットを目的として使用することはできません。 NRST信号はUSBのDP信号プルアップの制御と、PHYのリセットを兼ねています。USBデバイスとして活性化している状態でPB1を押すと、ホストはUSBデバイスが外されたと認識します。また、PHYも同時にリセットされます。これは強制的に手動で両I/Fのリセットがかけられてしまう事を意味します。

GCC Developer Liteに含まれるSAM7X用のライブラリでは、NRST端子をファームウェアから出力端子に構成してソフトウェア的に外部回路をリセットさせる事としています。

Page Top

CAN, PHY(CN3) anchor.png[41]

CN3にはCAN I/F及びイーサネットPHYの信号が接続されます。
いずれも高速なネットワークなため、安定した通信を保証するには外部回路における配線ルート等の十分な検証が必要です。

Page Top

開発環境 anchor.png[42]

Page Top

GCC Developer Lite anchor.png[43]

GCC Developer Liteの詳細についてはこちら[44]
フルインストールないしAT91SAM7Xで使用を選択する事で必要なコンポーネントが自動的にインストールされます。
使用されるコンポーネントを簡単に紹介します。

  • GCC Developer Lite[45]

    ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。

  • FLASH WRITER[46]

    ターゲットのフラッシュROM等へコンパイルされたプログラムをSAM-BAないしCOMポート経由で書き込む。
    USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。

  • SIMPLE TERM[47]

    汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
    USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。

  • ARMGCC

    ARMコア向けC/C++言語向けのコンパイラ。

  • デバイスドライバ

    Atmel社提供のSAM-BA用USBドライバと、弊社提供のUSB CDCエミュレーションドライバ。

  • OpenOCD[48]

    TINY JTAG-ICE2の制御を行うデーモン。JTAGを使用する場合は全て本デーモンを仲介する。

  • ターゲットファイル

    マイコンの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、USBをシリアルポートとして使用するためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。

Page Top
ターゲットファイル anchor.png[49]

GCC Developer Lite[44]では本マイコン用の設定を複数備えています。
例えば、ARMコアの学習・組み込み向けCコンパイラの習熟・マイコン内蔵ペリフェラルの機能を熟知するといった段階ではJTAGを使ってSRAM上でデバッグし、慣れてきたらブートローダ[50]を経由してprintfデバッグ、最終的に製品等としてリリースして完成させる時はフラッシュROMに、といった段階を踏む場合でもGCC Developer Lite[44]のコンパイルオプションの設定リストから選択し直すだけで設定が完了します。

GDL_CompileOption_TargetList.png

以下に本マイコンボードに対応した設定リストの一覧とその設定における機能の違いを紹介します。

  • AT91SAM7X512 (Bootloader, ARM mode)

    ビルドするとブートローダ[50]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
    プログラムのスタートアドレスが0x102000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。
    ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。

  • AT91SAM7X512 (Bootloader, THUMB mode)

    ビルドするとブートローダ[50]にてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
    Thumb 16ビット圧縮命令を出力するため、ARM modeよりも出力コードサイズが小さくなる。
    プログラムのスタートアドレスが0x102000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。
    ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。

  • AT91SAM7X512 (RAM, ARM mode)

    ビルドするとOpenOCDにてマイコンのSRAM上で動作させるための.exe(実態はelf)ファイルが作られる。
    プログラムのスタートアドレスは0x200000(SRAMの先頭アドレス)に設定される。
    マイコンにはSRAMからプログラムを起動させる機能が無いためJTAGによる制御が必須。
    ビルドが成功すると、OpenOCD[48]を使用してSRAMへの書き込み・実行を行わせるため、仲介役のFW.exe(FLASH WRITER)の起動を促される。

  • AT91SAM7X512 (RAM, THUMB mode)

    ビルドするとOpenOCDにてマイコンのSRAM上で動作させるための.exe(実態はelf)ファイルが作られる。
    Thumb 16ビット圧縮命令を出力するため、ARM modeよりも出力コードサイズが小さくなる。
    プログラムのスタートアドレスは0x200000(SRAMの先頭アドレス)に設定される。
    マイコンにはSRAMからプログラムを起動させる機能が無いためJTAGによる制御が必須。
    ビルドが成功すると、openOCD[48]を使用してSRAMへの書き込み・実行を行わせるため、仲介役のFW.exe(FLASH WRITER)の起動を促される。

  • AT91SAM7X512 (Flash, ARM mode)

    ビルドするとOpenOCDにてマイコンのSRAM上で動作させるための.exe(実態はelf)ファイルが作られる。
    ビルドが成功すると、OpenOCD[48]を使用してフラッシュROMへの書き込み・実行を行わせるため、仲介役のFW.exe(FLASH WRITER)の起動を促される。

  • AT91SAM7X512 (Flash, THUMB mode)

    ビルドするとOpenOCDにてマイコンのSRAM上で動作させるための.exe(実態はelf)ファイルが作られる。
    Thumb 16ビット圧縮命令を出力するため、ARM modeよりも出力コードサイズが小さくなる。
    ビルドが成功すると、OpenOCD[48]を使用してフラッシュROMへの書き込み・実行を行わせるため、仲介役のFW.exe(FLASH WRITER)の起動を促される。

Page Top
SIMPLE TERMとブートローダ anchor.png[51]

マイコンのフラッシュROMには出荷時に弊社オリジナルのブートローダ[50]が書き込まれています。
ブートローダはJTAGやその他の特殊なI/Fを使用せずとも、USBないしCOMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダ[50]で転送しても動作しません。

  • AT91SAM7X512 (Bootloader, ARM mode)
  • AT91SAM7X512 (Bootloader, THUMB mode)

マイコンボードは出荷時にUSBをコンソールとして構成されたブートローダが書き込まれており、PCとマイコンボードをUSBケーブルで接続する必要があります。
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、GCC Developer Lite[44]をインストールした際にWindowsのシステムフォルダにコピーされます。USBケーブルでマイコンボードとPCを接続するとデバイスドライバを要求されますが、自動検索させる事で自動的にインストールが行われます。
インストール後、新しいCOMポートがWindowsのデバイスとして追加され、SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「AT91 USB to Serial Converter」が表示されたポートを選択)しオープンするとブートローダの各種コマンドが使用可能となります。その他の設定は以下の通りです。

Baudrate:ここでは意味を持たないので何でも構わない
Databits:8
Stopbits:1
Parity:Non
Flow Control:Non
Protocol:Xmodem
AT91SAM7_BL_COM.png

ブートローダの詳細及びコマンドモードの使い方等はこちら[50]

先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されてSIMPLE TERMが起動します。

  • 既にSIMPLE TERMが実行中であれば2重に起動しない。
  • コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
  • ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。
sterm_script.png

マイコンボードがブートローダのコマンドモードであれば、「スクリプト実行[STERM SAM7]」をクリックするだけで転送するファイルを手動で選択する事無く転送にかかる処理が全て自動的に行われます。

sterm_script2.png

本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。

  :idea:USB版ブートローダにてユーザープログラムが書き込まれているマイコンボードを、デバイスドライバがインストールされていないPCのUSBポートに接続してはなりません。
ブートローダは起動直後から5秒以内にデバイスドライバが活性化しないと、USBポートを非活性化した後にユーザプログラムに実行を遷移してしまうため、OSによってはその間にデバイスドライバのインストール処理が自動的にキャンセルされてしまいます。
初めてUSB版ブートローダを使用するためにPCにデバイスドライバをインストールさせるには、予めデバイスドライバがインストールされたPCでユーザプログラムを消去したマイコンボードを使用します。

Page Top
FLASH WRITER anchor.png[52]

様々なマイコンに対応した転送ツールです。本マイコンにおいては2種類の転送方法に対応します。
どちらを選択するかはユーザに委ねられます。CPUコアやプログラムの詳細なデバッグも行うついでにメモリの書き換えを行うという場合のみOpenOCD[48]、フラッシュROMの書き換えさえ出来ればよいのであればSAM-BAを選択するのが一般的です。
FLASH WRITERを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成さAれたプログラムをFLASH WRITERで転送しても動作しません。

  • AT91SAM7X512 (RAM, ARM mode)

    OpenOCD[48]を経由してSRAMに転送実行。

  • AT91SAM7X512 (RAM, THUMB mode)

    OpenOCD[48]を経由してSRAMに転送実行。

  • AT91SAM7X512 (Flash, ARM mode)

    OpenOCD[48]を経由してフラッシュROMに転送実行。コンパイルオプションを変更すればSAM-BAを経由して書き込む事も可能。

  • AT91SAM7X512 (Flash, THUMB mode)

    OpenOCD[48]を経由してフラッシュROMに転送実行。コンパイルオプションを変更すればSAM-BAを経由して書き込む事も可能。

  :idea:LOCKEビットがONの場合ここでの操作が抑止されるため、予めLOCKEビットをOFFにした上で操作する必要があります。

Page Top
FLASH WRITERとSAM-BA anchor.png[53]

Atmel社独自のマイコンに予め備わったブートローダの通信プロトコルに従ってフラッシュROMの書き換えを行います。対応するポートはDBGU(RS232C CN4)とUDP(USB CN5)となります。
マイコンをSAM-BAモードに移行させるには、その都度以下の操作を行います。

  1. マイコンボードへの電源の供給を絶つ。
  2. ERASE端子(CN1-35)を3.3Vに接続する。
  3. マイコンボードへ電源を供給し、5~10秒程度そのまま維持する。
  4. マイコンボードへの電源供給を絶ち、ERASE端子をオープンにする。
  5. マイコンは内部的にSAM-BAモードに移行するが、外観から確認する方法は無い。実際にPCとマイコンボードをUSBケーブルで接続してSAM-BAのデバイスドライバが活性化すればSAM-BAモードに移行している。

USB経由でSAM-BAを使用する場合は専用のデバイスドライバが必要です。PC用デバイスドライバは、GCC Developer Lite[44]をインストールした際にWindowsのシステムフォルダにコピーされます。マイコンをSAM-BAモードに設定した後、USBケーブルでマイコンボードとPCを接続するとデバイスドライバを要求されますが、自動検索させる事で自動的にインストールが行われます。間違ったデバイスがインストールされるケース(GPSレシーバ等)もある様なので、その場合は手動で「atm6124.Sys ATMEL AT91xxxxx Test Board」を選択し直す必要があります。
準備が整っていればFLASH WRITERのPORTに列挙されますので、USBの場合は「\usb\ARM0 (SAM-BA)」を選択します。

AT91SAM7_SAMBA_USB.png

マイコンボードのRS232Cコネクタ経由でSAM-BAを使用する場合は、PCとRS232Cケーブルで接続した上で適宜COMポートを選択します。その際にマイコンボードのUSBコネクタには何も接続してはなりません。

書き込みが正常終了すると、SAM-BAモードを抜けて書き込まれたプログラムを即時実行します。再度SAM-BAで書き込む際は、もう一度電源を切ってモードを切り替えるフローを1.から実行する必要があります。

  :idea:AT91SAM7XはGPNVMの2ビット目の状態によって起動時のメモリマップが変わります。
クリアされていると内蔵ROM(SAM-BAブートファーム)、セットされていると内蔵フラッシュROMが0番地にマッピングされます。チップの消去を行う事でGPNVMの2ビット目がクリアされ、内蔵ROMに書き込まれているSAM-BAブートファームウェアによりSAM-BAモードに移行します。
また、FLASH WRITERはユーザプログラムの書き込み終えた後にGPNVMの2ビット目をセットし、マイコンの再起動後は0番地へ内蔵フラッシュROMがマッピングされる様に構成します。

Page Top
FLASH WRITERとOpenOCD anchor.png[54]

TINY JTAG-ICE2でマイコンのJTAG I​/FとPCを接続し、OpenOCD[48]を仲介してマイコンのフラッシュROMないしSRAMの書き換えを行います。
OpenOCD[48]が起動している状態でFLASH WRITERのScanをクリックし、PORTのリストに現れる「OpenOCD (TELNET)」を選択します。

AT91SAM7_OCD_TELNET.png

Write Script Fileはデバイス及び書き込むメモリの種類に応じて複数のファイルが存在します。ファイル名の先頭にat91sam7_が付加されているものが本マイコンボード用のファイルとなります。
これらスクリプトファイルはFLASH WRITERを自動起動させる設定がなされたコンパイラオプションにて予め指定されるので、通常はユーザが選択する必要はありません。

  • at91sam7_bin_flash.script

    .binファイルをフラッシュROMに書き込んだ後、マイコンを再起動

  • at91sam7_elf_flash.script

    .exe(elf)ファイルをフラッシュROMに書き込んだ後、マイコンを再起動

  • at91sam7_bin_ram.script

    .binファイルをSRAMに書き込んだ後、SRAMの先頭アドレスから起動

  • at91sam7_elf_ram.script

    .exe(elf)ファイルをSRAMに書き込んだ後、SRAMの先頭アドレスから起動

  • at91sam7_erase.script

    指定ファイルを無視して、フラッシュROMの消去とGPNVMを初期化

AT91SAM7シリーズ全般に対応させるため、デバイスやフラッシュROMのサイズによっては無効となるコマンドも含まれます。それによりエラーのログが表示される事がありますが、実害はありません。

Page Top

JTAG I/F anchor.png[55]

作成したプログラムをマイコンのフラッシュROMに転送するには、一般に別途特殊なI/Fやハードウェアを必要とします。これらはチップベンダーの方針やその時代のトレンドで変わります。
ARMコアを内蔵したマイコンであれば大抵JTAG I/Fが備わっており、JTAG ICEでホストと接続する事でCPUコアの制御やメモリの操作を行う事ができます。 マイコンボードには直接JTAG I/Fに接続するコネクタが装備されていませんので、別途JTAG ICEと接続するコネクタを増設する必要があります。

AT91SAM7_JTAG_CONNECTION.png

TINY JTAG-ICE2と接続する場合も同様のコネクタが必要となります。

なお、CN6にはJTAG I/F及び電源端子がまとめて接続されています。

Page Top

LOCKEビット anchor.png[56]

2009年6月以降に出荷されるマイコンボードは、ブートローダ[50]およびユーザプログラムの不用意な消去から保護する目的でNVMのLOCKEビットをONに設定されています。本設定によりSAM-BAモード移行の操作と、JTAG I/Fからのアクセスが全て制限されます。
ブートローダのアップデートや、ブートローダ以外の方法でプログラミングやデバッグを行う場合は、予め以下の操作でLOCKEビットをOFFにする必要があります。

  1. マイコンボードへの電源の供給を絶つ。
  2. ERASE端子(CN1-35)を3.3Vに接続する。
  3. マイコンボードへ電源を供給し、5~10秒程度そのまま維持する。
  4. マイコンボードへの電源供給を絶ち、ERASE端子をオープンにする。
  5. もしそれでもSAM-BAやJTAG I/Fが使用できない場合はもう一度1.から繰り返す。

若干煩雑ですが、本操作にてマイコンのNVMやフラッシュROMは製造初期状態に初期化され、SAM-BAやJTAG I/Fが使用可能になります。

Page Top

SAM7X用ライブラリ anchor.png[57]

GCC Developer Lite[44]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET\SAM7X」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。

  • スタートアップルーチン

    C言語で作成したプログラムを実行させるために、アセンブラないしC言語で記述された必要最低限の初期化処理プログラムです。
    boot_remap.s (スタートアップルーチン本体のソースファイル)
    remap.c (REMAP処理用のソースファイル)
    boot.o, boot_thumb.o (アセンブル済みオブジェクトファイル)

  • リンカスクリプトファイル

    実行条件に応じたメモリの割り当てを記述したファイルです。コンパイル時にリンカが参照し、コードの最終的な配置が決定されます。
    sam7x512_ram.x (SRAM上で実行させるリンカスクリプト)
    sam7x512_rom.x (フラッシュROM上で実行させるリンカスクリプト)
    sam7x512_rom_term.x (ブートローダ[50]を介して実行させるリンカスクリプト)

  • 内蔵ペリフェラルのレジスタ名定義ヘッダファイル

    マイコンに内蔵された各種ペリフェラルが持つレジスタは、決められたメモリ上のアドレスに配置されています。それらレジスタをアドレスではなくレジスタ毎に決められた名称を使い、変数のようにアクセスするためのマクロ定義が記述されています。
    AT91SAM7X.h (レジスタのマクロ定義)
    AT91SAM7X_BITDEFINE.h (各レジスタのビット情報)

  • UART API

    作成したプログラムの動作を確認を行う際に、マイコンのシリアルポートを使用する事を推奨しています。マイコンと文字によるコミュニケーション機能を用意する事で、レジスタの値やプログラムの進捗の把握、さらにはマイコンに対してPCから指令を与えるといった使い方が出来ます。
    本マイコンには複数のシリアルポートが備わっており、制御方法も多種多様なため、それに応じてライブラリとして提供する通信用APIも多くなっています。
    us.h (APIのプロトタイプ宣言を含むヘッダファイル)
    dbgu~.c (DBGUポートをポーリングで使用するAPIのソース群)
    dbgu2~.c (DBGUポートを割り込みで使用するAPIのソース群)
    us0~.c (USART0ポートを割り込みで使用するAPIのソース群)
    us1~.c (USART1ポートを割り込みで使用するAPIのソース群)
    udp_serial~.c (UDPポートでシリアルエミュレーションを行うAPI群)
    .\cdc_serialemu (UDPポートでシリアルエミュレーションを行うドライバソース)

  • PIO初期化API

    煩雑なPIOの初期化を簡便に行うためのAPIです。Atmel社の提供するサンプルコードと互換性を持っています。
    piocfg.h (APIのプロトタイプ宣言を含むヘッダファイル)
    piocfg.c (APIのソースファイル)

  • IRQ/FIQ制御API

    IRQとFIQの各割り込みを制御するには、コンパイラに依存するコードが必要です。簡便のためAPIとして提供します。
    vic.h (APIのプロトタイプ宣言を含むヘッダファイル)
    vic.c (APIのソースファイル)

  • ライブラリファイル

    各APIとremap.cをコンパイルし、一つのライブラリファイルにアーカイブして提供します。
    makelib.bat (APIをARMモードでコンパイルし、アーカイブするバッチ)
    makelib_thumb.bat (APIをTHUMBモードでコンパイルし、アーカイブするバッチ)
    libsam7x.a (makelib.batで作成されるライブラリファイル)
    libsam7x_thumb.a (makelib_thumb.batで作成されるライブラリファイル)

Page Top

サンプルプログラム anchor.png[58]

こちら[59]にて公開中。

Page Top

その他 anchor.png[60]


Last-modified: 2018-03-11 (Sun) 10:34:57 (JST) (1133d) by takaboo