Skip to content
kinneko edited this page Nov 13, 2013 · 16 revisions

VGAに変換出力してみる

 BeagleBone Blackには、micro HDMIが付いています。

 HDMI付きのプロジェクターなどで、画面を直接プレゼンするときには、HDMIの変換コネクタとHDMIケーブルを持ち歩けば問題ありませんが、残念なことに世間で設置されているプロジェクターは、まだたVGA入力が主流です。

製品の選択

 HDMI(IN)-VGA(OUT)なコンバーターは、市販品は結構高価で、それをそのまま購入したのでは、できるだけ安く遊ぶというこのサイトの主旨に反します。

 ところが、Amazonでは、安価な中国製と思われるものが入手できます。

 こちらは、アックスの竹岡さんのところでRasPiで問題なく動いているようです。

 たぶん、中身は先にあげたものと同じだと思いますが、違うところのものを買ってみました。

モニタの自動認識はできない?

 自動表示がうまくできなくても、BeagleBone Blackでは、kernel起動プションで表示解像度をEDIDと無関係に固定できるので、調整できる可能性があります。  万が一動作しなくても、汎用性は諦めて、HDMIの音声分離用に使えるかもしれません。

 また、変換がbit to bitになっていて、希望の解像度での画像の変換ができない可能性もあります。

 購入の際には、上記のうような注意外必要です。

電源供給は足りるのか?

 この手の製品の使用リポートを読んでみると、動作しないのは、変換チップの動作のために、HDMIから電源を取っているからのように思えます。HDMIでは、規格上電源をとってもいいのは50mA程度(最大55mA)なので、変換用のチップが、これで動作するとは思えません。最近は、ホスト側で500mA程度の供給に耐えるようになっているものが多いそうなので、それをアテにした設計なのかもしれません。

 それでも、HDMIの給電足りないときは、下記のような電源供給ケーブルが売られています。

現物到着

現物1 現物2 現物3

接続してみる

やはり、VGA-HDMIコンバーターは、HDMIの電源吸うのか、USB給電でコンバーターをつないで起動すると、BeagleBone Blackが起動しませんでした。BeagleBone Blackが起動してから挿したら、落ちはしないようですが、しばらくするとハートビート信号が止まって落ちていることがありありました。

 5VACで電源供給してやっても、しばらくすると落ちる問題は同じです。

 その時に、BeagleBone Blackからはどのように見えているか確認してみました。

 EDID信号は読めていません。

root@beaglebone:~# parse-edid /sys/class/drm/card0/card0-HDMI-A-1/edid
parse-edid: parse-edid version 2.0.0
parse-edid: IO error reading EDID

 出力解像度をkernelのブートパラメータにハードコードしてみましたが、かわりません。そもそも効いていないのかもしれません。

root@beaglebone:~# cd /media/BEAGLEBONE/
root@beaglebone:/media/BEAGLEBONE# vi uEnv.txt
root@beaglebone:/media/BEAGLEBONE# cat uEnv.txt
kms_force_mode=video=HDMI-A-1:1024x768@60 optargs=quiet drm.debug=7
root@beaglebone:/media/BEAGLEBONE# reboot

root@beaglebone:~# cat /proc/cmdline
console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait

 接続はされていると認識しているようです。

root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/enabled
enabled
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/status
connected

 電源管理はVESAのDPMSであることもわかります。

root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/dpms
On

解像度も取れているのですが、モニタ側は「信号が入力されていません」です。

root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/modes
1024x768
800x600
800x600
848x480
640x480

容量不足?

 5VACで電源供給してやると、RT1のポリスイッチがかなり熱くなっているのに気が付きました。

 RT1は、USBコネクタのすぐ後ろの黄色い部品です。USBのポリスイッチかと思っていたのですが、端子名を調べると、RT1(Polyswitch type fuse for HDMI)と書いてありました。BOMリストによると、100mAで制限するものが付いているようです。ショートすると使えるかもしれないですが、壊す危険があるので、USBからHDMIに給電できるアダプタで試すことにした。

給電ケーブル
拡大

 これをHDMIにはさんでやると、画面表示もできた。モニタのほうは、1280x720で表示されている。uEnv.txtで指定したkernelのパラメータは削除してある。

 状態を確認してみる。

root@beaglebone:~# parse-edid /sys/class/drm/card0/card0-HDMI-A-1/edid
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.

	# EDID version 1 revision 3
Section "Monitor"
	# Block type: 2:0 3:fc
	Identifier "YCE"
	VendorName "YCE"
	ModelName "YCE"
	# Block type: 2:0 3:fc
	# Block type: 2:0 3:fd
	HorizSync 15-46
	VertRefresh 59-61
	# Max dot clock (video bandwidth) 80 MHz
	# DPMS capabilities: Active off:yes  Suspend:no  Standby:no

	Mode 	"1920x1080"	# vfreq 60.000Hz, hfreq 67.500kHz
		DotClock	148.500000
		HTimings	1920 2008 2052 2200
		VTimings	1080 1084 1089 1125
		Flags	"+HSync" "+VSync"
	EndMode
	Mode 	"720x480"	# vfreq 59.940Hz, hfreq 31.469kHz
		DotClock	27.000000
		HTimings	720 736 798 858
		VTimings	480 489 495 525
		Flags	"-HSync" "-VSync"
	EndMode
	# Block type: 2:0 3:fc
	# Block type: 2:0 3:fd
EndSection

root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/enabled
enabled
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/status
connected
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/dpms
On
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/modes
1280x720
720x480
640x480

 参考までに、電源コントールまわりも。

root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/power/control
auto
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/power/autosuspend_delay_ms
cat: /sys/class/drm/card0/card0-HDMI-A-1/power/autosuspend_delay_ms: Input/output error
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/power/runtime_status
unsupported
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/power/runtime_active_time
0
root@beaglebone:~# cat /sys/class/drm/card0/card0-HDMI-A-1/power/runtime_suspended_time
0

Audio出力してみる

 VGA変換器には、Audio出力も付いています。こちらも試してみましょう。

 出力手順は、「HDMIから音声出力を取り出す」と同じです。

 こちらも無事音が出ました。

 しかし、「スクリーンが切れると音も止まる」問題は同じです。


分解してみた

 HDMI-VGAコンバーターを分解してみた。シンプル。

 5Vを直接加えたらいいやんと思ったが、線が細いのとホットボンドで留められているので無理そげ。

 ICはこれのよう。配線されていないが、どうもデジタルで出力もあるチップみたい。

  • EXPLORE MICROELECTRONICS(台湾) EP94Z1E

全体
ピンぼけ