NXP - logo

AN13971
PN7220 – Pandhuan porting Android
Wahyu 1.0 - 18 September 2023
Cathetan aplikasi

PN7220 Compliant NFC Controller

Informasi dokumen

Informasi Isi
Tembung kunci PN7220, NCI, EMVCo, NFC Forum, Android, NFC
Abstrak Dokumen iki nerangake carane port release middleware PN7220 menyang Android.

NXP Semikonduktor

Riwayat revisi
Riwayat revisi

Pdt Tanggal Katrangan
v.1.0 20230818 Versi wiwitan

Pambuka

Dokumen iki menehi pedoman kanggo nggabungake pengontrol NFC berbasis PN7220 NXP NCI menyang platform Android saka perspektif piranti lunak.
Kaping pisanan nerangake carane nginstal driver kernel sing dibutuhake, banjur nerangake langkah-langkah carane ngatur sumber AOSP kanggo nambah dhukungan kanggo pengontrol NFC PN7220. Gambar 1 nuduhake arsitektur kabeh tumpukan Android NFC.

NXP PN7220 Compliant NFC Controller - Pambuka 1

Gambar 1. Tumpukan NFC Android

PN7220 dipisahake dadi siji-host lan dual-host skenario. Umumé, tumpukan padha kanggo host dual, kita nambah SMCU.

  • NXP I2C Driver minangka modul kernel sing nyedhiyakake akses menyang sumber daya hardware PN7220.
  • Modul HAL minangka implementasi lapisan abstraksi HW khusus saka pengontrol NXP NFC.
  • LibNfc-nci minangka perpustakaan asli sing nyedhiyakake fungsi NFC.
  • NFC JNI minangka kode lem antarane kelas Jawa lan Native.
  • NFC lan EMVCo Framework minangka modul kerangka aplikasi sing nyedhiyakake akses menyang fungsi NFC lan EMVCo.

Pembalap kernel

Tumpukan Android NFC nggunakake driver kernel nxpnfc kanggo komunikasi karo PN7220. Iku kasedhiya ing kene.

2.1 Rincian driver
Driver kernel nxpnfc nawakake komunikasi karo PN7220 liwat antarmuka fisik I2C.
Nalika dimuat menyang kernel, pembalap iki mbukak antarmuka menyang PN7220 liwat simpul piranti sing jenenge /dev/ nxpnfc.

2.2 Njupuk kode sumber
Klone repositori driver PN7220 menyang direktori kernel, ngganti implementasine sing wis ana:
$rm -rf drivers/nfc
$git klon"https://github.com/NXPNFCLinux/nxpnfc.git"-b PN7220-Driver driver/

Iki rampung karo driver folder / nfc sing ngemot ing ngisor iki files:

  • README.md: informasi repositori
  • Gawe file: sopir judhul nggawe file
  • Kcon anjir: konfigurasi driver file
  • Lisensi: syarat lisensi driver
  • nfc subfolder ngemot:
    - commoc. c: implementasi driver umum
    – umum. h: definisi antarmuka driver umum
    – i2c_drv.c: implementasi driver khusus i2c
    - i2c_drv.h: definisi antarmuka driver khusus i2c
    – Gawefile: gawefile sing kalebu ing gawefile saka sopir
    – Kbuild => mbangun file
    – Kconfig => konfigurasi driver file

2.3 Nggawe driver
Kalebu driver menyang kernel lan nggawe mbukak nalika boot piranti rampung thanks kanggo devicetree.
Sawise nganyari definisi wit piranti, wit piranti sing gegandhengan karo platform kudu dibangun maneh. NXP nyaranake nggunakake versi kernel 5.10, amarga ing versi iki validasi lengkap wis rampung.

  1. Ngundhuh kernel
  2. Entuk kode sumber driver.
  3. Ngganti definisi wit piranti (khusus kanggo piranti sing digunakake).
  4. Mbangun driver.
    a. Liwat prosedur menuconfig, kalebu driver target ing mbangun.

Sawise mbangun maneh kernel lengkap, driver bakal kalebu ing gambar kernel. Kita kudu nggawe manawa kabeh gambar kernel anyar disalin menyang mbangun AOSP.

adaptasi AOSP

NXP nyedhiyakake patch ing ndhuwur kode AOSP. Tegese pangguna bisa entuk kode AOSP lan ngetrapake patch saka NXP. Bagean iki nerangake carane ngrampungake iki. AOSP saiki tag sing kita gunakake yaiku [1].

