5 Replies Latest reply on Apr 3, 2019 11:39 PM by NoAr_1540581

    Sleep/Deep sleep for CCG3PA

    NoAr_1540581

      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

        • 1. Re: Sleep/Deep sleep for CCG3PA
          HirotakaT_91

          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

          • 2. Re: Sleep/Deep sleep for CCG3PA
            NoAr_1540581

            返信有難うございます。

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

             

             

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

            • 3. Re: Sleep/Deep sleep for CCG3PA
              NoAr_1540581

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

               

              宜しくお願い致します。

               

              Macnica/Arai

              • 4. Re: Sleep/Deep sleep for CCG3PA
                HirotakaT_91

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

                 

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

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

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

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

                 

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

                Hirotaka Takayama

                • 5. Re: Sleep/Deep sleep for CCG3PA
                  NoAr_1540581

                  回答有難うございます

                  内容承知致しました。

                   

                  Macnica/Arai