自作マイクロマウス研修(kaede)

MPLAB Harmony 3 Configuratorを使ってSAMマイコンでLピカ – 自作マイクロマウス研修(kaede) Part4

自作マイクロマウス研修(kaede)

kaedeです。前回の記事でMPLAB X IDEとHarmony 3 Configuratorの開発環境構築について紹介しました。

今回はHarmony 3 Configuratorを使って簡単なピンの設定を行い、Lピカをしていきたいと思います。

※LピカとLチカ・・・個人的認識ですが、LピカはLEDを光らせるのみです。Lチカは一定周期で点灯消灯を繰り返します。そのため、クロックやタイマーの設定も必要になります。

最低限のマイコン周辺回路

今回から実機を使った開発をしていくため、最低限のマイコン周辺回路をユニバーサル基板で作成しました。いきなりプリント基板をおこしても良いのですが、初めて使うマイコンなので少しずつ機能検証しながら回路も追加していこうと思い、ユニバーサル基板になりました。

 

マイコン周辺の回路図はこんな感じになっています。データシートを元に動かすのに最低限の部分のみを作ってみました。(外部クロックとUARTは今回は不要)

電源系は回路図には入れていませんが、モータ用の6V程度からDCDCコンバータで5Vを作成し、そこから3端子レギュレータで3.3Vを作成し、マイコン用の電源を作成しています。

 

MPLAB snapを使った書き込み

回路図に記載の通り、今回はSWD(Serial Wire Debug)を使って書き込みやデバッグをできるようにしておきます。マイコン側からはSWCLK、SWDIOを引き出しておき、MPLAB X IDEとの接続にはMPLAB純正のMPLAB® SNAPを使っています。秋月でも買えます

PG164100
The MPLAB® Snap In-Circuit Debugger/Programmer allows affordable, fast and easy debugging and programming of PIC®, dsPIC...

MPLAB SNAPは複数のインターフェースに対応していますが、今回はSWDで書き込むのでCORTEX SWDのピンのうちVTG, GND, SWCLK, SWDIOに接続しておけば最低限書き込めます。

引用元:https://ww1.microchip.com/downloads/en/DeviceDoc/50002787C.pdf

純正ツールなので、MPLAB X IDEを開いた状態で接続すると自動で認識されます。File>ProjectPropertiesを開き、General>Connected Hardware Toolのプルダウンから該当のMPLAB Snapを選択できるようになります。Snapを選択すると画像左側Conf下のSimulatorがSnapに代わり各種設定ができるようになります。デフォルトでSWDの通信速度2Mbpsになっていたのでそのままにしました。

 

GPIOピンの設定

続いて簡単な動作確認としてLピカをするためにGPIOピンの設定をします。

前回同様にTools->Embedded>MPLAB Harmony 3 Configuratorを開きます。

GPIOだけであれば追加の機能は不要なので、MPLAB Harmony 3 ConfiguratorウィンドウのTools>Pin Configurationを開き、回路図でLEDが繋がっているピンをGPIOのOutに設定しました。名前も合わせています。

クロックの設定

まだ設定しなくてもとりあえずは動きそうだったのでデフォルトのままです。

書き込み&Lピカ

前回同様にMPLAB Harmony 3 ConfiguratorからGenerate Codeを実行するとコードが生成されます。

MPLAB X IDEの方に戻り、コードを見ていくとHeader Filesのconfig > sam_e51n20a > peripheral > port下にplib_port.hが生成されていました。こちらを使えばひとまずLEDを操作できそうです。(このあたりドキュメンテーション生成の方法などがよくわかっておらず、コードを直接読んでいます。)

main関数に以下のようにLEDx_Set()を入れるとLピカできます。

int main ( void )
{
    /* Initialize all modules */
    SYS_Initialize ( NULL );
    LED0_Set();
    LED1_Set();
    LED2_Set();
    
    while ( true )
    {
        /* Maintain state machines of all polled MPLAB Harmony modules. */
        SYS_Tasks ( );
    }

    /* Execution should not come here during normal operation */

    return ( EXIT_FAILURE );
}

と思ったのですが、Make and Program Device Main Projectを押して書き込もうとすると

「Target Device ID (0x61830002) is an Invalid Device ID. Please check your connections to the Target Device.」というエラーが出ました。ブログ用ではない開発用のプロジェクトでは書き込めていたのでおかしいなぁと思ってよく見ると、使っているマイコンはSAME53N20Aなのにプロジェクトの設定がSAME51N20Aになってしまっていました。プロジェクトの設定を修正して、コードも再生成して書き込みをもう一度押すと無事にLピカできましたー

 

今回の記事はここまでです。次回はクロックの設定をしてLチカするところまで書ければと思います。

参考にさせていただいた記事

MPLAB Snapに関して

MPLAB Snapを買った&使ってみた(2) – Atmel SAM
前回に引き続き、第2回目です。今回は SAM について、MPLAB Sanp を使ってみました。 SAM At…

Lピカ

Raspberry Piで電子工作!Lチカ…の前にLピカ! | Device Plus - デバプラ
いよいよパーツを使った電子工作に挑戦します!最初の一歩といえば、Lチカ!……と行きたいところですが、チカチカの前にピカピカさせてみたいと思います!
タイトルとURLをコピーしました