3.1 AOSP mbangun

  1. Kita kudu njaluk kode sumber AOSP. Iki bisa kita lakoni karo:
    $ repo init -u https://android.googlesource.com/platform/manifest-b android-13.0.0_r3
    sinkronisasi $ repo
    Cathetan: Alat repo kudu diinstal ing sistem. Tindakake pituduh [2].
  2. Nalika kita duwe kode sumber, kita bisa ngetik direktori lan mbangun:
    $cd Android_AROOT
    $sumber mbangun/envsetup.sh
    $nedha awan select_target #target punika DH kita arep digunakake kanggo Example: db845c-userdebug $ nggawe -j
  3. Nalika AOSP kasil dibangun, kita kudu njaluk patch NXP. Iki bisa kita lakoni karo:
    $git klon"https://github.com/NXPNFCLinux/PN7220_Android13.git" vendor / nxp /
  4. Ing wektu iki, kita kudu ngetrapake patch kanggo dhukungan PN7220. Kita bisa ngetrapake patch kanthi mbukak skrip install_NFC.sh.
    $chmod +x /vendor/nxp/nfc/install_NFC.sh #kadang kita kudu nambah hak eksekusi kanggo skrip
    $./vendor/nxp/nfc/install_NFC.sh
    Cathetan: Priksa output sawise mbukak install_NFC.sh. Yen perlu, kita kudu nggawe sawetara owah-owahan kanthi tangan.
  5. Kita uga bisa nambah binari FW:
    $git kloning xxxxxxx
    $cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib64/libpn72xx_fw.so
    $cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/32-bit/libpn72xx_fw.so AROOT/vendor/nxp/pn7220/firmware/lib/libpn72xx_fw.so
  6. Nambahake NFC kanggo mbangun
    Ing piranti.mk nggawefile (kanggo example, piranti / merek / platform / piranti.mk), kalebu nggawe tartamtufiles:
    $(telpon inherit-product, vendor/nxp/nfc/device-nfc.mk)
    Ing BoardConfig.mk nggawefile (kanggo example, piranti/brand/platform/BoardConfig.mk), kalebu make tartamtufile:
    -kalebu vendor / nxp / nfc / BoardConfigNfc.mk
  7. Nambahake aplikasi DTA
    $git clone https://github.com/NXPNFCProject/NXPAndroidDTA.git $git checkout NFC_DTA_v13.02_OpnSrc $patch -p1 AROOT_system_nfc-dta.patch
    $ cp -r nfc-dta /system/nfc-dta
    $/system/nfc-dta/$ mm -j
  8. Saiki kita bisa mbangun AOSP maneh kanthi kabeh owah-owahan sing digawe:
    $cd kerangka/basis
    $mm
    $cd../..
    $cd vendor/nxp/frameworks
    $mm #sawise iki, kita kudu ndeleng com.nxp.emvco.jar nang njaba/target/product/xxxx/system/framwework/
    $cd ../../..
    $cd hardware/nxp/nfc
    $mm
    $cd ../../..
    $gawe -j
    Saiki, kita bisa kerlip host piranti kita nganggo gambar Android sing kalebu fitur NFC.

3.2 Aplikasi Android NFC lan Lib ing target
Ing bagean iki, kita njlèntrèhaké ngendi tartamtu dikompilasi files di-push. Yen ana owah-owahan, kita bisa ngganti mung sing file. Tabel 1 nuduhake kabeh lokasi.
Tabel 1. Disusun files karo target piranti

Lokasi proyek Disusun Files Lokasi ing piranti target
"$ANDROID_ROOT"/packages/apps/Nfc lib/NfcNci.apk
oat/libnfc_nci_jni.so
/system/app/NfcNci/
/system/lib64/
"$ANDROID_ROOT"/system/nfc libnfc_nci.so /system/lib64/
"$ANDROID_ROOT"/hardware/nxp/nfc nfc_nci_nxp_pn72xx.so
android.hardware.nfc_72xx@1.2-service android.hardware.nfc_72xx@1.2-service.rc
android.hardware.nfc@1.0.so
android.hardware.nfc@1.1.so
android.hardware.nfc@1.2.so
/vendor/lib64
/vendor/bin/hw/
/vendor/etc/init
sistem/lib64/
sistem/lib64/
sistem/lib64/
"$ANDROID_ROOT"/hardware/nxp/nfc vendor.nxp.nxpnfc@2.0.so /system/lib64
"$ANDROID_ROOT"/vendor/nxp/frameworks com.nxp.emvco.jar /system/framework
/vendor/framework
"$ANDROID_ROOT"/hardware/nxp/emvco emvco_poller.so
android.hardware.emvco-service
android.hardware.emvco-service.rc
android.hardware.emvco-V1-ndk.so
android.hardware.emvco-V2-ndk.so
/vendor/lib64
/vendor/bin/hw/
/vendor/etc/init
sistem/lib64/
sistem/lib64/

3.3 Pemetaan patch

Saben tembelan kudu ditrapake ing lokasi tartamtu. Tabel 2 nuduhake jeneng tembelan lan lokasi ngendi kita kudu aplikasi lan jeneng pemblokiran, kang nuduhake kita ngendi ing tumpukan NFC (Figure 1).
Tabel 2. Patch lokasi ing NFC Stack

Jeneng blok Jeneng patch Lokasi kanggo nglamar
NFC HAL lan EMVCo HAL AROOT_hardware_interfaces.patch hardware/antarmuka/
Tumpukan NFC AROOT_hardware_nxp_nfc.patch hardware/nxp/nfc/
EMVCo L1 Data Exchange Layer = EMVCo Stack AROOT_hardware_nxp_emvco.patch hardware/nxp/emvco/
LibNfc-Nci AROOT_system_nfc.patch sistem/nfc/
NFC JNI AROOT_packages_apps_Nfc.patch paket/aplikasi/nfc/
Layanan NFC AROOT_packages_apps_Nfc.patch paket/aplikasi/nfc/
NFC Framework AROOT_frameworks_base.patch kerangka/dasar/
Kerangka EMVCo AROOT_vendor_nxp_frameworks.patch vendor/nxp/frameworks/

3.4 Gambar sing sumunar
Gambar bisa ditemokake ing /out/target/product/{selected_DH}. Kanggo kerlip gambar sistem, kita kudu mbukak printah ing ngisor iki (dites ing Dragonboard 845c).
$ adb reboot bootloader
$ fastboot flash boot boot_uefi.img
$ fastboot flash vendor_boot vendor_boot.img
$ fastboot flash super super.img
$ fastboot flash userdata userdata.img
$ format fastboot: metadata ext4 $fastboot reboot

Sawise gambar flashed, kita kudu nindakake sawetara MW ngresiki dening mlaku printah ing ngisor iki (dites ing Dragonboard 845c).

$ adb ngenteni-kanggo-piranti
$adb root
$ adb ngenteni-kanggo-piranti
$ adb remount
$ adb shell rm -rf vendor/etc/init/android.hardware.nfc@1.1-service.rc
$ adb shell rm -rf vendor/etc/init/android.hardware.nfc@1.2-service.rc
$ adb push Test_APK/EMVCoAidlHalComplianceTest/EMVCoAidlHalComplianceTestsystem/etc
$ adb shell chmod 0777 /system/etc/EMVCoAidlHalComplianceTest
$ adb push Test_APK/EMVCoAidlHalDesfireTest/EMVCoAidlHalDesfireTest system/etc
$ adb shell chmod 0777 /system/etc/EMVCoAidlHalDesfireTest
$ adb push Test_APK/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk system/app/EMVCoModeSwitchApp/EMVCoModeSwitchApp.apk
$ adb shell sync
$ adb urip maneh
$ adb ngenteni-kanggo-piranti

3.5 Konfigurasi files
Ing PN7220, kita duwe papat konfigurasi sing beda files.

  1. libemvco-nxp.conf
  2. libnfc-nci.conf
  3. libnfc-nxp.conf
  4. libnfc-nxp-eeprom.conf

Cathetan: Pay manungsa waé sing konfigurasi files kasedhiya ing example hubungane karo Papan demo controller NFC. Iki files kudu diadopsi miturut integrasi diangkah.
Kabeh papat files kudu di-push menyang lokasi tartamtu.

Tabel 3.  Lokasi konfigurasi files

Jeneng konfigurasi file Lokasi ing piranti
libemvco-nxp.conf vendor / lsp
libnfc-nci.conf vendor / lsp
libnfc-nxp.conf sistem / lsp
libnfc-nxp-eeprom.conf vendor / lsp

libnfc-nxp-eeprom.conf

Tabel 4. libnfc-nxp-eeprom.conf panjelasan

jeneng Panjelasan Nilai standar
NXP_SYS_CLK_
SRC_SEL
Konfigurasi pilihan sumber jam sistem 0x01
NXP_SYS_CLK_
FREQ_SEL
Konfigurasi pilihan frekuensi jam sistem 0x08
NXP_ENABLE_
DISABLE_STANBY
Pilihan kanggo ngaktifake utawa mateni mode Siyaga 0x00
NXP_ENABLE_
DISABLE_LPCD
Pilihan kanggo ngaktifake utawa mateni LPCD. 0x00

Cathetan: Yen ora ana jam sing dikonfigurasi, PLL utawa Xtal, tumpukan MW bakal nyoba maneh ing daur ulang kanggo entuk jam kasebut lan sukses. libnfc-nci.conf

Tabel 5. libnfc-nci.conf panjelasan

jeneng Panjelasan Nilai standar
APPL_TRACE_LEVEL Tingkat log kanggo libnfc-nci 0xff
PROTOCOL_TRACE_LEVEL Tingkat log kanggo libnfc-nci 0xFFFFFFFF
NFC_DEBUG_ENABLED NFC debug ngaktifake setelan 0x01
NFA_STORAGE Setel direktori target kanggo NFC file panyimpenan /data/vendor/nfc
HOST_LISTEN_TECH_MASK Konfigurasi fitur ngrungokake host 0x07
NCI_HAL_MODULE NCI HAL Modul jeneng nfc_nci.pn54x
POLLING_TECH_MASK Konfigurasi teknologi polling 0x0f

Tabel 5. libnfc-nci.conf panjelasan…lajengipun

