CCG3のPR_SwapがRejectされてしまう

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

Configuration Utilityを用いて、Port Information→PR_Swap responseの項目をRejectからAcceptに変更しました。

しかし、このConfigurationを適用したCCG3にてパケットを確認しますと、通信相手のデバイスからPR_Swapを送信された際にRejectを返しています。

なにか設定上AcceptでもRejectを送信してしまうような条件はありますでしょうか。

また、設定以外でも注意すべき点があればご教示ください。

0 件の賞賛
1 解決策

PR_SWAPについては、swap.c の eval_pr_swap()関数にて判断されており、Acceptの条件はコードに従い、以下の通りになります。

(Dead_battery状態でない &&

Configuration UtilityでPort roleが"Dual Role"に設定されている &&

(Source PDOのExternally powered bitが1でない || 現在のポートの状態がPower Sinkである))

よって、現在の設定状況から、"Is source externally powered"をNoに変更することで、PR_SwapはAcceptされ、実施されます。

実際にCCG3が外部電源動作であるかどうかに関わらず、ACCEPTしたい場合には上記設定を"Is source externally powered"をNoにできます。

よろしくお願い致します。

Hirotaka Takayama

元の投稿で解決策を見る

5 返答(返信)
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

Port roleがDual Roleでない場合、PR_Swap responseをAcceptに設定していても、PR_Swapを受け取った時にREJECT (PD Rev 2.0の場合)またはNOT_SUPPORTED (PD Rev 3.0の場合)を返します。

設定されているデバイスがPower Adapter/Bankデバイス等でないかご確認ください。

必要に応じて共有Port Informationの各設定をご連絡ください。

よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

ご回答ありがとうございます。

デバイスはCYPD3125ですので、DRP品です。

Port Informationは下記です。

Configuration Utilityの情報を展開致します。

Port_Information.gif

以上です。

0 件の賞賛
TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

追加情報です。

SDK同梱のオリジナルFW(CYPD3125-40LQXI_notebook_two_3_3_1_2010_0_0_0_nb.cyacd)にて試したところ、Accept応答が来ました。

(応答の設定値をAcceptとしているため、期待値どおりです)

これに対し、このFWの設定のうち、Is source externally poweredのみ変更(No→Yes)にしたところ、Reject応答となりました。

(応答の設定値は変わらずAcceptですので、期待値と異なります)

このPort InformationだとRejectが返される、ということになるのでしょうか。

DRPであれば問題ないという認識でしたが、その他確認が必要な情報であったり、必要条件があるのであれば教えてください。

以上です。

0 件の賞賛

PR_SWAPについては、swap.c の eval_pr_swap()関数にて判断されており、Acceptの条件はコードに従い、以下の通りになります。

(Dead_battery状態でない &&

Configuration UtilityでPort roleが"Dual Role"に設定されている &&

(Source PDOのExternally powered bitが1でない || 現在のポートの状態がPower Sinkである))

よって、現在の設定状況から、"Is source externally powered"をNoに変更することで、PR_SwapはAcceptされ、実施されます。

実際にCCG3が外部電源動作であるかどうかに関わらず、ACCEPTしたい場合には上記設定を"Is source externally powered"をNoにできます。

よろしくお願い致します。

Hirotaka Takayama

TeMa_2997106
Level 6
Level 6
Distributor - TED (Japan)
10 likes received 10 solutions authored 250 replies posted

ご回答ありがとうございます。

了解致しました。

0 件の賞賛