kinetisマイコン単体にプログラムを書きこむ

評価ボードではなく、マイコンを単品で購入した時に、プログラムの書き込み方をまとめてみました。下の写真は、KinetisマイコンMK64FN1M0VLL12です。FRDM-K64Fに使われているマイコンです。

単品で買うとこんな感じで梱包されてきます。今回は、このいわゆるblank MCUにプログラムを書き込みし、Lチカを動作させたいと思います。

プログラムはSWD (serial wire debug) というARMがつくったデバッグインターフェース経由で書き込みます。プログラマー自体は前の記事で紹介したPEmicro のMultilink universal FXを使用します。

まずピンにアクセス・・・

WaveShare-Socketという所から、QFP100ピンのマイコンチップ用のアダプタが売っています。これだと、ハンダ付けせずに各ピンにアクセスできるので、便利です。

値段はたしか8000円ぐらいと高めです。そのかわり、動作確認後に基板に実装できるので、マイコン自体が無駄になりません。

そんなの高すぎるよって方は、秋月からDIP化用の変更基板が売っています。ただ、これはハンダづけが必要ですが、たしか150円ぐらいでした。

QFP100ピンのDIP化基板

見た目これをハンダするの?と最初は圧倒されますが、QFPとかのマイコンからリードが出ているパッケージは結構ハンダがしやすいです。自分でも、意外と簡単につけられました。

ただ、QFNというリード線なしのICはさすがに難しいので、やめたほうがいいかもしれません。

上の絵も、最初のトライですが、それなりになってます。ちゃんと導通テストも通りました。

書き込み用の回路を作成する

下はMK64FN1M0VLL12を搭載した評価ボードのシステム図です。メインマイコンには10pinのSWDにつながっていて、これにPEmicroのプログラマをつなげ、書き込みをします。

以前、FRDM-K64FにPEmicro経由でプログラムを書いた時と同じ方法です。そのときはこんな感じでつなげてました。

左下がマイコンのSWOコネクタ、右下がPEMicroのコネクタ。

前回は、この二つをケーブルでつないでましたが、今回は1ピンずつ繋げていきます。

最初、ピン間同士をこのまま、つないでいたんですが、うまく通信できませんでした。NXPに問い合わせしましたが、#2ピンのSWD_DIOは電源でプルアップしないといけないようです。自分の場合はこれで、書き込み処理が始まるようになりました。

ただ、その後、書き込み中にRuntime 216というエラーが頻発しました。

このエラーは、MCUXpressoとPEmicroのファームウェアの相性の問題で発生することもあるようですが、最新バージョンでトライしても、再発する場合は、リセットの端子電圧を確認するとよいかもしれません。

どうも、ソフトダウンロード中にリセットがLowになると、このメッセージが表示されるみたいです。

下は参考です。一応これで書けたってことで、回路を記憶しておきます。

下は実際の作業風景。線が多いのは、電源とGNDのせいです。黄色いのはリセットボタンです。書くだけなら不要ですが、一応つけています。

サンプルプログラムの動作

プログラムを書き込めるようになったので、SDKのサンプルコード”frdmk64f_led_blinky”を書き込んで実行してみます。

が、いつまでたってもLEDは光らないので、どうした?と思ってしらべてみたら、外部のクロックを使います的な処理の所で、スタックしてました。

/* Wait for CLKST clock status bits to show clock source is ext ref clk */

while ((MCG->S & (MCG_S_IREFST_MASK | MCG_S_CLKST_MASK)) !=
(MCG_S_IREFST(kMCG_FllSrcExternal) | MCG_S_CLKST(kMCG_ClkOutStatExt)))
{
}

FRDM-K64Fは外部クロックがついてますが、マイコン単体では当然ないので、外部のオシレータは使用しませんとプログラム上で、明示しておく必要がありました。

設定は簡単で、もはやコードを書く必要すらありません。

ツールバーから Open Clocksを選択して、

番号の順に設定していくだけです。MSGモードをFEI (FLL Engaged internal)にして、OSCのブロックを右クリックして、Disableにします。

そして、最後にコードをアップデートして終了です。これでクロックの初期化で処理がとまることはなくなります。

下のように無事Lチカが成功しました。

以外に簡単にできました。MCU単体を扱うのって意外にハードルが低いので、あとは自分なりにカスタマイズしていけば、楽しい時間が過ごせます。

バンザイ ブランク MCU ♡

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Social Share Buttons and Icons powered by Ultimatelysocial