Sleep/Deep sleep for CCG3PA

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
NoAr_1540581
Level 5
Level 5
Distributor - Macnica (Japan)
5 solutions authored 250 sign-ins 100 replies posted

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

0 Likes
1 Solution

詳細をご説明いただきありがとうございます。

Power Sourceだと思って説明してしまっていました、失礼致しました。

Sinkの場合はtVBUSONに依存しないので気にしないでください。

SinkであればSink FETを動作させなければならないので、psrc_enable()/psrc_disable()関数ではなく、psnk_enable()/psink_disable()関数がご利用いただけます。(または、vbus_discharge_off()関数を使うことも出来ます。ファームウェア、SDKユーザーガイド、APIガイド等を読んで使えそうな関数、そしてその動作をご確認ください。)

SinkデバイスはSourceに比べて仕様は厳しくないですが、仕様に反しないよう、または仕様に反する場合はお客様の責任でファームウェア製作をしていただければと思います。

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

Hirotaka Takayama

View solution in original post

0 Likes
5 Replies
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

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

0 Likes
NoAr_1540581
Level 5
Level 5
Distributor - Macnica (Japan)
5 solutions authored 250 sign-ins 100 replies posted

返信有難うございます。

下記回答頂いた内容について確認させて下さい。

>ポートパートナーが接続されていない状態では、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

0 Likes
NoAr_1540581
Level 5
Level 5
Distributor - Macnica (Japan)
5 solutions authored 250 sign-ins 100 replies posted

追記となりますが、psrc_disableにてPFETをOFFにする事が出来るかの確認となります。

宜しくお願い致します。

Macnica/Arai

0 Likes

詳細をご説明いただきありがとうございます。

Power Sourceだと思って説明してしまっていました、失礼致しました。

Sinkの場合はtVBUSONに依存しないので気にしないでください。

SinkであればSink FETを動作させなければならないので、psrc_enable()/psrc_disable()関数ではなく、psnk_enable()/psink_disable()関数がご利用いただけます。(または、vbus_discharge_off()関数を使うことも出来ます。ファームウェア、SDKユーザーガイド、APIガイド等を読んで使えそうな関数、そしてその動作をご確認ください。)

SinkデバイスはSourceに比べて仕様は厳しくないですが、仕様に反しないよう、または仕様に反する場合はお客様の責任でファームウェア製作をしていただければと思います。

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

Hirotaka Takayama

0 Likes
NoAr_1540581
Level 5
Level 5
Distributor - Macnica (Japan)
5 solutions authored 250 sign-ins 100 replies posted

回答有難うございます

内容承知致しました。

Macnica/Arai

0 Likes