LPCCappuccino
Strawberry Linxが2013年から販売している、手頃な価格のオリジナルマイコンボード。
ArduinoIDEではサポートされていない。
チップ
NXP社 LPC11U37
レイアウト
ACアダプタ端子、microSDカードソケットも実装されている。
I2C液晶(オプション)
別売のI2C液晶ユニットを基板上に実装できる。手頃な価格で、デバッグなどに便利。
基板のドレスアップにもなる。
下端着色部は押してはいけない。薄いガラス板がちょっと浮いた構造になっているので、押すとすぐに割れ断線する。緑の基板部を押して,基板ピンに装着する。
組み立て
DCブラケット,ピン、ソケットをハンダ付け。
それぞれ、1ピンをハンダ付けしたら、位置、角度を確認して調整。
I2C液晶ユニットは、下辺のソケットのみが基板とつながっているだけて不安定なので、上辺を支える脚として、粘着テープ付きの4mmスペーサの頭をカットしたものを貼り付ける。
I2C液晶ユニットのソケットをハンダ付けする際、ハンダの量に注意。多すぎるとソケット内にハンダが流れ込み、ピンがささらなくなる。
ボード本体には粘着テープなしの4mmスペーサを脚として付けた。
開発環境 MCUXpressoIDE
StrawBerry LinuxのLPCcappuccinoサポートサイトではNXPのLPCXpresso IDE向けのテストプロジェクトを配布している。LPCXpresso IDEは本来有償のIDEで、アカウント登録後アクティベーションが必要である。無償アクティベーションでは機能制限があるし、有償は$495.00~と,そこそこの値段である。
一方、おなじNXPが、無償のIDE MCUExpressoIDEも配布しており、将来的にはこれがメインストリームになるように思われる。NXPも新しいプロジェクトにはMCUXpressoを推奨している。
「However we no longer recommend the use of LPCXpresso IDE for new projects, either in Free Edition form or the paid-for Pro Edition. MCUXpresso IDE has now replaced LPCXpresso IDE as the recommended software development toolchain for our Cortex-M based LPC microcontrollers, as well as for our Kinetis MCUs and i.MX RT crossover processors.」
試してみたところ、 MCUExpressodIDEでも、StrawBerry Linuxからダウンロードしたテストプロジェクトを問題なくビルド出来た。
Strawberry Linux テストプロジェクトのビルド
Strawberry LinuxのLPCCappuccino製品ページから、テストプロジェクトのアーカイブをダウンロードする。
MCUXpressoIDEを起動し、Quick Start PanelのImport project(s) from file systemをクリックする。
Project archive(zip)にダウンロードしたテストプロジェクトのアーカイブを指定して、「Next>」ボタンをクリックする。
cappuccinoプロジェクトが選択されているのを確認して「Finish」ボタンをクリックする。
ワークスペースにcappuccinoプロジェクトが取り込まれる。
プロジェクト・プロパティのMCU Settingsで確認したところ、詳細な型番はLPC11U37/501に設定されている。これで搭載メモリの量とアドレスが判る。
テストプロジェクトを選択して、Quick Start PanelのClean、Buildを順にクリックすると、BUILDが実行される。
ステッピングドライバなどの周辺機器を繋いでいない場合、このままでは実行時にエラーになリ、途中で止まってしまうので、L6470ステッピングドライバデモ関数とSDカードデモ関数の呼び出しを外して、再度ビルドする。
USRボタンを押しながら、USBでPCにLPCCappuccinoを繋ぐと、「CRP DISABLD」と言う名前のフォルダとして認識されて、explorerが開くので、そこにあるfirmware.binを削除しておく。
Buildがうまく行っていると、プロジェクトのDEMOフォルダのcappuccino.binが更新されているので、これを、上記「CRP DISABLD」フォルダにドラッグ&ドロップして書き込む。
LPCCappuccinoのRSTボタンを押すと、explorerが閉じ、LPCCappuccino上で書き込んだプログラムの実行が始まる。SDカードスロットの上の赤いLEDが点滅していれば、うまく実行されている。
オプションの液晶があれば「LPCcappuccino! StrawbwrryLinux」と2段に表示され,バックライト付きであれば,白いバックライトも点滅する。
ライター・デバッガ
ライター・デバッガとして、トラ技ライター、LPCXpresso LPC1200搭載のLPC-LINK V1を用いてみた。
新たに、ライター・デバッガを入手する場合は、後述のAE-LPC11U35を使って作る仮想COMポート付きデバッガの方が、安価かつ高機能である。
どちらも、同じような機能/使い勝手なので、いずれか1つ有れば事足りる。LPC1200は秋月のセールで1000円と、極安価ではあったものの、もう売り切れで入手が困難である。また、基板のターゲット部分を切り落とす手間がある(基板センターラインで断線するだけでも可)。2025年2月現在、トラ技ライターは、基板だけならマルツで、書籍「mbed×デバッガ!一枚二役ARMマイコン基板」CQ出版、としてならアマゾン、CQ出版オンラインショップで入手可能である。基板だけの方が少し安いが、デバッガとして使うためのアプリケーションが付いていない。書籍の付属CDには収録されているので、自分で開発/BUILDできない場合は、書籍版の入手が必要となる。
書籍版の場合、自分でピンヘッダ等をハンダ付けする必要があるが、デバッガとして使うだけなら、USB端子、ボタンスイッチ2個、ピンヘッダまたはソケット2個(CN4、CN5)だけで間に合う。その他のピンヘッダは使わない。CN4(SWD 1.25mmピッチ2×5ピンヘッダ)、USB端子以外はたいして難しくない。CN5でターゲットと接続するなら、CN4も不要。
下図は、ターゲット部を切り落として、断面にL型8PINソケットを実装したLPCXpresso LPC1200のST-LINK/V1部(上)と、組み立てたトラ技ライター(下)。L型8ピン・ソケットのピン配置はどちらも同じ(写真では点対称)。
LPCCappccinoとデバッガの接続
SWD接続を行う。LPC11U37のデータシートでSWDのPIN配置を調べたところ、SWDIOはPort0の15番ピン、SWCLKはPort0の10番ピンに割り当てられていた。
「LPC11U3x Product data sheet Rev. 1 — 20 April 2012 © NXP B.V. 2012.」より抜粋
そこで、下図の5箇所のポートを接続する。
デバッガVddを、LPCCappuccinoのVではなくEXTに繋ぐと、ターゲットCPUには給電されるが、I2C液晶には給電されないので、注意する。
配線後、デバッガをUSBで、MCUXpressoが動いているPCに接続し、Quick Start PanelのDEBUGをクリックするなどして,デバッグを開始する(ツールバーの虫ボタン、「Run」メニューの「Debug As 」→「MCUXpressoIDE LinkServer」でも同じ)。初回は以下のデバッガ選択ダイアログが出て来るのでOKボタンを押すと、ビルド、書き込みの後、デバッグ画面に切り替わってプログラムが起動し、最初の行で実行が一旦停止した状態になる。その後は、ステップ実行や指定行まで実行、マウスホバーによる変数インスペクト等の機能を使って,デバッグ実行ができる。
仮想COMポート付きデバッガ
以下の「なんとなく活動記録。」の「CMSIS-DAPよりもDAP-LINK(LPC11U35編)」という記事により、秋月から販売されている安価なマイコンボードAE-LPC11U35とオープンソースプロジェクトのDAP-LINKを使って、仮想COMポートをサポートするデバッガが作れると言うことを知り、早速AE-LPC11U35を取り寄せた。
AE-LPC11U35の両側に15ピンソケットを実装。
Aruduino nanoとほぼ同じサイズだが、nanoより3mmほど短く,3mmほど幅が広い。非常にコンパクト。
下記より、DAP-LINKの最新(と言っても2022年2月)リリースREL v0257の「0257_release_package_gcc_c782a5ba.zip」をダウンロードして、その中の[0257_lpc11u35_ssci1114_0x0000.bin」というファイルを、AE-LPC11U35にD&Dで書き込み。
AE-LPC11U35への書き込み手順は、AE-LPC11U35に同梱されているカードに詳細が記されているが、リセットボタン押し→ブートセレクトボタン押し→リセットボタン放し→ブートセレクトボタン放し→firmware.bin削除→プログラムbinをドロップ、とLPCCappccinoと同様の手順。
その後、PCにUSBで接続し直すと、デバイスマネージャで、ユニバーサル シリアル バス デバイスにWebUSB:CMSIS-DAPが追加される。
また、デバイスマネージャのポートにも、新しいUSBシリアルデバイスタイプの仮想COMポートが追加される。このCOM番号(図では"COM32")は,後でMCUXpressoのターミナル接続で使うので控えておく。
同じところからダウンロード出来る「0257_release_package_armclang_c782a5ba.zip」、「0257_release_package_armcc_c782a5ba.zip」にも同名のファイルが入っているが、いずれも、AE-LPC11U35に書き込んでPCに接続しても、ユニバーサル シリアル バス デバイスとして認識されなかった。
上述のネタ元記事「CMSIS-DAPよりもDAP-LINK(LPC11U35編)」によると、DAP-LINKのピン配置は以下のようになっている。
PIO0_7 SWCLK
PIO0_8 SWDIO
PIO0_18 RX
PIO0_19 TX
PIO0_2 RESET
LPCCappuccinoとAE-LPC11U35の接続
ターゲット側のシリアル接続ポートは,デバッグ対象のプロジェクト毎に異なる。
LPCCappuccinoのテストプロジェクトのソースを見てみたところ、デバッグライトを書き込むシリアルポートは、Port-1の13番ピン(TX)とPort-1の14番ピン(RX)に割り当てていた。
そこで、以下のように配線を行う。
デバッガとターゲットではSerialのTXとRXをクロスさせる。
配線後、AE-LPC11U35をUSBで、MCUXpressoが動いているPCに接続したら、まず、ターミナルを仮想COMポートに接続する。
ターミナルの接続先に、DAP-LINKの仮想COMポート番号を選択する。
トラ技ライターと同じ手順でデバッグを実行する。
ターゲット上でシリアルポートにデバッグライトが書き込まれると、MCUXpressoのターミナルにその内容が表示される。
NXP純正デバッガMCU-LINK PRO
NXP純正デバッガMCU-LINK PROは、仮想COMポート、I2CとSPIのブリッジをサポートする。
但し、ターゲットに給電できない。
PCに接続すると、デバイスマネージャで、COMポート2つと、ユニバーサルシリアルデバイス1つが追加された。
COM Port2の方は最新のFirmwareに更新した後に出てきたもので、J26コネクタの4番(RX)、5番(TX)ピンに割り当てられているらしい。
使用方法はAE-LPC11U35とDAP-LINKで作った、仮想COMポートをサポートするデバッガと同じ。
MCU-LINK PROとLPCCappuccinoの接続
MCU-LINK PROには、JTAG端子、SWD端子があり、両ケーブルも付属するが、LPCCappuccinoにはどちらも直接つながらない。
JTAG用には、バラのソケットピンケーブルも付属するが、SWD用はないので、SWD-JTAG変換ボードに10ピンソケットを実装したものを間に入れる。
デバッガから給電されないので、LPCCappuccinoには、ACアダプタを繋いだ。
各ボードのデバッグに関係するピンは以下の通り。
LPCOpenコードサンプル
Quick Start PanelのImport project(s) from file systemで、LPCOpenのコードサンプルプロジェクトを取り込むことができる。
Import project(s) from file systemダイアログでProject archive(zip)のBrowseボタンをクリックすると、MCUXpressoインストール先のアーカイブフォルダが開く。
LPCOpenフォルダを開き、一番下のlpc_openV2_03_lpcxpresso_nxp_lpcxpresso_11u37h.zipを選択する。
[Next」ボタンをクリックしたダイアログで、インポートするプロジェクトを選択し、「Finish」ボタンをクリックすると、ワークスペースに選択したプロジェクトが取り込まれる。
lpc_chip_11ux_libとnxp_lpcxpresso_11u37_board_libは必須なので,未取込の場合は必ず含める
サンプルプロジェクトを利用する際には、プロジェクト・プロパティのMCU Settingsで詳細な型番をLPC11U37/501に設定し、搭載メモリ量とアドレスを、LPCCappuccinoに合わせる。