こんにちは、皆さん。
助けていただけると嬉しいです。私たちはPN5190Bを使用しており、ULPCDでの消費電力を測定しようとしています。残念ながら、電流値は2mAなので、どこに間違いがあるのか調べています。ハードウェアの問題なのかファームウェアの問題なのか、まだはっきりとは分かりません。
しかし、私たちが確認しているのは、エキスパンダによって管理されているGPIO3(入力として設定されたピン)で、ULPCDをハイに設定しても、ポーリングのたびに少しずつローになっていく(約2ボルトまで下がる)ということです。PN5190がポーリングのたびに値を低く押し下げているようですが、これは正常な状態でしょうか?
ありがとうございます!
イグナシオ
こんにちは、 @ignacioS さん。
あなたの調子が良いといいのですが。
このテストはPN5190開発ボードで行っていますか、それともカスタムボードで行っていますか?電流はどこで測定されていますか?
NFC Cockpitを使用してULPCDモードを設定していますか?どのような手順に従っていますか?
また、GPIO3をエキスパンダーから切り離し、クリーンな信号としてULPCDをテストし、その結果をお知らせください。
よろしくお願いいたします。
エドゥアルド。
こんにちは、すみません、前回の投稿に手順を貼り付けていませんでした。
チップを初期化する
pn5190_ulpcd_calibrate(&g_lpcdRefValue);
phhalHw_FieldOff(&hal);
pn5190_ulpcd_wait_for_card(g_lpcdRefValue, 200);
static phStatus_t pn5190_ulpcd_calibrate(uint32_t *pRefVal)
ヤージュ
phStatus_t ステータス;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS、
330U);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_MODE、
PHHAL_HW_PN5190_LPCD_MODE_DEFAULT);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_CONFIG、
PHHAL_HW_PN5190_LPCD_CTRL_ULPCD_CALIB);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Lpcd(&hal);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
return phhalHw_Pn5190_Instr_LPCD_GetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_REF_VAL、
pRefVal);
}
static phStatus_t pn5190_ulpcd_wait_for_card(uint32_t refVal, uint16_t wakeupMs)
ヤージュ
phStatus_t ステータス;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS、
ウェイクアップMs);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_MODE、
PHHAL_HW_PN5190_LPCD_MODE_POWERDOWN);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_CONFIG、
PHHAL_HW_PN5190_LPCD_CTRL_ULPCD);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
status = phhalHw_Pn5190_Instr_LPCD_SetConfig(&hal,
PHHAL_HW_CONFIG_LPCD_REF_VAL、
refVal);
if ((status & PH_ERR_MASK) != PH_ERR_SUCCESS) return status;
return phhalHw_Lpcd(&hal);
}
こんにちは、エドゥアルドさん。
ご返信ありがとうございます。この件で現在大変忙しくしており、返信が遅くなり申し訳ございません。
テストは最終製品に対して直接実施されています。試作品は既に受け取っており、現在、それらを用いて開発と検証作業を進めています。
初期設定では、PN5190BのSPIを直接制御するホストと、VENおよびGPIO3ラインを処理するI/Oエキスパンダで構成されます。このアプローチは、これが既存製品の改良版であり、マイクロコントローラに利用可能なGPIOがなくなってしまったため、エキスパンダから2つのGPIOを使用せざるを得なかったという事実に基づいています。
問題は、ULPCDモードで規定されている非常に低い消費電流を実現できないことです。これが現在私が持っているPN5190Bの回路図です。
私が実施したテスト:
これらはULPCDモードに入るために使用する手順です。評価ボードで確認した限りでは、私の間違いでなければ正しいはずです。
私が何か間違ったことをしているアイデアはありますか?この問題が解決するまで最初の試作品の製造に着手できないため、どなたかご協力いただければ大変ありがたいです。
よろしくお願いいたします。
よろしくお願いします、
イグナシオ
こんにちは、
EEPROMの設定(DCDCとULPCD)が正しく構成されていることを確認していただけますか?PN5190の設計推奨事項(セクション4.3)およびPN5190データシート(セクション9.15.3)を参照してください。
よろしくお願いいたします。
エドゥアルド。
エドゥアルドさん、確認ありがとうございます。そうします。
私としては、これで一章を終えます。ご支援ありがとうございます
こんにちは、
VENピンについては、ホストが直接管理できます。
ULPCDを使用する場合、GPIO3のアボート機能はデフォルトで有効になっており、他の用途には使用できません。GPIO3をフローティング状態にしておくと、場合によっては誤ったウェイクアップが発生することがあります。
GPIO3がホストによって制御されない場合は、アボート極性構成に応じてプルアップ/プルダウン抵抗を追加することを検討してください( PN5190データシート9.2.166を参照)。
よろしくお願いいたします。
エドゥアルド。
エドゥアルドさん、ご支援ありがとうございます。はい、ご提案いただいた内容を確認しましたが、既に実行済みでした。我々に影響を与えていた問題点が見つかったと思います。
一方では、それはSPIに関連していた。スタンバイテスト時と同じ設定でSPIチャネルをそのままにしていたのですが、どうやらPN5190はその設定をあまり好まないようです。SPIを完全に閉じる/無効にすることで、最終的に消費電力を削減することができました。
さらに、テストでは、VENピンとGPIO3ピンをエキスパンダに接続する代わりに、外部プルアップなしでマイクロコントローラに直接接続し、VENを出力ハイ、GPIO3を入力プルアップとして構成しました(PN5190のGPIO3は、LOWを検出するとULPCDモードが中止されるように構成されています)。
この設定(500ミリ秒ごとにポーリング)では、消費電流が約25μAに抑えられており、これは素晴らしい結果です。
ただし、これは私が作業台に組み立てた装置での結果です。製品を分析し、次の段階について検討した結果、2つの選択肢が考えられます。
1. (私の推奨オプション) VENをマイクロコントローラに直接接続し(出力ハイ)、GPIO3は一切使用しない。実際、他のトランシーバではポーリング中に起動させる必要がなかったので、GPIO3が何に役立つのかよく分かりません。もしULPCDモードを終了する必要が生じた場合は、VEN経由で簡単にリセットできます。
このバージョンのハードウェアで何度かテストを行いましたが、25μAまで下げることはできず、70μA前後で推移しています。
2点質問させてください。
2. VENをマイクロコントローラ(出力ハイ)に接続し、GPIO3(入力プルアップ)も接続します。レイアウトは複雑になりますが、低消費電力を実現するために必要なら、そうします。
では、GPIO3を何かに接続しておくことは必須なのでしょうか?
ご協力ありがとうございました。私はもう、これをほぼ完了したと考えるべきところまで来ています。