1. 程式人生 > >關於PN547的NFC晶片在CM及其他第三方原始碼編譯中不可用的臨時解決方案

關於PN547的NFC晶片在CM及其他第三方原始碼編譯中不可用的臨時解決方案

新的PN547晶片較上一代PN544有了更大的提升,PN547的效能超越當前所有NFC無線控制器,與業內基準PN544相比,其射頻範圍提高一倍,無線資料吞吐量提高5倍,封裝尺寸與能耗量均減少一半。PN547的全球互操作性極強,可相容所有非接觸式讀卡器和NFC標籤,在不久的將來為裝置提供全新變革性使用者體驗。此外,恩智浦新一代移動支付解決方案可支援各類應用場景,不但與MIFARE家族技術全相容(Classic 1K、Classic 4K、DESFire、Plus),還可實現手持移動POS機和移動票務等NFC擴充套件應用。

目前已上市使用PN547的包括泛泰890 900 910系列,三星NOTE3歐洲幾個版本也是使用了PN547

在編譯CM、mokee、omni等第三方系統時,由於沒有pn547的相關原始碼,導致編譯後一直無法正常驅動

經過不斷嘗試,目前已經實現在CM等第三方ROM上正常開啟關閉NFC,讀取tag正常,傳送檔案有時不正常,具體解決方案如下:

1、在Boardconfig中無需配置BOARD_HAVA_NFC等NFC開關

2、在device.mk中如下書寫要編譯內容

PRODUCT_PACKAGES += \
    NfcNci \
    Tag \
    com.android.nfc_extras

3、從官方rom中抽取如下檔案(視機型略有差異):
lib/hw/nfc.default.so
vendor/firmware/libpn547_fw.so
vendor/firmware/libpn547_fw_platform.so
vendor/firmware/libpn547_pku.so
vendor/firmware/TestInput.txt
lib/libnfc_ndef.so
lib/libnfc-nci.so
etc/libnfc-brcm.conf
etc/nfc-nci.conf
etc/nfcee_access.xml

4、除此之外,還要在device.mk中新增好hce nfc extra等對應的permission檔案。如此編譯完成後NFC應該就能啟動

至於原理,暫未知大笑