「ADS1220」タグアーカイブ

MARY-OBとNucleo地震計

DSC03328
MARY-OBとNucleo地震計

先日のNucleo地震計にマルツの有機ELディスプレイMARY-OBを繋いでみた。

SPIとタイマー割り込みが相性が悪いらしく画面表示が乱れた。排他処理をして解決した。

乱れる表示画面
乱れる表示画面

MARMEX_OB基板OLEDライブラリを利用した。LPC1768用に作られているらしくそのままだとCompiler Error 35が出る。Nucleoで利用するにはmbedライブラリをupdateする必要があるらしい。

mbedライブラリをupdate
mbedライブラリをupdate

MARMEX_OB_oled.hの「#define MARMEX_OB_SPI_8BIT_MODE」を有効化してSPIの8ビットモードを利用する。表示する文字は16×16ピクセルに整形してスクリプトで文字列に変換する。

フォント
ビットマップ

ビットマップを文字列に変換するスクリプト

回路図
回路図

ソース
nucleoeq_maryob.cpp
fttfloat.c

Nucleo地震計

DSC03322
Nucleo地震計

とりあえず組み立て。

ソースはmbed地震計とほぼ同じ。ストロベリー・リナックスの有機ELディスプレイ はクリアな表示で快適だけどグラフィックを操るライブラリが見当たらない。GraphicOLEDも試したが要求と少し違う感じ。MARY-OBを使って大きな文字で「5強」とか表示したい。

部品:
有機ELディスプレイ
ADS1220
ADP150
KXR94-2050

回路図
回路図

ソース
nucleoeq.cpp
fttfloat.c

 

GR-SAKURA地震計

GR-SAKURA地震計と回転灯
GR-SAKURA地震計と回転灯

完成した。

CPUはRX63Nで計測震度の計算が非常に速い。SPI.begin()後に機能が変わるピンが分からなくて迷った。ADS1220の変換完了の検出にDOUT/DRDY出力を使用するとSPIが動作しないらしく、代わりにDRDYを使った。写真では加速度センサーを4連にしてある。

V50端子を短絡して5.0Vを出力する
J2を短絡して5.0Vを出力する

部品:
GR-SAKURA
液晶モジュール
ADS1220
ADP150
KXR94-2050

回路図
回路図

ソース
sakuraeq.cpp
fttfloat.c

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がうまく動かないのでソースを修正した。

ADS1220地震計

ADS1220地震計
ADS1220地震計

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

回路図

回路図

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

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