USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい

USB PD Revision 3.0のドキュメントがひっそりと修正されていたらしいです。 ※エンドユーザーには関係のない話です

Nathan K. (@USBCGuy) 氏のツイートによると、USB PD Specification Revision 3.0, Version 1.2 (20181203) の内容は、USB PD Specification Revision 3.0, Version 1.2 (20181005) から一部がサイレント修正されているようです。

修正前の状態では規格内で整合性が取れておらず、双方が規格通りの動作をしても以下のような状況が発生する可能性がありました。 (可能性があったというか実際に発生しているわけですが)

このキャプチャログでは、SinkがGet_Battery_Statusメッセージに応答しないため、Sourceが無限にGet_Battery_Statusメッセージを送り続けています。20181005ではSinkはGet_Battery_Statusメッセージに対してI (Ignore) と定められているため、SinkがGet_Battery_Statusメッセージに応答していないのは規格に沿った動作ということになります。

本来であれば、SinkがNot_Supportメッセージなり何なりを応答すればこういったことにはならなかったはずですが、そもそも規格のドキュメントが間違っていたことが原因なので、Sink側の機器を悪いと責めることはできません。

話が逸れましたが、「スマートフォンやPCなどの開発に携わっている方がもしこの記事をご覧になっていたら、USB PD 3.0のドキュメントがサイレント修正されているのでご注意ください」という話でした。終わり。