私はS32K310NHT0MLFST(LQFP48)を使用しています。S32K311_S32K310_IOMUX.xlsx ドキュメントによると、ADC0 チャネル s12 を PTC14 に多重化できるはずです。
別のフォーラムの投稿で、DCMRWF4のビット7を手動で設定すればうまくいくはずだと書いてありました。
したがって、私は以下のことを行っています。
IP_DCM_GPR->DCMRWF4 |= (1 << 7);
ADC0をスキャンモードで動作させ、読み取りを行うと、ほぼ0の値(実際には2)が得られますが、オシロスコープのプローブでは90mVが読み取られます(これは、擬似14ビットモードで基準電圧5Vの場合、約295のADC値になるはずです)。
スキャン後の読み取り処理について、私は以下の手順を実行しています。
value = Adc_Sar_Ip_GetConvData(0, 36); // ADC0 s12 は ch36 です
また、ADC0 の他の 3 つのチャネルも読み取っていますが、2 つのチャネルは ADC0 から正常に読み取れています。チャネル s12 (および同様の理由で s13) だけが 0 を返します。DCMRWF4 のビット 7 が動作中ずっとセットされたままになっていることを確認しました。また、ADC SARコンポーネント(RTD)を使用して、適切なチャネルでADCを設定しました。
よろしくお願いします。
こんにちは、 @brycel さん。
設定は問題ないようです。私が考えられる唯一の問題は、DCMRWF4 がルーチン内に保持されていない場合ですが、ビット 7 を検証することは既に述べられています。
Adc_Sar_Bctu_Ip_example_S32K312 の設定を S32K311 MCU にコピーしました (S32K310 EVB が利用できないため)。DCMRWF4 を設定して Siul2 を初期化するだけで、チャネルを正しく読み取ることができます。
主に、ピン配置をVSSとVDDに短絡させるテストを行います。
チャネルを変更して、IP_DCM_GPR->DCMRWF4 |= (1 << 7); を追加するだけで、RTD の例をテストできますか?
それ以外にも、ハードウェアパスを確認して、カスタムボードに接続の問題がないか調べてみるのも良いでしょう。
.mex ファイルを共有していただけますか?構成を確認できるようにしていただきたいのですが、共有していただいた画像を見る限り、基本的なADC構成とPTC14ピンは問題なさそうです。
よろしくお願いします、
ジュリアン
はい、再度テストしてみました。この機器には不良のオペアンプが接続されていました。PTC14のADC0 S12の読み取り値が正常に取得できるようになりました。
ありがとう!