こんにちは、みんな、
S32K146のLPI2Cモジュールを使用しているのですが、MCFGR1(マスターコンフィギュレーションレジスタ1)レジスタのPINCFGフィールドについていくつか質問があります。
リファレンスマニュアルによると、PINCFGフィールドはI2Cピンの動作モードを設定するために使用されます。しかし、私は以下の具体的な情報について理解する必要があります。
アプリケーションノート、リファレンスコード、または実務経験など、共有していただけるものがあれば大変ありがたいです。
ご回答をお待ちしています。
こんにちは、 @GXYさん。
PINCFGフィールドは、標準的な2ピンI2Cバスが必要か、独立した4ピン構成が必要かに応じて、LPI2Cピンの電気的駆動方法と使用方法を定義します。
詳細については、 UM10204 :I2Cバス仕様書およびユーザーマニュアルを参照してください。
さらに、S32K1ソフトウェアパッケージには、標準的なI2Cピン構成を示すサンプルコードが含まれています。
BR、VaneB
こんにちは、 @GXYさん。
前述のとおり、LPI2CペリフェラルのPINCFGフィールドは、使用されるピンの数とその電気的動作を定義します。これはI2Cの速度モードを直接決定するものではありません。
動作モードに関して言えば、LPI2Cモジュールは論理的に様々なモードをサポートできる。ただし、実際に達成できるボーレートは、パッドの実装、外部負荷、バスで使用されるプルアップなど、いくつかの要因にも左右されます。
S32K1デバイスの場合、SCL信号とSDA信号はハイドライブパッドではなく標準のGPIOパッドを使用するため、達成可能な最大ボーレートは多少制限されます。
また、表52-9はレジスタ設定の例のみを示しています。これらの設定は参考例であり、実際のアプリケーションで対応するボーレートが実現できることを保証するものではありません。
このフィールドの意味は理解していますが、私の質問はこれらのフィールドの応用シナリオについてです。例えば、000は標準の2線式I2C伝送に使用され、001はウルトラモードでの2線式伝送に使用され、010はHSモードでの通信に使用され、011と111は4線式通信に使用されます。他の3つの構成を柔軟に使用する方法がわかりません。もし私の理解が間違っていたら、訂正してください。さらに、マニュアルにはS32K146はHSモードとULTRAモードをサポートしていないと記載されていますが、PINCFGレジスタを変更することで、HSモード3.4M(低速が先で高速)とULTRA測定4M(マスターとスレーブの両方がS32K146)間の相互通信を実現できます。訂正事項があるかどうか、あるいは私のテストが間違っているかどうかを知りたいです。
ますます困惑してきた。今一番心配しているのは、PINCFGを変更することで、S32K146がCANのFASTPLUS、HS、ULTRAFASTモードの速度で直接通信してしまうことです。しかし実際には、マニュアルに記載されている通り、S32K146これら3つのモードで他の標準的なI2Cデバイスと通信することはできません。まず、2台の146(マスター1台とスレーブ1台)を次の3つのモードで通信させる方法を説明します。1. FASTPLUS(1M)では、マスターとスレーブのPINCFGを010に調整します。2. HSMODE(2M搭載、測定2M)では、マスターとスレーブのPINCFGを010に調整します。3. ULTRAFAST(5M搭載、テスト4M)では、マスターのPINCFGを001、スレーブのPINCFGを000に調整します。
FASTPLUS(1M)、HS(3.4M)、およびULTRAFAST(5M)モードの標準装備には、プッシュプル出力とオープンドレイン出力のどちらが搭載されているか知りたいです。