こんにちは、
カスタムPCB上のnRF52840モジュール(Raytac MDBT50Q-1MV2)にI2C経由でコネクテッドされた外付けNFCリーダ/コントローラ(NXP PN7160A1HN/C100E)を使用しています。(プログラミングは、nRF52840 DKをデバッグプローブとして使用し、SWD経由で行います。)
現在のソフトウェア環境は、VS Code(Windows 11)のnRF Connect SDK(NCS)v3.2.0とZephyr RTOS v4.2.99です。目標は、PN7160(NCI-over-I2C)を使用して、RF検出を開始し、13.56MHzパッシブカードのUIDを読み取ることです。
私はPN7160を「典型的なZephyrの方法」で統合しようと試みました。
ソース/メイン.c
ボード/nrf52840dk_nrf52840.オーバーレイ
prj.conf
I2C ピンと PN7160 GPIO (VEN/IRQ) を設定できますが、初期化が失敗します (プローブ中または最初のコマンド中の I2C -EIO/NACK)。その結果、RF 検出全体が機能せず、統合アプローチが正しいかどうかわかりません。
質問:
NCS/Zephyrでは、`main.c`を変更するだけでPN7160をプログラムすることは可能ですか?+ `nrf52840dk_nrf52840.overlay` + `prj.conf`、それともPN7160には適切なカスタムドライバが必要であると予想されますか?
ドライバが必要な場合、NCS でドライバを追加するための推奨アプローチは何ですか (デバイスツリー バインディング YAML + Kconfig + CMake + ドライバ ソース)。また、外部 Zephyr モジュール (zephyr/module.yml + EXTRA_ZEPHYR_MODULES) としてパッケージ化する必要がありますか?これを行う方法のサンプル コードはありますか (パブリック github リポジトリのようなものですが、見つけることができませんでした)?
プローブ/最初の書き込み時に -EIO を引き起こす可能性のある、別の方法で処理する必要がある既知の NCS v3.2.0 / Zephyr 4.2.99 I2C/TWIM 動作はありますか?
他に役立つコメントがありましたら、ぜひ教えてください。
ご協力ありがとうございます!