2016年10月21日金曜日

Atmel Studio (Arduino Due)

Arduino で32 bit CPUを搭載したボードを見かけるようになりましたが、最初に出たのは Arduino Due でした。Atmel Studio でソフトを開発すれば色々な事が出来そうなので挑戦です。

まず、準備です。
  1. Arduino Due 本体
  2. SAM-ICE
  3. 変換コネクタ
  4. マイクロUSBケーブル
  5. 電源(7-12V) USB 給電する場合は不要


このCPU(SAM3X8E) の内部には温度センサーが入っていますのでプログラムから呼び出して
温度測定を行ってみたいと思います。CPU 内なので起動後、徐々に温度は上がるハズです。

  1. Atmel Studio の起動
  2. Start ページより New Example Project... を選択する。
  3. Device Family 欄には SAM3X を選ぶ
  4. 左枠の種別は Kit を選択します。
  5. サンプルには ADC Temperature Sensor Example - Arduino Due/X を指定します。

以上で OK をクリックすると、ライセンス条項(英語)が表示されますので
□ I accept the license agreement にチェックを入れ Finish ボタンをクリックします。
するとプロジェクトが生成されます。
(少し時間がかかります。)

測定結果を表示させるためシリアル通信プログラムを用意します。(今回は TeraTerm )
温度データはUSB-Serial (Programing Port)に出力されます。
(通信条件:8bit Non Parity 1Stop 速度は115200bps)

Windows の場合 コントロールパネル → システムとセキュリティ → システム とたどり デバイスマネジャーをクリックし、ポート(COMとLPT) をクリックすれば COM ポート番号がわかります。番号は PC により変化します。

準備が揃ったところで Start Debugging and Break (Alt+F5) を実行します。
プログラムの main で一旦、停止します。続いて Continue (F5) でプログラムが続行されます。

TeraTerm で表示されたデータ

-- ADC Temperature Sensor Example --
-- Arduino Due/X --
-- Compiled: Oct 20 2016 12:43:25 --
ADC clock frequency = 7000000 Hz
Startup time too small: 280, programmed: 64
Temp:14.9 
Temp:15.7 
Temp:16.1 
Temp:16.1 
Temp:16.4 
Temp:16.4 
Temp:16.4 
Temp:16.4 
Temp:16.4 
Temp:16.8 
Temp:16.8 
Temp:16.8 
Temp:16.8 

 Atmel社の場合、自社のCPU群でソフトを共通化するため ASF (Atmel Software Framework)が採用されており、他の CPU とソフトの開発を共有化するため冗長部分があります。
 また、ハードウエアのアクセスには ARM社の規定したライブラリ群(CMSIS)を使用しますので直接ペリフェラルにアクセスしません。ARM コアを使用しているCPUではほぼ共通で使えそうですが、CMSIS を理解する必要があります。


0 件のコメント:

コメントを投稿