ARM Cortex-M0+な5VマイコンはMicrochip製なら開発環境構築が格安(Windows)
「8bit PICマイコン開発環境構築(Windows)」で使っていたIDE、"Microchip MPLAB X-IDE"(とXC32コンパイラ)とPICKit4で、旧AtmelのCortex M0+マイコンであるATSAMC20/21シリーズがサポートされました。
こちら5V電源に対応していて、32ピン~100ピンの規模で32bitなのに価格アップが僅かだったりなので、なかなか心惹かれる方も多いのではないかと思います。
いまだ情報が少ない印象なのと、printf()が使えるようになるまでが大変でした・・。
100ピンのATSAMC20N17Aを例に、「UARTからprintf()出力とechoができたところまで」をまとめておこうと思います。
FreeRTOSも設定しています。
なお前回同様、USB非対応でMouserだと300円ぐらいのマイコンをバラで取り寄せてハンダ付けする・・という、組み込み開発のお話です。
デバッガは¥5000ぐらいのPICkitが使えるほか、2000円切る(!)MPLAB Snapが使えるようになり、費用面のハードルは下がっています。
(2020/6/15 update:MPLAB Snapを追記)
ATSAMC20N17Aについて
製品ページ:https://www.microchip.com/wwwproducts/en/ATSAMC20N17A
Cortex-M0+で電源が2.7~5.5V対応、発振子内蔵、RAM 16kB、ROM 128kB、EEPROM 4096バイトで使いやすいと思います。
ピンが多すぎるという場合は32/48/64ピン、RAMをもっと、という方はRAM 32kB/ROM 256kB品( ATSAMC20N18A、Mouserでは347円)があります。C20とC21の違いはCANの有無です。製品ページの「Similar Devices」も参照。
なおPICマイコンとは違って、内蔵発振子が0~40℃では1%精度のようですので、外部発振子なしでもUARTでの通信は心配なさそうです。
日本語資料
-
Microchip 日本語資料|ツール/ユーザガイド
- MPLAB PICkit 4 インサーキットデバッガ クイックスタートガイド
- 「Cortex SWD」の記載を参照、MCLRは47kでVCC(5V)にプルアップ(10kでは動作しませんでした)
- MPLAB PICkit 4 インサーキットデバッガ ユーザガイド
ハードウェアの準備
- マイコン本体
- 電源、パスコン
- (必要な場合)ピッチ変換基板
- デバッガ(PICkit4かSnap)
- デバッガ接続用ピンヘッダ(8ピン)
インストール
- MPLAB X-IDE https://www.microchip.com/mplab/mplab-x-ide
- XC32 コンパイラ https://www.microchip.com/mplab/compilers
- MPLAB X-IDE https://www.microchip.com/mplab/mplab-x-ide
- XC32 コンパイラ https://www.microchip.com/mplab/compilers
上記2つをダウンロード&セットアップします。
以前はプラグインをインストールしないとMCCやHarmonyによるドライバコードの生成が行えませんでしたが、IDEインストール時にマイコン種別(8bit/16bit/32bit)を指定することでインストールされるようになったようです。
プロジェクトの作成
フレームワークのダウンロード
- Launch Framework Downloader
フレームワークをダウンロードしておく必要があります。
- Create Folder
フレームワークをダウンロードするためのパスを入力します。プロジェクトとは別な場所でOK。
「Create Folder」をクリックして「Next」
- リポジトリパスの設定
・・どうもGithubからライブラリをダウンロードするようです。
- Download Catalog
「Next」をクリックするとカタログをダウンロードします。
- Download Packages
「Next」をクリックしたら、「Download」
- SLAを3本Acceptしてください(あるいはAccept All Licenses)。
- Clean Package:
ダウンロードが始まります。10GB以上あるので、相当な時間がかかります。
- ダウンロード完了:
Closeをクリックして閉じます。
- 再びNext。
なぜかちょっとここで固まるようですがじっと待ちます。
- 完了
新規プロジェクト作成の続き
- Nextをクリック
- Location / Folder (Name)を入力
Locationパスのfirmwareフォルダ内にフォルダが作成されるようです。ようやくFinish
- Configuration Settings:Harmonyのconfig名を指定します。defaultのままでもOKです。
- ターゲットデバイスの指定:ここではATSAMC20N17Aを指定しましたが、用意した品種にしてください。
MPLAB Harmony 3 Configuratorの起動
プロジェクトの新規作成時は自動で起動するようです。最初にFrameworkのpackageバージョンの確認が表示されますので、「Launch」をクリックします。
次回からはツールバーの「Tools」→「Embedded」→「MPLAB Harmony 3 Configurator」から起動します。
「Launch」をクリックすると起動するのですが、IDEが操作不能になるので、電池駆動時や動作の遅いPCでは要注意です。
クロックの設定
・・というのが普通でしょうけど、内蔵発振子で48MHz動作してくれるようにデフォルト設定されていますので、大丈夫です。生成されるコードを確認すると、キャリブレーション設定もしてくれるようですので精度も出ると思います。
いじりたい場合は「Tools」→「Clock Configuration」からどうぞ。
STDIOとUARTの設定
-
画面左側の「Available Components」から
-
UARTの設定
ピンの設定
Systemの設定
- Systemをクリック
- Device & Project Configuration / Project Configuration / Tool Chain Selections / XC32 Global Options / Linker / General と掘って、「Heap Size」を4096 bytesに設定。ここからタスクのヒープを取ります。 近くにある設定: Device & Project Configuration / Project Configuration / Generate System Exceptionの更に下にある「Use Advanced Exception Handling」も有効にしておくと良いでしょう。
Free RTOSの設定
- 画面左側から「Third Party Libraries」→「Free RTOS」をダブルクリック (OSを使わない場合はmain()を変更します。)
- 「Memory Management Type」を「Heap_3」に設定します。(STDIOを使用するのに必要)
- 「Minimal Stack Size」を1536ぐらいに設定します。(printf()だけじゃなくgetchar()とかする時は必要みたい)
Harmony Coreの設定
- 画面左側から「Harmony」→「Core」をダブルクリックして追加
コードの生成
アプリケーションのコーディング
IDEに戻ると、app.cが生成されています。
#include <stdio.h> を入れたら、APP_Tasks()内にprintf()をコーディングしてみましょう。
サンプルコード
void APP_Tasks ( void )
{
/* Check the application's current state. */
switch ( appData.state )
{
/* Application's initial state. */
case APP_STATE_INIT:
{
bool appInitialized = true;
if (appInitialized)
{
printf( "Hello World!\r\n" ); //←これだけ
appData.state = APP_STATE_SERVICE_TASKS;
}
break;
}
プロジェクトのプロパティ設定
ここにも落とし穴。「Hardware Tool」がデフォルトでは「Simulator」が選択されていますので、「PICkit 4」(あるいはSnap)を選択しておかないとハードウェアに接続してくれないのです。
デバッグ実行
PICkit4とテスト基板を接続したら、Debug
ビルド後にPICkit4経由でターゲット接続・書き込み&デバッグ実行してくれます。
ターミナルソフトを接続しておけばシリアルに"Hello World!"が表示されると思います。
Author And Source
この問題について(ARM Cortex-M0+な5VマイコンはMicrochip製なら開発環境構築が格安(Windows)), 我々は、より多くの情報をここで見つけました https://qiita.com/t-nakamura-koden/items/cd8636e3f996d140e9ce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .