2019年02月23日

組込用ビデオコントローラ 解像度テスト

今回は先日紹介した組込用のビデオコントローラFTDI製BT815/816について解像度を変更して実験してみた結果を簡単に紹介します。

BT815/816はパラメータ設定で画面解像度のHSIZE、VSIZEは勿論のこと、水平、垂直のCYCLE、OFFSET、HSYNCといったパラメータを細かく設定することができます。

また、ピクセルクロックについても設定できるため、様々な液晶に対応しています。


BT815/816の動作保証範囲の最大解像度は800x600となっていますが、パラメータを細かく設定できるメリットを生かすと実は動作保証外でありながら、仕様の800x600を超えた高解像度の表示が可能です。

どこまで高解像度で可能かテストしてみました。
開発中のDigitalVideoSheildを下記のディスプレイに接続してテストしました。

手持ちのディスプレイ
LG IPS235 HDMI接続
iiyama Prolite E431S
Aitendo 7インチ800x480ディスプレイ
他中華製ディスプレイ

総称解像度PCLK表示
QVGA320x2402
WQVGA480x2722
VGA640x4802
WVGA800x4802
SVGA800x6002
WSVGA1024x6001〇※
XGA1024x7681〇※
WXGA
1280x768
1
SXGA1280x10241
UXGA1600x12001×
HD1920x10801×

〇は手持ちの複数ディスプレイで表示
〇※は表示するがアニメーションによって表示ラグ、不連続な動きが発生する場合がある
△は手持ちの一部の中華製ディスプレイで表示、アニメーションの表示ラグ、不連続な動き
×は手持ちの一部の中華製ディスプレイで表示するが不安定、ちらつき色抜け有、アニメーションの表示ラグ、不連続な動き

現実的にはWVGA、XGA辺りが限界なようです。
それ以上の場合は規格のフレームレート、周波数を逸脱するため、一般的なディスプレイでは信号チェック機能のエラー表示が出て表示できませんでした。

ただ、Aitendoのディスプレイや中華製ディスプレイでは信号チェック機能がないため、規格のフレームレート、周波数を逸脱している信号でもなんとか表示しようとします。結果として表示できてしまうという感じです。HDでもちらつきや色抜け等はありますが、無理に表示ができることが確認できました。


一般的な使用であれば仕様範囲内の800x480のWVGAの信号をHD表示のHDMIディスプレイに接続すれば、自動的に拡大表示されるので簡易的な情報を表示する分には問題ありません。

ただ、正直、SXGA辺りまで仕様で対応していれば理想的だと思いました。そこらへんは後継機種に期待したいと思います。



posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年02月16日

Digital Video Shield

HDMIトランスミッタTFP410を組み合わせて、
Digital Video Shieldを設計、作成してみました。

img1.jpg


SPIからDVI出力(HDMIコネクタ)するArduinoシールドです。

特徴は下記の通り。
  • Arduinoから文字列や図形、画像をDVI/HDMIディスプレイに描画可能。
  • 1MBのバッファRAMを搭載しているため、滑らかに表示の切り替え可能。
  • バッファIC搭載しているため、5V耐圧でArduinoUNOにも対応。
  • 最大解像度は800x600。
  • 128MbitのNOR Flash W25Q128を搭載しており、フォントや画像といった任意のデータを保存可能。
  • microSDスロットを搭載。

試しにBT816のデモ画面を800x480の
HDMIディスプレイに表示してみました。

img3.JPG


続いてBT816のデモ画面を開発用PCの1920x1080
(解像度は800x480)のHDMIディスプレイに表示してみました。


img6.jpg


HDMIディスプレイに文言を表示するためだけにraspberrypiといった
コンピュータを搭載するのは電源管理やセキュリティ管理などなかなか面倒です。
そんな場合にArduinoで簡単にHDMI出力できるDigital Video Shieldが便利です。

動画やアニメーションを高解像度、高フレームで処理することは
SPIの通信限界で難しいですが
時刻や簡単な情報、画像を切り替える程度はスムーズに可能です。

現在、量産前の試作検討をしており、
問題なければ春頃、どこかで1個5千円程度で販売開始予定です。

サンプルコードや詳細情報はこちら

続きを読む
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年02月09日

2.42インチOLEDモジュール試食 その2

