Tets' gadgetry blog

Maker的なもの、電子工作、アート、サイエンス、DIY、旅行 etc.

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

LPC810 を mbed で使ってみる

トラ技の2月号の付録が 8 Pin DIP の ARM マイコン LPC810 だった。
32bit マイコンが 8 Pin DIP で¥80とはすごい時代になったんだと思うが、このマイコンの仕様を見ると、ちょっと残念な気がする。 処理能力は非常に高いが、A/D変換入力や EEPROM がない。 8 Pin マイコンのアプリケーションとしてはほんのちょっとしたものを想定しているのだろうけど、センサ類、例えば光センサなどでは安いものと組み合わせようとなると、やはり A/D 入力が必須だと思う。

ということで、もう試用しないでおこうかとも思ったのだが、CD-ROM も付いていたので LPCXpresso をインストールしてちょっとサンプルプログラムでも見てみることにした。
ところが、ちょっとLチカしようとしても、けっこうめんどくさい。 IOポート以外の機能を使おうとしても、サンプルプログラムは分かりにくい。

mbed のように簡単にいかないものかと思ってWebを検索してみると、LPC812(LPC800-MAX) は mbed 対応になっているので、小細工することで LPC810 でも使えるという内容のものがかなりあった。
トラ技の来月号には ARM ライタが付くので、それを待ってからでもよかったのだけど、ISPモードでやってみようという気になってきた。
mbed のユーザーコーナー、 Norimasa Okamoto さんの lpc810_helloworld のページに詳しい説明があり、早速そのプログラムをインポートして試してみることにした。 小細工としては、スタックポインタを LPC810 のメモリサイズに合わせた値に再設定しているということだ。
コンパイルしてダウンロードした bin ファイルを hex ファイルに変換、Flash Magic と秋月の AE-UM232R を使って ISP モードで LPC810 に書き込んだ。
LPC810 の実験
このプログラムでは LED は P0_0 ポートに接続。 この状態ではLチカは正常に動作した。
他のポートを試してみると、P0_0, P0_1, P0_4 では正常に動作、しかし P0_2, P0_3, P0_5 では光らない。
Webを検索した中の共立プロダクツ blogこちらのページにそのような記述を見つけた。

やはり、LPC812 用に対応した環境を LPC810 に使うにはどこか無理があるようだ。 何とか使えるようにしたいと考えた。 トラ技の記事にはスイッチ・マトリクス・ツールのことがあったが、まだ使っていない。 LPC812 mbed の環境では LOPC810 のピンの初期設定がちゃんとできていないのではないかと思われた。
Switch Matrix Tool を立ち上げて、LPC810 を選択すると、
LPC810 デフォルトのピン設定
デフォルトでは 1,3,4ピン( P0_2, P0_3, P0_5 )がIOポートになっていない。

これらをIOポートに変更して、
LPC810 ピン設定変更
生成される初期設定のコードを mbed のプログラムに入れてみることにした。

コンパイルが正常に通るかなあと思いつつ試してみると、エラーも出ず bin ファイルができた。
コンパイルが通ったのでめでたしめでたし、特に通る要因も調べなかったが、ヘッダファイル等は LPCXpress と共通のもの使っているということではないだろうか。
この状態ではポート P0_2, P0_3, P0_5 でも正常にLチカが動作した。

他の機能はまだ使っていないが、mbed で使えるならいいかもしれない。 8ピンマイコンのアプリケーションとしては PIC でいいと思っていたが。
その後、LPC810 でちょっとしたプログラムを試してみた。
I2C の LCD をつないでみようと思って、"I2cLCD" ライブラリをリンクしてみると、コンパイルは通ったが LPB810 のメモリサイズを超えてしまった(LPC800ではOK)。 このライブラリは printf 等もサポートしているので、サイズが大きいようだ。 I2C LCD を使うにはもっと低レベルの処理である必要がある。
I2C のスレーブデバイスとして使ってみようと思って、"I2CSlave" クラスで簡単なプログラムを書いてみた。 コンパイルしてみると、undefined のエラーが出てバイナリができなかった。 プラットフォームを LPC1114 に切り替えるとコンパイルは通るし、原因が分からなかったので mbed.org の LPC800-MAX のページにに質問を書き込んでみた(LPC810 で使うことは書かないで)。 すると、ほどなく回答の書き込みがあって、LPC810 ではまだスレーブモードは対応していないということだった。
スポンサーサイト
  1. 2014/01/26(日) 23:00:00|
  2. 電子工作
  3. | トラックバック:0
  4. | コメント:0
<<トラ技ARMライタを使ってみる | ホーム | ラジコンカーのプログラムを I2C 制御に変更>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://tetschan.blog.fc2.com/tb.php/37-9e7e277f
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

てっちゃん

Author:てっちゃん
FC2ブログへようこそ!

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (19)
電子工作 (76)
アート (28)
Maker (19)
サイエンス (20)
旅行 (1)

検索フォーム

RSSリンクの表示

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。