Quick Charge 2.0 モバイルバッテリーで 9/12V 生成し、デジカメ・DMC-G7 に給電

 記事にはしていませんが、実は春に近所のキタムラで DMC-G7 + 14-140mm + 単50mm がポッキリ7万円で投げ売りされていたので直ちに確保しておりました。
 後に 12-60mm も追加購入する羽目に陥り、すっかりマイクロフォーサーズ沼に漬かり始めてしまい・・・


 DMC-G7(というかバッテリーに DMW-BLC12 を使う全てのパナソニックデジカメ)は DMW-DCC8 という DCカプラーを使うことで外部から電源供給を受けて使えるようになります。
 よって、長時間の動画撮影では普通の 5V モバイルバッテリーに XL6009を使った昇圧モジュール を繋いで 5V→8.4V して使っておりました。

 実際には 8.4V ではカメラ側で低電圧警告が出てしまい、9V まで上げないといけなかった。


http://dl.ftrans.etr.jp/?b71d6c4c53fc44bfac01ecd6659797dd49972200.jpg http://dl.ftrans.etr.jp/?d261a8bf27f94064a4eeea6954bbe8eb2ce882bd.jpg


 これはこれで全く問題なく利用できてしましたが、最近になって Quick Charge 3.0 対応モバイルバッテリー を購入しまして、Quick Charge だったら 9V/12V の出力ができるはずで、いったん 5V を介するのは無駄だろ?ということに気が付いてしまいました。


 ぐぐってみると先人さんが既に QC2.0 から 9V を取り出しておられます。

Quick Charge 2.0 から 9V/12V を出力させるデバイス (ATTiny13A) | tech - 氾濫原
https://lowreal.net/2015/12/24/1

 ATTiny13A を使って D+/D- を制御しておられるものですが、私の部品箱には ATTiny13A がありません。
 公式の仕様書と合わせてソースを読み解くと、D+/D- ともに 0.6V(0.325〜2V)を1.25秒維持し、直後に D- を 1ms だけ 0V に落とすだけで電圧可変モードに突入し、D+ と D- に印可した電圧で出力電圧が定まるという・・

1250ms(1000〜1500ms)1ms以上電圧可変モードに突入12V9V
D+0.6V0.6V0.6V3.3V
D-0.6V0V0.6V0.6V
※ 0.6V:0.325〜2V、3.3V:2V〜


 2ピンあれば出来るんじゃない?と、部品箱にあった米粒AVR ATTiny10 にて試してみたら、ものの見事に成功してしまったので回路図とソースをお披露目することに致します。


http://dl.ftrans.etr.jp/?445343c20bd146129245c7eeedaeb4b4cbe2e58f.png


 リセットを潰さない前提の ATTiny10 では3ピン使えるのですが、2ピンで事が足り1ピン余ってしまったので、せっかくなので電圧の指定を外部から行えるようにしました。

 PB3 はデフォルトではリセットピンとなっており、Fuse でリセット無効化(RSTDISBL)すれば GPIO として使えるようになりますが、書き込みに 12V が必要になるなど少々面倒になります。

/*
 * USB-QC2.cpp
 * Author : wakwak_koba
 */ 
#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>

/*
	QuickChargeに対して出力電圧を指定する。
	
	PB0:D+
	PB2:D-
	PB1:SW HIGH:9V、LOW:12V
*/

int main(void)
{
	DDRB	|= 0b00000001;		// PB0:出力(LOW)
	_delay_ms(1250);		// 1.25秒(1.0〜1.5s)

	DDRB	|= 0b00000100;		// PB2:出力(LOW)
	_delay_ms(2);			// 2ms(1ms〜)
	DDRB	&= 0b11111011;		// PB2:入力(OPEN)

	while(1)
	{
		if(PINB & 0b00000010)		// 9V
			PORTB |= 0b00000001;	// PB0:HIGH(D+:3.3V)
		else				// 12V
			PORTB &= 0b11111110;	// PB0:LOW(D+:0.6V)

		_delay_ms(100);			// 0.1秒
	}
}

 いちお動作中にも切り替えできるようにしましたが、100ms おきにチェックするアバウト処理にてチャタリングは無視です。


http://dl.ftrans.etr.jp/?b165fb513c42402396a2ada1e371548ae16c088d.jpg http://dl.ftrans.etr.jp/?73b4c038f7724cf484931b0a8788acc2ad0e56f8.jpg


 ブレッドボードで成功したので 秋月ペッドボトル基板 に実装します。


http://dl.ftrans.etr.jp/?82a94b4ba3a44a53b1a0ea79e93752685faa1ab7.jpg http://dl.ftrans.etr.jp/?dae2eab41f8445be922e624cd525023486c6fd1f.jpg


 電圧切替えはジャンパーピンにて実現。
 デジカメ繋ぐ前に最終確認


http://dl.ftrans.etr.jp/?1b56f8059ae1462da0823e2af678376671a3479b.jpg


 よし、大丈夫ぽいですね、では本番。


http://dl.ftrans.etr.jp/?424cb960b6d7481bb8e5a81617340107139aabda.jpg


 大成功♪
 ただ、これはモバイルバッテリーの仕様なので仕方ないのですが、電気の消費が少ないと5秒ほどで自動的に切れてしまいます。
 いったん切れると手動でONにしないといけませんが、起動直後の1.25秒間だけは 5V が出てしまいます。
 電圧が低いので実害はないですが、9V が出始めるまで少し時間がかかるので、そこだけ注意ですね。


(次回の予告)
 DMC-G7 はこれで大丈夫ですが、私の手持ちデジカメ C8080 は公称 6.5V、DSC-WX5 は 4.2V で、Quick Charge 2.0 の規格では直接給電させることができません。
 幸いにも 買ったモバイルバッテリー は Quick Charge 3.0 対応なので、3.0 から備わった Continuous Mode を活用して、9V でも 12V でもない半端な電圧を生成してみることにします。
 乞うご期待〜♪


(追記)2017/07/20
 予告してました Quick Charge 3.0 から備わった Continuous Mode を使って、半端な電圧を作ってみました。
 続きは こちら をどうぞ。