MCU単体をLチカ。Kinetisで始めるマイコン入門
組み込みの開発に興味を持って、いくつかマイコンの開発ボードに触れてみました。良いことですが、USBで接続すると直ぐにプログラムが実行できてしまうので中の仕組みがよく理解できません。
こちらの記事を参考に部品やツール等を揃えて、初心者の登竜門であるLチカにMCU単体で挑戦してみました。完成は以下の感じです。
謝辞
@EmbeddedTpdさんの素晴らしい記事をとにかく参考にさせて頂きました。ありがとうございます。
リファレンスとする開発ボードとマイコン単体
日本語ではSTM32の記事を多く見かけますが、今回Freescale社(NXP)から販売されていた FRDM-K22Fを使います。 単体のマイコンは、近しいシリーズのMK22FN256VLL12を購入してみました。どちらもNXPが提供する統合開発環境である
で環境構築やFlash書き込みなどがスムーズに行えます。
準備:J-Linkのデバッガ+SWD接続+給電
ARM社のCortexに標準で搭載されているデバッグ用のインターフェイスとして、JTAGの信号線を減らしたSWD(Serial Wire Debug)があります。コネクタ経由でプログラムのターゲットへの書き込みやリセット等の制御を行うことができます。 開発ボードでは、USB越しに使えるようにOpenSDA経由でのアクセスになっていますが、マイコン単体の場合は、別途デバッガを接続する必要があります。
以下を用意しました。
SEGGER デバッガ プログラマ/インサーキットエミュレータ フラッシュマイクロコントローラ用 デバッグエミュレータ 1個入り 8.08.00 J-LINK BASE
Adafruit JTAG (2x10 2.54mm) → SWD (2x5 1.27mm) ケーブルアダプターボード [ADA2094]
- SWD (2x5 1.27mm) Cable Breakout Board
- 2×5(10P)両端コネクタ付IDCリボンケーブル(フラットケーブル ハーフピッチ)
J-Linkのデバッガは、探してもEDUモデルが手に入らず、止むなくBaseを使いました 1。元の記事では、別の電源から給電していたようですが、J-Linkからも5Vの給電が可能です2。 対象のマイコンは、3.3Vなので変換しながら、コネクタを変換できる以下の商品を試してみました。
給電しながらまずは開発ボードで動作しそうか検証してみたところ無事動作しました3。
準備:マイコンのハンダ付け
初心者には鬼門です。0.5mmピッチのQFPで、150円(!)で手に入るこちらのDIP化基板
に頑張ってハンダ付けをします。フラックスを塗りたくり、多めにハンダを乗せてハンダ吸い取りで綺麗に拭き取るようなイメージでなんとか完了4。
準備:テストプログラム作成
IDEからWizardにしたがって作成すると雛形ができます。
Lチカを周期的に実行するタイマーのコールバックの中でGPIOのハイとローを切り替えるイメージでサクッと実装しました。 以下の記事を参考にしました。
ログを出したい場合、プロジェクトのprintfの設定にも注意が必要でした。
いざ実行 !
無事動きました。Lチカなので地味です。
ここまで動かすのにとにかく手間と時間がかかりますが、少しマイコンが身近になりました。
CortexについてもSoCなんかを次は試しつつ、引き続き勉強してみたいと思います。
追記: ICテストソケットを試す
ハンダ付けに自信が無かったので用意した
GP-QFP100-0.5 MCU ICテストソケットプログラミングアダプター IC51-1004-809 QFP100 TQFP100 LQFP100 Pitch 0.5 Yamaichi @XYG
でも試してみました。
ICのピンが少し曲がっていたせいでショートしていたのか始めは動作せず嵌りました。目視の確認もいずれにせよ重要です。
-
EDUモデルが欲しかったのですが手に入らず。取り扱いもほぼ無いようです。「J-Link EDU」ならび「J-Link EDU Mini」取扱中止のお知らせ。↩
-
OpenSDAのSWDをジャンパー(J10, J13)の変更によって切る必要があります。↩