今回はAliexpressで購入した2.42インチOLEDモジュールについて紹介します。


今回は基板が違ったため、改めて紹介します。

液晶ドライバはSSD1309で以前と同じようですが、
背面のSPIとI2Cの切り替え回路や昇圧回路回りが異なります。
また、Aliexpressのサイトの写真と実際に届いたものは若干違いました。

背面にSPIの時にはR17、I2Cの時はR15,R13と書かれていますが、
R13は見つかるものの、R15は見つかりません。
基板を見る限り多分、R18の間違いです。

ただ、不思議なことにR18が2つあります。
下記の写真の左右赤枠部分です。

結論から説明するとI2Cの場合はR17(下図白枠)を外して、
R13(中央)とR18(左)、R18(右)に抵抗を接続します。
R18(右)はCSに接続する抵抗のため、0Ωで落とします。
それ以外は適当に1kΩを接続しました。

OLED.jpg

背面の説明のR15がなく、R18が2つあるという不思議なOLEDですが、
上記の接続で何とか動作確認ができました。
ただ、5つ購入した中で2つ動作せず、
1つはリボンケーブルの再ハンダ付けで動作し、
残り1つは完全に故障していました...

残りの4つはお馴染みのリセット回路で4線配線の動作確認ができました。
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2019年02月02日

組込用ビデオコントローラ

今回は組込用のビデオコントローラについて紹介します。

組込用の小型グラフィック液晶等では
SSD1306、ILI9340、ST7565といった
コントローラICを搭載したモジュールが多く販売されています。
このようなコントローラICを使用することで
液晶のパラレル信号を扱いやすいSPIやI2Cといったシリアル信号に変換しています。
最近ではマイコン自体にコントローラを搭載しているものもあります。


一方で高解像度LCDになるとSPIやI2Cといったシリアル信号では
信号転送が間に合わないため、
LVDSやRGBといったパラレル接続が一般的です。

高解像度LCDではパラレル接続が一般的ですが、
世の中には大型RAMを搭載することで
SPIやI2Cといったシリアル信号から高解像度LCDをコントロールする
ビデオコントローラがあります。

日本で入手が難しい&安定供給が不明あるものの、
外部SDRAM、HD出力に対応しています。
HD対応とSDRAM対応は非常に魅力的ですが、
高価&入手性に難ありです。

FTDI製。日本で入手が容易である程度、安定供給が見込まれます。
NOR Flash対応、最大800x600の解像度に対応しています。
1個600円前後。

■LC74900
オンセミ製。既にディスコン予定。最大800x480の解像度。
1個1500円前後

■他


他にも低い解像度のものはありますが、
最低限800x600は欲しいものです。
また、市場がニッチなため、
すぐにディスコンになっているものが多いようです。

入手性や安定供給を考えるとFPGAで実装かFTDIが妥当そうです。

組込用のビデオコントローラを使用すれば、
SPIから高解像度のLCDを制御することができます。
FTDI辺りのビデオコントローラで実験してみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年01月26日

Node-RedからのElasticsearchデータ検索

Node-RedからElasticsearchのデータを取得する場合に
少し煩わしい点があったため備忘録として紹介します。

Node-Redに限らず、
Elasticsearchにデータ投入する場合はPostメソッドを使用します。

Elasticsearchに投入したデータを検索して取得する場合は
CurlコマンドやKibanaのコンソール画面からはGetメソッドですが...

公式のElasticsearhの検索APIの説明でもGETメソッドを使用しています。

一方、Node-Redから検索APIを使用する場合は
Getメソッドでは取得できませんでした。
Getメソッドを使用するとmatch_allコマンド同様の結果となり、
意図した検索がされず、投入データすべてがhitとなってしまいます。

Node-Red本家のIBMのサイトで検索APIをNode-Redから使用する際の方法について説明がありました。
「複数の検索条件を指定する場合はメソッドがPOST」を使用する

直観的にはGetメソッドですが、
Node-Redからの場合はPostメソッドの使用するのがポイントのようです。

実際にPostメソッドで検索APIを使用すると
意図した検索範囲の結果を返してきました。

同様にPostメソッドを使用します。


CurlコマンドやKibanaのコンソール画面ではGetメソッドで取得できるにも関わらず、
Node-Redからは取得できないため、Wiresharkで小一時間色々試行錯誤してしまいました。

posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする