LPC4330-Xplorer

現在位置のナビ

トップコンピュータの国雑記帳オーディオ譚DAR-001TGサポートページ → LPC4330-Xplorer

説明

DAR-001TGを制御しているマイコンは、LPC4330-Xplorerです。 このマイコンを使用するためのノウハウを、書いてみます。

LPC4330-Xplorerとは

LPC4330-Xplorer基板を製造しているのは、インドのNGXという会社です。

基板に乗っているMCUのLPC4330は、半導体メーカーNPCが販売しているLSIです。 ARMのCortexM4アーキテクチャーを採用していて、コプロセッサーのCortexM0や浮動小数点対応、NPC独自のSGPIOペリフェラルなどが載っています。

DAR-001TGにLPC4330-Xplorerを採用したのは、以下の機能、性能が必要だったからです。

  • USB2.0の Hi-Speed通信
  • SGPIOによる柔軟なシリアル通信(同一ピンでI2SとDSD入出力を切り替えられる)
  • 204MHzというCortexM4プロセッサとして当時の最高クロック

表面実装コネクタ

LPC4330-Xplorerに限らず、最近のマイコン基板はI/O端子が表面実装になっています。

従来のコネクタは信号ピンが基板のスルーホールにささっていたので、信号ピンをハンダ付けするだけで固定されていました。 表面実装コネクタだとハンダ付けが表面で終わっているので、剥がれやすくなっています。

表面実装コネクタをよく見ると、基板にコネクタを固定するための足が出ています。 この足がスルーホールを通っているので、ハンダか接着剤で固定するだけで強度が上がります。

固定前後の比較写真を載せます。

connector fixing

体験した故障

LPC4330-Xplorerを使用して体験した故障を書いてみます。

  • GPIOに過大入力
    耐圧3.3VのGPIOピンに5Vをかけると、ペリフェラルが死にます。 別にこのマイコンに限った話ではなくて、たいていのMCUで起きる現象です。 だれでも1度や2度はやる失敗、パーフェクト・ヒューマン・エラーというヤツですね。(注 パーフェクトはエラーを形容している)
  • 突然の動作不良
    最近死んだ基板は、どこかで3.3VとGNDが短絡しています。 調査中ですが、あまり調査に時間を割けません。
  • フラッシュへのプログラミング失敗
    こちらは、原因が複数あるようです。 書き込みに失敗する条件として判明しているものを、この後で書きます。

フラッシュROMのプログラミング

LPC4330-XplorerのフラッシュROMにプログラミングするときは、データが以下のパスを通ります。

Windowsパソコン
USB接続のARMデバッガー(ME/LINK2 または トラ技2014年3月号の付録基板 または LPC-LINK2 など)
LPC4330のコア(M4とM0のどちらか 好きな方を指定することも可能)
SPI接続のフラッシュROM

フラッシュROMへのプログラミングに失敗する条件がいくつかあります。

  • 条件1 Explorer基板に電源を供給していないと、JTAGがマイコンを認識しません。 Explorer基板に2つあるUSBマイクロB端子のどちらかにUSBケーブルをつないで給電する必要があります。 給電するデバイスにパソコンを使用する場合、給電開始直後にマイコンが起動してUSBターゲットデバイスとして認識されても良いように配慮しましょう
  • 条件2 フラッシュROMはマイコンのSPIバスにつながっているので、JTAGから直接書き込めません。 一旦マイコンのRAMにフラッシュ書き込みプログラムを送り込んで、間接的にWindowsパソコンから書き込みます。 この書き込みプログラムが動作するために、コードとデータの領域が必要です。 新規にuVisonでプロジェクトを作った時に自動設定されるデフォルトサイズでは足りないので、0x8000とか0xc000に増やします。
  • 条件3 JTAGからマイコンをリセットできないタイミングがあるようです。 割り込みが連続している時などです。 バグのあるプログラムをフラッシュROMに書き込んでしまうと、何度リセットボタンを押してもすぐにマイコンが応答不可能状態に移行するケースもあります。 そんな時は、起動デバイスを選択するDIPスイッチをUSBモードなどに変更すると、フラッシュROMから起動しなくなって、リセットが有効になります。

DAR-001TGを開発していた頃は、開発環境であるuVisionはバージョン3でした。 2017年1月現在、最新バージョンは5です。 我が家ではuVisionをバージョン5にしてから、トラブルが増えました。

ARMデバッガーとしてメインに使用しているのは、以前のXplorerに添付されていたME/LINK2です。 このME/LINK2は、Windowsが認識すると専用のデバイスドライバが組み込まれて、パソコンから効果音が聴こえます。 なぜか、ME/LINK2をパソコンに接続し続けていても、Windowsがデタッチ/アタッチを繰り返して、効果音が聞こえてきます。 原因不明です。 ME/LINK2の代わりにトラ技の付録基板を使用しても、同様です。

しかも、フラッシュROMに書き込めない現象が時々発生します。 再現条件も原因も不明です。

LPC4330-XPlorerの代替品

LPC4330-Xplorerは、採用理由に書いたように使いでのあるマイコン基板ですが、いくつかの欠点もあります。

  • 基板上にEthrenetやローエンドオーディオDACが乗っていて、使いたくても使われている信号ピンがある。
  • SGPIOに外部クロックを入れるためには、TP7へジャンパを飛ばす必要がある。
  • 品質や、入手性に難あり(同じ店で買っても、タイミングによって商品パッケージが違ったり、ピンヘッダがすでにはんだづけされていたりする)
  • 高価

実は、ARMデバッガーとして売られているLPC-Link2が、これらの欠点を克服していてマイコン基板として有望なのです。 商品分類はME/LINK2とおなじARMデバッガーですが、アーキテクチャはUSBマイコンそのものです。 ただ唯一の欠点が、信号の出ている端子がハーフピッチコネクタだったため、ユニバーサル基板に接続するのが難しいことです。

Webmasterはネットショップを探しているとき、つい最近ですが秋月電子通商でハーフピッチコネクタと基板のセットを見つけました。 通販コードP-01151です。 写真も載せます。 これを使えば、LPC-Link2をUSBマイコンとして使用できそうです。

LPC-Link2

LPC-Link2はのっているMCUが違う型番で、ふたつ目のM0コアも載っています。 LPC4330では全てのペリフェラルがM4とM0両方のコアからアクセスできましたが、こちらは2つのM0が役割分担しています。

LPC4330-Xplorerのファームウェアを移植するには、新たにノウハウを身につける必要があります。 それでも時間ができたらぜひ勉強して、XplorerからLPC-Link2に乗り換えたいと考えています。

2017年1月9日 初出


back button DAR-001TGサポートページへ