mbed地震計

mbed地震計
mbed地震計

完成した。

少しノイズがあるのでデジタル・アイソレータADuM5401も試したが効果は無かった。計測震度0.1程度なので支障は無いと思う。

起動後2147秒後にハングアップするバグに悩んだが、Timerが0x7fffffffでオバーフローしていた。

ユーザメモリ32kバイトでは足らないのでシステム用メモリも使用する。
http://mbed.org/users/okini3939/notebook/mbed256_memory/

char buf1[0x4000]; // 通常エリア
char buf2[0x4000] __attribute__((section(“AHBSRAM0”))); // USB用エリア
char buf3[0x4000] __attribute__((section(“AHBSRAM1”))); // Ethernet用エリア

回路図
回路図

ソース
mbed_lpc1768_eq.cpp
fftfloat.c

追記:
Timerがうまく動かないのでソースを修正した。

mbed LPC1768 — ADコンバータを接続する

ADS1220とmbed LPC1768
ADS1220とmbed LPC1768

mbedに先日使ったADS1220を接続する。mbedの入出力の電圧は分からなかったが、出力を測定すると3.3Vだったので入力も3.3Vと信じる。

windows環境においてusb経由でprintfなどの出力をモニタする場合はwindowsにシリアルポートドライバをインストールする。

ホーム→Communicating over USB Serial→Windows-serial-configuration→Download latest driverをダウンロード→インストール

spi.formatはADS1220のデータシートにSPI mode 1と書いてあるのでspi.format(8,1)とする。

pc.baudはデフォルトで9600bpsが設定されていて実際その速度で入出力される。モニタするには少し遅いので115200bpsなどに設定する。pc側も同じ速度にする必要がある。

ADS1220は待ち時間を入れないと正常に動かないので適度にwaitを入れる。実測で電源投入後に56ミリ秒、リセットコマンド後に16マイクロ秒以上waitを入れると正常に動いた。

DigitalInとSPIを同じピンに定義すると上書きされるらしく動かない。GPIOのレジスタを直接読み出すと動く。

シリアル出力は14バイトごとにpcに送られるらしい。断片を想定していない場合は、14バイトに整形して出力するか、受信側で整形する必要がある。

次にLCDを接続する。

ソース
mbed_lpc1768_adc1220.cpp

mbedで地震計を作りたい

mbedで地震計を作りたい。

先日作ったIntelGalileo地震計は入出力がボトルネックとなってハードウェアの性能が出し切れていない感じだった。mbedは高性能らしいので期待したい。秋月で売っていたmbed LPC1768で試す。

まず開発環境を登録する。

mbed.org→サインアップ→ボード接続→MBED.HTM開く

サンプルをビルドする。

home→Platforms→mbed LPC1768→ Hello World!→ Import program→ Compile→ファイルに保存→mbedドライブにコピー→ボードのリセットボタンを押す→LED点滅

次はADコンバータを接続する。

追記:しばらくするとメールアドレスの確認メールが届く。

あなたのmbedメールアドレスを確認してください

リンクをクリックしてログインするとメールアドレスが確認される。

ADS1220地震計

ADS1220地震計
ADS1220地震計

24ビットADコンバータADS1220で地震計を作ってみる。ADS1220はADS1247と比べて測定精度は同等で、機能はやや少ない。「I2C インターフェイス付」と説明があるが実際にはSPIしか付いていない。デジタル電源とアナログ電源が分かれているのでSPI入出力を5Vにしてアナログ入力を3.3Vにする事も可能。

回路図

回路図

ソースはC18でコンパイルする。
main.c
HardwareProfile.h

pc側のソフトのソースは地震計10にある。

 

鳥と地震と地震計