- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a) 外部信号を利用してCCG3PAをSleep及びDeepSleepにする方法を教えて下さい。
b) 外部信号を利用して、VBUSのFETをON/OFFする方法を教えて下さい。
※上記外部信号は、CCG3PAとEC間の接続I/Fを指しています。
I/FはGPIO(1本)もしくはI2C(HPI)の2通りを想定しています。GPIO端子の場合、ECからはHi/Loの信号をCCG3PAへ入力する事が出来ます。可能であれば、ECからのGPIO信号(H/L)で、上記a)とb)を実現したいです。
CCG3PAで上記、a)b)の実現が厳しい場合、他の推奨可能なデバイスをお知らせください。
Macnica/Arai
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
詳細をご説明いただきありがとうございます。
Power Sourceだと思って説明してしまっていました、失礼致しました。
Sinkの場合はtVBUSONに依存しないので気にしないでください。
SinkであればSink FETを動作させなければならないので、psrc_enable()/psrc_disable()関数ではなく、psnk_enable()/psink_disable()関数がご利用いただけます。(または、vbus_discharge_off()関数を使うことも出来ます。ファームウェア、SDKユーザーガイド、APIガイド等を読んで使えそうな関数、そしてその動作をご確認ください。)
SinkデバイスはSourceに比べて仕様は厳しくないですが、仕様に反しないよう、または仕様に反する場合はお客様の責任でファームウェア製作をしていただければと思います。
よろしくお願い致します。
Hirotaka Takayama
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Answer a)
CCG3PAのサンプルファームウェアでは、main.cのwhileループで常にsystem_sleep()関数が呼ばれており、この関数内でアプリケーション層、HPI、DPMの全モジュールがSleepモードに入れる状態かをチェックしています。Sleep/DeepSleepに入れる時は入るようになっています。そのため、ご提案されているような機構は必要が無いと思われます。
FYI: CCGは、上記が全てアイドル状態である時に限りSleepモードに入れます。PDステートマシンもアイドル状態であればDeepSleepモードに入れます。
本実装はapp.c line 1611のsystem_sleep()関数にございます。
Answer b)
ポートパートナーが接続されていない状態では、FETはONになりません。ポートパートナーとの接続がされたあとに、FETがONになります。ポートパートナーとの接続がされていない状態でFETをONにすべきではありません(Type-C仕様に反します)
また、ポートパートナーとの接続がされた後は、DFPはvSafe5VをVBUSに275ms以内(Type-C Spec tVBUSONのMaximum以内)に供給しなければなりません。
FYI: psrc_enable() 関数でPFETをONにできます。
上記回答をご覧になった上で、実現したいことが可能そうであれば、詳細を教えてください。
よろしくお願い致します。
Hirotaka Takayama
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
返信有難うございます。
下記回答頂いた内容について確認させて下さい。
>ポートパートナーが接続されていない状態では、FETはONになりません。ポートパートナーとの接続がされたあとに、FETがONになりま
>す。ポートパートナーとの接続がされていない状態でFETをONにすべきではありません(Type-C仕様に反します)
>また、ポートパートナーとの接続がされた後は、DFPはvSafe5VをVBUSに275ms以内(Type-C Spec tVBUSONのMaximum以内)に供>給しなければなりません。
使い方ですが、CCG3PAはPowerSinkのみとして動きます。Type-Cの接続先へはバッテリーを接続します。
バッテリーがつながれた状態(VBUSON時)に、外部ECからの信号(GPIO or I2C)を検出してVBUSFETをOFFにしたいのですが可能でしょうか?頂いた回答から、信号の変化を見て、psrc_enable() 関数でPFETをONにできると思いますが、OFFにする事は可能でしょうか?
Macnica/Arai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
追記となりますが、psrc_disableにてPFETをOFFにする事が出来るかの確認となります。
宜しくお願い致します。
Macnica/Arai
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
詳細をご説明いただきありがとうございます。
Power Sourceだと思って説明してしまっていました、失礼致しました。
Sinkの場合はtVBUSONに依存しないので気にしないでください。
SinkであればSink FETを動作させなければならないので、psrc_enable()/psrc_disable()関数ではなく、psnk_enable()/psink_disable()関数がご利用いただけます。(または、vbus_discharge_off()関数を使うことも出来ます。ファームウェア、SDKユーザーガイド、APIガイド等を読んで使えそうな関数、そしてその動作をご確認ください。)
SinkデバイスはSourceに比べて仕様は厳しくないですが、仕様に反しないよう、または仕様に反する場合はお客様の責任でファームウェア製作をしていただければと思います。
よろしくお願い致します。
Hirotaka Takayama
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
回答有難うございます
内容承知致しました。
Macnica/Arai