LTC2450-1とLTC2450

前回LTC2450-1モジュールを試したが期待した変換速度が得られなかった。

チップを拡大して観察すると、なんだか違うチップが載ってるような気がしてきた。LTC2450-1ではなくてLTC2450ではないか?

LTC2450-1…か?
LTC2450-1…か?
LCTR
LCTR

データシートによればLTC2450-1にはLDBZとマーキングされていて、
LTC2450にはLCTRとマーキングされている。
LTC2450とすると変換速度は実測値と一致する。

追記:秋月に問い合わせフォームで知らせたところ、「ご指摘の通り」との返答があった。現在は販売停止中のようだ。

追記2:販売再開された。

16bit ADコンバータLTC2450-1

LTC2450-1をテスト
LTC2450-1をテスト

秋月で売ってるLTC2450-1をテスト。arduino unoで試す。

LTC2450-1は1入力だけなので3軸加速度センサに接続する時は3連にする。変換時間は「約16.6ms(最大21ms)」と書いてあるけど実際は34msかかる。どうしたものか。

回路図
回路図

スケッチ:

#include <SPI.h>
unsigned char m_data; //MSB byte
unsigned char l_data; //LSB byte
const int CS = 10;
void setup() {
	pinMode(CS, OUTPUT);
	SPI.begin();
	SPI.setBitOrder(MSBFIRST);
	SPI.setDataMode(SPI_MODE3);
	SPI.setClockDivider(SPI_CLOCK_DIV16);
	Serial.begin(9600);
}
void loop(){
	digitalWrite(CS,LOW);
	m_data = SPI.transfer(0x00);
	l_data = SPI.transfer(0x00);
	digitalWrite(CS,HIGH);

	printHex(m_data);
	printHex(l_data);
	Serial.println("");
	delay(34); //必要に応じてwaitを置く
}

void printHex(unsigned char d) {
	Serial.print( ( d < 0x10 ) ? "0" : "" );
	Serial.print( d, HEX);
}

 

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

 

鳥と地震と地震計