RTLドングルに関するニュースサイトrtl-sdr.comに、SDR#の作者が新しいSDR向けのハードウェアAirSpyをデザインしているという記事が掲載されました。興味が出たので読んで見てみると、Cortex-M4F(204MHz)、12bit-ADCという記述が目につきました。このスペックをマイコンと内蔵ペリフェラルで実装しているようです。記事にチップの型番など詳細について記載はありませんでしたが、スペックを頼りにネットを検索してみると、クロック速度やアーキテクチャ(M4F)からLPCシリーズのチップが該当するようです。LPC43xxというシリーズのLPC4370というチップには12bit-最大80MSPSのADCが2ch搭載されており、どうやらAirSpyはこのチップを使っているようです。
引き続き情報収集していたのですが、このLPC4370というチップは、LPC-Link2という組み込み開発用インターフェースに搭載されており、非常に安価に入手可能であることがわかりました。この製品は、独立した汎用の開発用デバッグツールではあるのですが、密かにLPC4370チップの評価用ボードとして使うことも意図されているようです。このボードは昨年の春くらいから入手可能だったらしいのですが、まったく視界に入っていませんでした。LPC4370の発表は昨秋でしたので、チップの発表よりも先に搭載されていたということなのでしょうか。
さらに、LabToolという製品も販売されており、10bitのロジックアナライザや、先ほどのADCによる高速アナログ入力を使って、2chのデジタルオシロスコープを実現しているようです。ソフトウェアはgithubで公開されています。LabToolは、LPC-Link2ボードをアドオンする形になっています。
LPC-Link2やLabToolはEmbedded Artistsという会社が設計と販売を行っているようです。LPC-Link2の回路図は公開されています。LabToolのほうは購入者にのみ公開されているようです。
LPC-Link2は、秋月やマルツで2000円台と安価に入手可能です。LabToolのほうは、一般通販での取り扱いが見当たりませんでしたが、Mouserで購入することが可能です。こちらも99ユーロ(日本円で1.4万円程度)と比較的安価です。
LPC4370を試してみるためにLPC-Link2を注文していたのですが、このことを忘年会で話題にしていたところ、好意でLabToolを試用させていただけることになりました。年末休みに入ってからこの2台が同じ日に届きました。写真はLPC-Link2と、同じくLPC-Link2が搭載されているLabToolです。
まずは今回、LabToolを試してみました。ソフトウェアですが、ソースコードが提供されていますが、Windows用に加えてなぜかRaspberry Pi用にバイナリが提供されています。なので、WindowsやRaspberry Piであればすぐに動作させることが可能なようです。残念ながらLinuxやMac OSX対応は用意されていません。ソースを確認したところLinux (i386)は対応しているようです。Mac OSXについてはすこしトライしてみたところ、動作させることができました。正月休みに試した時にはRaspberry Piのデスクトップ環境やWindows環境を使うことができなかったので、今回はMac OSXで試した状況を書きたいと思います。Mac OSXでのソフトウェア構築手順については後日報告したいと思います。
USBを、LabToolに搭載されているLPC-Link2に接続します。電源はバスパワーです。LabToolソフトウェアを起動すると、最初にファームウェアの書き込みが行われ、USBの再認識が行われ、成功するとレディ状態になります。メニューからDevices>LabTool Devicesが選択されていることを確認しておきます。
LabToolは、ジェネレータとキャプチャーをタブで切り替えます。まずは波形測定を試してみます。アナログ測定の場合は、Add Channelボタンを押して、Analog Signalを追加します。
そうするとチャネルが画面に追加されます。
BNCコネクタのアナログ入力に、外部から信号を入れてみます。サイン波(1KHz, 2Vpp)を入れてみました。サンプリング周波数は1MHzに設定しています。開始ボタンを押して、データ取得を行います。連続測定の場合は隣のinfinityボタンを押します。このように無事波形が取れました。
続いて方形波。オフセットがずれていますが、元の信号にバイアスがあるためです。
1MHz 2Vpp。このくらいの周波数なら大丈夫です。サンプリング周波数は60MHzに設定しています。
ちょっと高めの周波数(10MHz 2Vpp)。振幅が低い周波数の場合にくらべて1/2くらいになっています。さすがに厳しいようです。
100MHzではまったく振幅が出ませんでした。LabToolではサブナイキストサンプリングは入らないようです。
つづいてデジタル信号のキャプチャです。
LabToolのボード上にはLPC4370の他にもう一つLPC812が載っていて、テスト用のデジタル信号が横のコネクタから、シリアルやI2C、SPI等のフォーマットで出力されています。信号の種類は裏面にシルクで記載されています。
これをロジックアナライザの入力として接続します。
Add Channelボタンを押し、デジタルチャネルをそれぞれ追加します。取得だけではなくデコード機能があります。Analyzerの選択項目でSPIやI2C, UARTを追加してみます。
Analyzerの場合は、UARTの場合はbpsなど種別ごとに設定があります。
動かしてみました。各信号は繰り返し出力されています。下記は一回分を表示しています。
I2Cはデコードできているようですが、シリアルやSPIの解読は残念ながらうまくいきませんでした。何か使い方が間違っているかもしれません。
続いて、シグナルジェネレータも試してみます。タブをGeneratorに切り替え、デジタルとアナログそれぞれチャネルを追加して、適当なビットパターンと、正弦波に設定してみます。
その信号をオシロで確認してみました。デジタル、アナログそれらしく信号が出ているようです。
ざっと簡単にですが、LabToolの機能を確認することができました。
ソフトウェアには信号解析機能があったりと、なかなか意欲的だと思います。ソースがオープンになっているのも有り難いです。FFTを追加したりなど、改造していろいろと遊べそうです。SDR向けには帯域が物足りないかもしれません。裸のLPC-Link2の性能も確認してみたいところです。
次回はMac OSXでのソフトウェア環境の構築について書きたいと思います。
リファレンス
- rtl-sdr.comのAirSpyの記事 https://www.rtl-sdr.com/airspy-new-12bit-20msps-sdr-dongle-prototype-author-sdrsharp/
- ニュースリリース https://www.nxp.com/news/press-releases/2013/10/nxp-introduces-lpc4370-microcontroller-for-high-speed-data-acquisition-applications.html
- NXPのLPC4370製品ページ。デモボードとしてLPC-Link2が紹介さrている。 https://www.nxp.com/products/microcontrollers/cortex_m4/LPC4370FET100.html
- LPC-Link2をデモボードとして使う紹介記事。サンプルコードもあります。 https://www.lpcware.com/content/faq/lpcxpresso/using-lpclink2-as-lpc4370-eval
- LPCZoneのLPC-Link2とLabToolについての記事 https://www.nxp-lpc.com/lpc_boards/lpc-link2/
- YouTube LabTool紹介 https://www.youtube.com/watch?v=gbfsMKcjk-k
- LPC-Link2紹介 https://www.youtube.com/watch?v=YhHGCyLqPpI
- Mouserで販売されているLabTool https://jp.mouser.com/ProductDetail/Embedded-Artists/EA-XPR-202/?qs=%2fha2pyFaduiNfub5PsVZSBXuzUeYmAiZVxDyeZ9J%2fmw%3d
- LPC-Link2入手先。マルツ https://www.marutsu.co.jp/shohin_224782/
- 秋月 https://akizukidenshi.com/catalog/g/gM-06706/