動作的に一部誤解というか理解不足があった。
- 電圧はVBUS_MIN〜VBUS_MAXの二つを設定し、その間の電圧で最も大きいPDOが選択される。SourceCapabilityで5V/3A,9V/2Aの2種があるとした場合、VBUS_MAX=15VにロータリSWを設定したら、9Vが選択され出力される。これを防止するには。VBUS_MINを上げておく必要がある。
- 電流は、VBUS_MIN〜VBUS_MAXの範囲内であれば電圧に関係なく、必要な電流が取れない場合に、Failとなる。上の例では要求電流設定が3Aの場合、9Vではなく、5Vが出力されFailとならない。
- Failになる場合、例えば、上の例で電流設定が4Aだった場合、どのPDOでも満足できないため、Failになるが、そのばあい、5V/3AがRequestされ、Requestメッセージの中でCapabilityMismatchビットが立つ。BCRからの出力は0でvSafeに5Vが供給される。
設定電流と電圧は、給電中に変えても反映される。電流設定も電圧設定も常時にモニタしているようで変化があればGetSourceCapを送信しPDOを設定し直す。電圧設定を予め決めておき、電流設定をマイコンで外部からダイナミックに変えてやれば最適な電圧と電流で受電することが可能と考えられる。
MacBookAirの30Wアダプタと、BCRのデフォルト電圧組み合わせ(5V~20V)に電流設定を変えたもので出力結果を示すと次のようになる。このアダプタはPDOとして4つ応答するが12V出力はない。
Curr |
Pos1 |
Pos2 (9V) |
Pos3 (12V) |
Pos4 (15V) |
Pos5 (20V) |
0.9A | 5V | 9V | 9V | 15V | 20V |
1A | 5V | 9V | 9V | 15V | 20V |
2A | 5V | 9V | 9V | 15V | 15V |
3A | 5V | 9V | 9V | 9V | 9V |
5A | Error | Error | Error | Error | Error |
コメントを追加