jeneng Panjelasan Nilai standar
P2P_LISTEN_TECH_MASK P2P ora didhukung ing PN7220 0xC5
PRESERVE_STORAGE Verifikasi isi kabeh toko nonvolatile. 0x01
AID_MATCHING_MODE Nyedhiyakake macem-macem cara kanggo cocog karo AID 0x03
NFA_MAX_EE_SUPPORTED Nomer maksimal EE sing didhukung 0x01
OFFHOST_AID_ROUTE_PWR_STATE Setel negara sing didhukung OffHost AID 0x3b

libnfc-nxp.conf

Tabel 6. libnfc-nxp.conf panjelasan

jeneng Panjelasan Nilai standar
NXPLOG_EXTNS_LOGLEVEL Konfigurasi kanggo tingkat logging extns 0x03
NXPLOG_NCIHAL_LOGLEVEL Konfigurasi kanggo ngaktifake logging HAL 0x03
NXPLOG_NCIX_LOGLEVEL Konfigurasi kanggo ngaktifake logging paket NCI TX 0x03
NXPLOG_NCIR_LOGLEVEL Konfigurasi kanggo ngaktifake logging paket NCI RX 0x03
NXPLOG_FWDNLD_LOGLEVEL Konfigurasi kanggo ngaktifake logging fungsi download FW 0x03
NXPLOG_TML_LOGLEVEL Konfigurasi kanggo ngaktifake logging TM 0x03
NXP_NFC_DEV_NODE Jeneng Node Piranti NFC idev/rixpnfc”
MIFARE_READER_ENABLE Ekstensi kanggo maca NFC kanggo MIFARE ngaktifake Sapi01
NXP_FW_TYPE Firmware file jinis Sapi01
NXP_I2C_FRAGMENTATION_ AKTIF Konfigurasi fragmentasi 12C 0x00
NFA_PROPRIETARY_CFG Setel konfigurasi proprietary Vendor {05, FF, FF, 06, 81, 80, 70, FF, FF}
NXP_EXT_TVDD_CFG Setel mode konfigurasi TVDD 0x02
NXP_EXT TVDD_CFG_1 Konfigurasi setelan TVDD miturut mode TVDD sing dipilih Priksa konfigurasi file
NXP_EXT_TVDD_CFG_2 Konfigurasi setelan TVDD miturut mode TVDD sing dipilih Priksa konfigurasi file
NXP_CORE_CONF Ngatur bagean standar saka controller NFC { 20, 02, 07, 02, 21, 01, 01, 18, 01, 02}
NXP_CORE_CONF_EXTN Ngatur bagean proprietary saka controller NFC {00, 00, 00, 00}
NXP_SET_CONFIG_ALWAYS Kirimi CORE_CONF lan CORE_CONF_EXTN (ora dianjurake kanggo ngaktifake.) Sapi00
NXP_RF_CONF_BLK_1 setelan RF Priksa konfigurasi file
ISO_DEP_MAX_TRANSCEIVE Netepake maksimum ISO-DEP lengkap dawa APDU OxFEFF
PRESENCE_CHECK_ALGORITHM Setel algoritma sing digunakake kanggo prosedur mriksa ngarsane T4T 2
NXP_FLASH_CONFIG Flashing Pilihan Konfigurasi 0x02

libemvco-nxp.conf

Tabel 7. libemvco-nxp.conf panjelasan

jeneng Panjelasan Nilai standar
NXP LOG EXTNS LOGLEVEL Konfigurasi kanggo tingkat logging extns 0x03
NXP LOG NCIHAL LOGLEVEL Konfigurasi kanggo ngaktifake logging HAL 0x03
NXP LOG NCIX LOGLEVEL Konfigurasi kanggo ngaktifake logging paket NCI TX 0x03
NXP LOG NCIR LOGLEVEL Konfigurasi kanggo ngaktifake logging paket NCI RX 0x03
NXP LOG TML LOGLEVEL Konfigurasi kanggo ngaktifake logging TML 0x03
NXP_EMVCO_DEBUG_ENABLED Aktifake debugging 0x03
NXP EMVCO DEV NODE Jeneng Node Piranti EMVCo "/dev/nxpnfc"
NXP PCD SETTINGS Konfigurasi kanggo nyetel wektu tundha polling antarane 2 fase (20, 02, 07, 01, A0, 64, 03, EC, 13, 06)
NXP SET KONFIG Pilihan kanggo nyetel printah config kanggo tujuan debugging Priksa konfigurasi file
NXP GET KONFIG Pilihan kanggo njaluk printah config kanggo tujuan debugging Priksa konfigurasi file

3.6 APLIKASI DTA
Kanggo ngidini tes sertifikasi Forum NFC, aplikasi tes piranti diwenehake. Iku dumadi saka sawetara komponen ing lapisan Android beda, kang kudu dibangun lan klebu ing gambar Android.
Kanggo push aplikasi DTA, kita kudu tindakake langkah ing ngisor iki:

  1. Nyalin kabeh DTA files menyang siji lokasi
    $cp -rf "out/target/product/hikey960/system/lib64/libosal.so" /DTA-PN7220
    $cp -rf "out/target/product/hikey960/system/lib64/libmwif.so" /DTA-PN7220
    $cp -rf "metu/target/produk/hikey960/system/lib64/libdta.so" /DTA-PN7220
    $cp -rf “metu/target/produk/hikey960/system/lib64/libdta_jni.so” /DTA-PN7220
    $cp -rf "metu/target/produk/hikey960/system/app/NxpDTA/NxpDTA.apk" /DTAPN7220
  2. Push binar menyang piranti kaya ing ngisor iki
    adb shell mkdir /system/app/NxpDTA/
    adb push libosal.so /system/lib64/
    adb push libdta.so /system/lib64/
    adb push libdta_jni.so /system/lib64/
    adb push libmwif.so /system/lib64/
    adb push NxpDTA.apk /system/app/NxpDTA/

Sawise sumunar target, aplikasi DTA banjur kudu ana ing dhaptar aplikasi sing diinstal. Priksa UG kanggo katrangan rinci babagan cara nggunakake aplikasi kasebut.

i.MX 8M Nano porting

Minangka mantanample, kita nuduhake apa porting menyang platform i.MX 8M katon kaya. Kanggo entuk informasi luwih lengkap, priksa [3].

4.1 Hardware
Saiki, NXP ora nyedhiyakake papan adaptor. Priksa Tabel 8 kanggo ndeleng carane nyambungake papan karo kabel.

Tabel 8. PN7220 kanggo i.MX 8M Nano sambungan

PIN PN7220 i.MX 8M NANO
VEN J27 – 7 J003 – 40
IRQ J27 – 6 J003 – 37
SDA J27 – 3 J003 – 3
SCL J27 – 2 J003 – 5
MODE_SWITCH J43 – 32 J003 – 38
GND J27 – 1 J003 – 39

Piranti Lunak 4.2
Langkah-langkah sing diterangake ing bagean iki nerangake carane kita bisa port PN7200 menyang i.MX 8M Nano platform. Langkah-langkah sing padha karo sawetara modifikasi, bisa digunakake kanggo port menyang DH liyane sing nganggo OS Android.
Cathetan: Ing porting iki example, kita nggunakake 13.0.0_1.0.0_Android_Source.
Kita bisa nggunakake maneh tambalan sing ana gandhengane karo kode AOSP. Sing kudu diganti yaiku:

  1. Wit piranti (ing i.MX 8M Nano, iki AROOT_vendor_nxp-opensource_imx_kernel.patch)
  2. Tembelan khusus piranti (ing i.MX 8M Nano, iki AROOT_device_nxp.patch)

Ing AROOT_vendor_nxp-opensource_imx_kernel.patch, kita bisa ndeleng carane driver klebu lan carane wit piranti dibangun. Iki khusus kanggo saben piranti inang amarga kita kudu ngurus konfigurasi pin, lan iki beda antarane papan. Kita uga kudu ngurus konfigurasi menu.
Ing AROOT_device_nxp.patch, kita kalebu nfc menyang mbangun. Umumé, kita nggawe manawa, sing kabeh layanan sing klebu bener, etc.. Nalika porting menyang host piranti tartamtu, njupuk patch iki minangka referensi lan kalebu kabeh iku nang.
Siji bab tambahan kita nindakake ing porting dumunung ing piranti-nfc.mk file:
Kita kudu menehi komentar ing baris ing ngisor iki:
# BOARD_SEPOLICY_DIRS += vendor/$(NXP_VENDOR_DIR)/nfc/sepolicy \
# vendor/$(NXP_VENDOR_DIR)/nfc/sepolicy/nfc
Alesan kanggo iki kita kalebu sepolicy ing BoardConfig.mk khusus piranti file. Langkah-langkah kanggo nggawe gambar:
> Entuk kode AOSP kanggo i.MX8M Nano
> Mbangun AOSP
> Entuk patch NXP ([5])
> Aplikasi kabeh patch karo install_nfc.sh
> cd framework/base
> mm
> cd../..
> vendor cd/nxp/frameworks
> mm #sawise iki, kita kudu ndeleng com.nxp.emvco.jar nang njaba/target/product/ imx8mn/system/framwework/
> cd../../..
> cd hardware/nxp/nfc
> mm
> cd../../..
> gawe
> Download gambar lan nggunakake alat uuu kanggo lampu kilat i.MX8M Nano

Singkatan

Tabel 9. Cekakan

Akronim Katrangan
APDU unit data protokol aplikasi
AOSP Proyek sumber terbuka Android
DH host piranti
HAL lapisan abstraksi hardware
FW firmware
I2C sirkuit interintegrasi
LPCD deteksi kertu powerd ngisor
NCI Antarmuka pengontrol NFC
NFC komunikasi cedhak lapangan
MW middleware
PLL fase-locked loop
P2P peer to peer
RF frekuensi radio
SDA data serial
SMCU mikrokontroler aman
SW piranti lunak

Referensi

[1] AOSP r3 tag: https://android.googlesource.com/platform/manifest-b android-13.0.0_r3
[2] Alat kontrol sumber: https://source.android.com/docs/setup/download
[3] i.MX: https://www.nxp.com/design/software/embedded-software/i-mx-software/android-os-for-i-mxapplications-processors:IMXANDROID
[4] Driver kernel PN7220: https://github.com/NXPNFCLinux/nxpnfc/tree/PN7220-Driver
[5] PN7220 MW: https://github.com/NXPNFCLinux/PN7220_Android13

Wigati babagan kode sumber ing dokumen kasebut

ExampKode sing ditampilake ing dokumen iki nduweni hak cipta lan lisensi BSD-3-Clause:
Hak Cipta 2023 NXP Distribusi lan digunakake ing sumber lan formulir binar, kanthi utawa tanpa modifikasi, diidini yen syarat-syarat ing ngisor iki dipenuhi:

  1. Distribusi ulang kode sumber kudu njaga kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki.
  2. Distribusi ulang ing wangun binar kudu ngasilake kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki ing dokumentasi lan / utawa bahan liyane kudu diwenehake karo distribusi kasebut.
  3. Jeneng sing duwe hak cipta utawa jeneng panganggo uga ora bisa digunakake kanggo nyengkuyung utawa promosi produk sing dijupuk saka piranti lunak iki tanpa ijin tertulis sadurunge.

SOFTWARE IKI DISEDIAKAN DENING SING nduwèni HAK CIPTA lan kontributor "AS IS" LAN ANY JAMINAN EXPRESS UTAWA TERSIRAT, Klebu, nanging ora winates kanggo, JAMINAN TERSIRAT saka MERCHANTABILITY lan FITNESS kanggo tujuan tartamtu. Ora ana sing nduwèni hak cipta utawa kontributor TANGGUNG JAWAB LANGSUNG, LANGSUNG, INCIDENTAL, KHUSUS, EXEMPLARY, UTAWA KERUSAKAN KONSEKUENSIAL (kalebu, nanging ora winates kanggo, pengadaan barang substitusi utawa layanan, layanan, layanan; UTAWA GANGGUAN BISNIS) Nanging nyebabake lan ing sembarang teori tanggung jawab, apa ing kontrak, TANGGUNG JAWAB STRICT, UTAWA TORT (kalebu teledor UTAWA liyane) njedhul ing sembarang cara metu saka nggunakake piranti lunak iki, sanajan saka saran saka saran.

Informasi hukum

8.1 Definisi
Draft - A status konsep ing document nuduhake yen isi isih ing re internalview lan tundhuk persetujuan resmi, sing bisa nyebabake modifikasi utawa tambahan. NXP Semiconductors ora menehi perwakilan utawa garansi babagan akurasi utawa kelengkapan informasi sing kalebu ing versi draf dokumen lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut.

8.2 Bantahan
Garansi lan tanggung jawab winates - Informasi ing dokumen iki dipercaya akurat lan dipercaya. Nanging, NXP Semiconductors ora menehi perwakilan utawa jaminan, sing ditulis utawa diwenehake, babagan akurasi utawa jangkep informasi kasebut lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut. NXP Semiconductors ora tanggung jawab kanggo isi ing dokumen iki yen diwenehake dening sumber informasi ing njaba NXP Semiconductors.
NXP Semiconductors ora bakal tanggung jawab kanggo karusakan ora langsung, insidental, punitive, khusus utawa konsekuensial (kalebu - tanpa watesan ilang bathi, ilang tabungan, gangguan bisnis, biaya sing ana gandhengane karo penghapusan utawa panggantos produk utawa biaya kerja ulang) ora karusakan kuwi adhedhasar tort (kalebu teledor), babar pisan, nerbitake kontrak utawa teori legal liyane.
Senadyan karusakan apa wae sing bisa ditindakake dening pelanggan kanthi alasan apa wae, tanggung jawab agregat lan kumulatif NXP Semikonduktor marang pelanggan kanggo produk sing diterangake ing kene bakal diwatesi miturut Katentuan lan kahanan adol komersial NXP Semikonduktor.
Hak kanggo nggawe owah-owahan - NXP Semiconductors nduweni hak kanggo ngowahi informasi sing diterbitake ing dokumen iki, kalebu tanpa watesan spesifikasi lan deskripsi produk, kapan wae lan tanpa kabar. Dokumen iki ngganti lan ngganti kabeh informasi sing diwenehake sadurunge diterbitake.
Cocog kanggo nggunakake - Produk NXP Semiconductors ora dirancang, sah utawa dijamin cocok kanggo digunakake ing dhukungan urip, sistem utawa peralatan sing kritis utawa safety-kritis, utawa ing aplikasi sing gagal utawa malfungsi produk NXP Semikonduktor bisa diduga nyebabake bundhas pribadi, pati utawa property abot utawa karusakan lingkungan. NXP Semikonduktor lan panyedhiya ora tanggung jawab kanggo kalebu lan/utawa nggunakake produk NXP Semikonduktor ing peralatan utawa aplikasi kasebut lan mulane kalebu lan/utawa panggunaan kasebut tanggung jawab kanggo pelanggan.
Aplikasi — Aplikasi sing diterangake ing kene kanggo samubarang produk iki mung kanggo ilustrasi. NXP Semiconductors ora menehi perwakilan utawa garansi manawa aplikasi kasebut cocog kanggo panggunaan sing ditemtokake tanpa tes utawa modifikasi luwih lanjut. Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sing nggunakake produk NXP Semiconductors, lan NXP Semiconductors ora tanggung jawab kanggo bantuan karo aplikasi utawa desain produk pelanggan. Tanggung jawab tunggal pelanggan kanggo nemtokake manawa produk NXP Semiconductors cocok lan pas kanggo aplikasi lan produk sing direncanakake, uga kanggo aplikasi sing direncanakake lan panggunaan pelanggan pihak katelu. Pelanggan kudu menehi desain lan perlindungan operasi sing cocog kanggo nyuda risiko sing ana gandhengane karo aplikasi lan produk.
NXP Semiconductors ora nampa tanggung jawab sembarang related kanggo gawan sembarang, karusakan, biaya utawa masalah kang adhedhasar sembarang kekirangan utawa gawan ing aplikasi utawa produk customer, utawa aplikasi utawa digunakake dening customer pihak katelu (e). Pelanggan tanggung jawab kanggo nindakake kabeh tes sing dibutuhake kanggo aplikasi lan produk pelanggan nggunakake produk NXP Semiconductors supaya ora dadi standar aplikasi lan produk utawa aplikasi utawa digunakake dening pelanggan pihak katelu. NXP ora nanggung tanggung jawab babagan iki.
Sarat lan kahanan sale komersial - Produk NXP Semiconductors didol miturut syarat-syarat umum lan kahanan adol komersial, kaya sing diterbitake ing http://www.nxp.com/profile/terms, kajaba digunakake sarujuk ing persetujuan individu ditulis bener. Ing kasus persetujuan individu rampung mung syarat lan katemtuan saka persetujuan pamilike bakal ditrapake. NXP Semiconductors kanthi iki kanthi tegas mbantah kanggo ngetrapake syarat lan kahanan umum pelanggan babagan tuku produk NXP Semiconductors dening pelanggan.
Kontrol ekspor - Dokumen iki uga item (e) sing diterangake ing kene bisa uga tundhuk karo peraturan kontrol ekspor. Ekspor bisa uga mbutuhake wewenang sadurunge saka panguwasa sing kompeten.
Cocog kanggo digunakake ing produk qualified non-otomotif - Kajaba dokumen iki kanthi tegas nyatakake yen produk NXP Semiconductors khusus iki nduweni kualifikasi otomotif, produk kasebut ora cocok kanggo panggunaan otomotif. Ora qualified utawa dites sesuai karo tes otomotif utawa syarat aplikasi. NXP Semiconductors ora tanggung jawab kanggo inklusi lan / utawa nggunakake produk qualified non-otomotif ing peralatan utawa aplikasi otomotif.
Yen pelanggan nggunakake produk kanggo desain lan digunakake ing aplikasi otomotif kanggo spesifikasi lan standar otomotif, pelanggan (a) kudu nggunakake produk kasebut tanpa jaminan NXP Semikonduktor kanggo produk kasebut kanggo aplikasi, panggunaan lan spesifikasi otomotif kasebut, lan ( b) nalika pelanggan nggunakake produk kanggo aplikasi otomotif ngluwihi spesifikasi NXP Semikonduktor, panggunaan kasebut mung dadi resiko pelanggan dhewe, lan (c) pelanggan menehi ganti rugi kanthi lengkap NXP Semikonduktor kanggo tanggung jawab, kerusakan utawa klaim produk sing gagal amarga desain lan panggunaan pelanggan. produk kanggo aplikasi otomotif ngluwihi babar pisan standar NXP Semikonduktor lan spesifikasi produk NXP Semikonduktor.
Produk evaluasi - Produk iki diwenehake kanthi basis "kaya" lan "kanthi kabeh kesalahan" mung kanggo tujuan evaluasi. Semikonduktor NXP, afiliasi lan pemasoke kanthi tegas mbantah kabeh jaminan, manawa nyata, tersirat utawa statutori, kalebu nanging ora diwatesi karo jaminan sing ora ana pelanggaran, perdagangan lan kabugaran kanggo tujuan tartamtu. Kabeh risiko babagan kualitas, utawa sing muncul saka panggunaan utawa kinerja, produk iki tetep ana ing pelanggan.
Ing acara apa wae NXP Semikonduktor, afiliasi utawa pemasoke ora tanggung jawab marang pelanggan kanggo karusakan khusus, ora langsung, konsekuensial, punitive utawa insidental (kalebu tanpa watesan karusakan kanggo mundhut bisnis, gangguan bisnis, mundhut panggunaan, mundhut data utawa informasi. , lan liya-liyane) sing muncul saka panggunaan utawa ora bisa nggunakake produk kasebut, apa ora
adhedhasar tort (kalebu teledor), tanggung jawab sing ketat, nglanggar kontrak, nglanggar garansi utawa teori liyane, sanajan menehi saran babagan kemungkinan kerusakan kasebut. Senadyan karusakan apa wae sing bisa ditindakake dening pelanggan kanthi alasan apa wae (kalebu tanpa watesan, kabeh kerusakan sing kasebut ing ndhuwur lan kabeh kerusakan langsung utawa umum), kabeh tanggung jawab NXP Semiconductors, afiliasi lan pemasok lan obat eksklusif pelanggan kanggo kabeh kasebut ing ndhuwur kudu diwatesi kanggo kerusakan nyata sing ditindakake dening pelanggan adhedhasar ketergantungan sing cukup nganti luwih gedhe saka jumlah sing dibayar dening pelanggan kanggo produk kasebut utawa limang dolar (US$5.00). Watesan, pangecualian lan penafian kasebut bakal ditrapake nganti maksimal sing diidinake dening hukum sing ditrapake, sanajan ana obat sing gagal kanggo tujuan sing penting.
Terjemahan — Versi non-Inggris (diterjemahake) saka dokumen, kalebu informasi hukum ing dokumen kasebut, mung kanggo referensi. Versi Inggris bakal ditrapake yen ana bedo antarane versi terjemahan lan Inggris.
Keamanan — Pelanggan mangertos manawa kabeh produk NXP bisa ngalami kerentanan sing ora dingerteni utawa ndhukung standar keamanan utawa spesifikasi sing wis ditemtokake kanthi watesan sing dingerteni. Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sajrone siklus urip kanggo nyuda efek saka kerentanan kasebut ing aplikasi lan produk pelanggan. Tanggung jawab pelanggan uga ngluwihi teknologi mbukak lan/utawa eksklusif liyane sing didhukung produk NXP kanggo digunakake ing aplikasi pelanggan. NXP ora tanggung jawab kanggo kerentanan apa wae. Pelanggan kudu rutin mriksa nganyari keamanan saka NXP lan tindakake kanthi tepat. Pelanggan kudu milih produk kanthi fitur keamanan sing paling cocog karo aturan, peraturan, lan standar aplikasi sing dituju lan nggawe keputusan desain sing paling penting babagan produk lan tanggung jawab mung kanggo netepi kabeh syarat legal, peraturan, lan keamanan babagan produke, preduli. informasi utawa dhukungan sing bisa diwenehake dening NXP.
NXP duwe Product Security Incident Response Team (PSIRT) (bisa digayuh ing PSIRT@nxp.com) sing ngatur investigasi, laporan, lan rilis solusi kanggo kerentanan keamanan produk NXP.
NXP BV – NXP BV dudu perusahaan operasi lan ora nyebarake utawa ngedol produk.

8.3 Lisensi
Tuku IC NXP kanthi teknologi NFC - Tuku IC Semikonduktor NXP sing tundhuk karo salah sawijining standar Near Field Communication (NFC) ISO / IEC 18092 lan ISO / IEC 21481 ora menehi lisensi sing diwenehake miturut hak paten sing dilanggar dening implementasine samubarang standar kasebut. Tuku NXP Semiconductors IC ora kalebu lisensi kanggo paten NXP (utawa hak IP liyane) sing kalebu kombinasi produk kasebut karo produk liyane, apa hardware utawa piranti lunak.

8.4 Merek dagang
Kabar: Kabeh merek sing dirujuk, jeneng produk, jeneng layanan, lan merek dagang minangka properti saka pamilike.
NXP — wordmark lan logo iku merek dagang saka NXP BV
EdgeVerse - minangka merek dagang saka NXP BV
i.MX - iku merek dagang saka NXP BV
I2C-bus — logo iku merek dagang saka NXP BV
Oracle lan Java - iku merek dagang kadhaptar saka Oracle lan / utawa afiliasi.

Wigati dimangerteni manawa kabar penting babagan dokumen iki lan produk sing diterangake ing kene, wis kalebu ing bagean 'Informasi hukum'.

NXP - logo© 2023 NXP BV
Kanggo informasi luwih lengkap, bukak: http://www.nxp.com
Kabeh hak dilindhungi undhang-undhang.
Tanggal rilis: 18 September 2023
Pengenal dokumen: AN13971

AN13971
Cathetan aplikasi
Kabeh informasi sing diwenehake ing dokumen iki tundhuk wewaler legal.
Wahyu 1.0 - 18 September 2023
© 2023 NXP BV Kabeh hak dilindhungi undhang-undhang.

Dokumen / Sumber Daya

NXP PN7220 Compliant NFC Controller [pdf] Pandhuan pangguna
PN7220 Compliant NFC Controller, PN7220, Compliant NFC Controller, NFC Controller, Kontroler

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *