PR 記事には広告が含まれています
スポンサーリンク
Translate

Padaukマイコンの開発環境のセットアップ方法

スポンサーリンク

Visual Studio Codeで開発

今回は、Padaukマイコンの開発環境を準備して、実際にマイコンに書き込んでみたいと思います。

スポンサーリンク

VisualStudioCodeで開発

PlatformIOをインストールする

ターミナルの表示方法

Visual Studio Codeを使います。[Terminal]の中の[New Terminal]をクリックしてターミナルを表示させます。

ターミナルに「brew install platformio」と入力しエンターキーを押します。

brew install platformio

自動でPlatformIOがインストールされます。

フォルダを開く

フォルダを開く

どこかに空のフォルダを作り、そのフォルダを開きます。今回は「blink」とします。

ターミナルを開く

もう一度ターミナルを開きます。

必要なファイルを生成する

必要なファイルを自動生成する

ターミナルに

pio project init

と入力しエンターします。すると、先程開いたフォルダーに、必要なファイルやフォルダーが作られます。

platformio.iniを編集

platformio.iniを編集する

左側のplatformio.iniをクリックして、以下の内容を追加します。追加したら保存します。

[env:development]
platform = https://github.com/1500WK1500/platform-padauk.git ; ボードのリポジトリ
board = PFS154 ; 使うマイコンの選択
framework = easypdk ; ヘッダーとかを追加

環境をインストール

一度pio runで環境をインストールする

pio run

ターミナルに「pio run」と入力してエンターします。ソースファイルがないので失敗しますが、これでコンパイル環境がセットアップされます。

ソースファイルを追加

main.cを追加

「src」フォルダーのところで右クリックして、[New File]をクリックします。新しいファイルを「main.c」とします。

Lチカのプログラムを書いてみます。以下のようにしました。

#include <pdk/device.h>
#include <stdint.h>
#define LED_BIT         4 //PA4 6pin
#define turnLedOn()     PA |= (1 << LED_BIT)
#define turnLedOff()    PA &= ~(1 << LED_BIT)

void main() {
  PDK_USE_FACTORY_IHRCR_16MHZ();
  PDK_SET_SYSCLOCK(SYSCLOCK_IHRC_16MHZ);
  CLKMD &= ~CLKMD_ENABLE_WATCHDOG;  // Disenable WDT

  PAC |= (1 << LED_BIT);          // Set LED pin as output

  while (1) {
    turnLedOn();
    for( uint32_t i=0 ; i<400000 ; i++)
        __nop();
    turnLedOff();
    for( uint32_t i=0 ; i<400000 ; i++)
        __nop();
  }
}

PSF154は内蔵クロックのキャリブレーション値が出荷時に書き込まれています。これを使うことで、ほぼ正確な周波数に調整できます。8行目のPDK_USE_FACTORY_IHRCR_16MHZ();がそれです。

9行目のPDK_SET_SYSCLOCK(SYSCLOCK_IHRC_16MHZ);で、クロックを16MHzに設定します。

Padaukマイコンは起動時にウォッチドッグタイマー(WDT)が有効になっています。プログラム中でWDTをクリアしないとマイコンがリセットされてしまいます。今回は不要なので、10行目で無効化しておきます。

PadaukマイコンのIOはデフォルトが入力ピンになっています。12行目でPA4を出力に設定します。

whileのループで、PA4ピンに接続したLEDが約1秒周期に点滅します。

これらのプログラムを書いて保存します。

コンパイル

このプログラムをコンパイルします。ターミナルに「pio run」と入力してエンターします。

pio run

コンパイルが通りSUCCESSと表示される

コンパイルが通るとSEUCCESと表示されます。

隠しフォルダの.pioの中の深くにバイナリーファイルが保存される

コンパイル結果のバイナリーファイルやHEXファイルは、隠しフォルダ「.pio」の中の「build」の中の「development」フォルダーに保存されます。

隠しフォルダは、macの場合は、「command」+「shift」+「.」で見えるようになります。

バイナリーファイルをフォルダ直下に自動でコピー

コンパイル結果のバイナリーファイルやHEXファイルは、隠しフォルダの中の深いところに保存されます。

毎回フォルダを開いて探し出すのが面倒なので、フォルダの直下にコピーするようにスクリプトを追加します。

左側の何もないところで右クリック、New Fileをクリック

スクリプトを書くためのファイルを作成します。左側の何も無いところで右クリックして、「New File」をクリックします。

extra_script.pyファイル作成

ファイル名を「extra_script.py」として、ファイルを作成します。

import shutil
import os
Import("env")

def post_program_action(source, target, env):
    src = target[0].get_abspath()
    dest = os.path.join(env["PROJECT_DIR"]) + "/" + os.path.basename(src)
    print("dest:"+dest)
    print("source:"+src)
    shutil.copy(src, dest)

env.AddPostAction("$BUILD_DIR/firmware.ihx", post_program_action)
env.AddPostAction("$BUILD_DIR/firmware.bin", post_program_action)

上記のように入力し、保存します。

platformio.iniに追記

platformio.iniに先ほどのスクリプトが実行されるように追記します。

extra_scripts = post:extra_script.py

以上で設定が完了です。

もう一度コンパイルします。

pio run

バイナリーファイルがフォルダの直下にコピーされる

コンパイル結果のバイナリーとHEXファイルが、フォルダの直下にコピーされました。

これで、ライターにファイルをコピーすることが簡単になりました。

ここで紹介したプログラムとスクリプトは、上のアイコンをクリックすることでダウンロードできます。

解凍してできたフォルダをVisual Studio codeにドラッグ&ドロップすると、blinkのコードやスクリプトファイルを見ることができます。

スポンサーリンク

プログラムの実行

プログラムの書き込み

ドライブにドラッグ&ドロップ

コンパイルしてできたHEXファイルを、Padauk書き込み機にドラッグ&ドロップします。

マイコンにプログラムが書き込まれます。

実行

マイコンに電池とLEDをつないで、電池のスイッチを入れます。

点滅しました!!

Padaukマイコンのプログラムが作れるようになりましたよ!

スポンサーリンク

さて次回は

これまでは1つ10セントのフラッシュタイプのマイコンでしたが、次回からはワンタイムタイプで3セントのPMS150Cの書き込みができるように、書き込みプログラムを改良しようと思います。