2021年3月16日火曜日

LPC11U35 を使うには?

 自社製 LoRa 対応 GNSS モジュール、LoRa のアンテナを本体から分離したいという要望を受け、LoRa モジュールを本体から分離し、RS-232C でデータをやり取りすることにした。接続に4極のミニプラグ/ジャック(3.5mmΦ)を使って動く物は出来上がったのだが、どうにもすっきりしない。

 RS-232C のかわりに USB が使えないかと調べると、秋月で手に入る LPC11U35 が使えそうなことが分かった。はんだ付けの難易度は高そうだがちょっと試してみようと、マイコンボードを買ったのだが、プログラミングで躓いた ><。

 Web サイトにある mbed では開発できず(選択すべき Platform「EA LPC11U35 QuickStart Board」が存在しない)、それではと MCUXpresso で試すとデバッグビルドはできたが、全く動く気配が無い。どうもスタートアップルーチンをリンクできないようだ。

 「うごかねー」と twitter に愚痴を投げた「PlatformIOならいける」と情報をいただいた。試してみたら、なんとか動いて USB の CDC になって、ループバックできるところまで確認できた。細かい設定方法は忘れたが、MCUXpresso で環境を構築するよりは楽だった。

 ライブラリのサンプルコードは、ヘッダファイルに記述されている。ライブラリのヘッダファイルは、 #include "mbed.h" の行にカーソルを置いて F12 を押すと、mbed.h が開くので、1行目のさらに上にあるパンくずリスト mbed.h をクリックするとプルダウンリストが出てくるので、そこで > drivers を選択、さらに開いたプルダウンリストから、例えば Timeout.h を選択すると、指定時間経過すると指定された関数をコールバックする関数のヘッダファイルが開かれ、その中にサンプルソースがある。

 ビルドされたバイナリーを USB 経由で書き込む場合は、チェックサムを付加する必要があるのだが、これは手作業で行う必要がある。いろいろやり方はあるようだが、今回は MCUXpresso と一緒にインストールされた checksum.exe を使って、checksum -p LPC11U35 -d <バイナリファイル名> というやりかたでやった(元ネタはこちら)。



 

0 件のコメント:

コメントを投稿