NFC chip PN7160在Android軟體整合之介紹

PN7160雖已普遍使用,但開發初期進行軟體整合時,如沒有相關經驗,容易發生問題(雖然NXP有提供相關的整合文件);本篇將介紹軟體的整合步驟與問題分享。

        另外,PN7160可以整合在Android與Linux上,本篇是介紹Android平台(目前支援A11-A13)。

 

  1. 確認硬體線路

在開始進行整合或是過程中,請務必與HW同仁確認相關線路是沒問題的。

 

  1. 抓取code
  • Driver code

$ git clone https://github.com/NXPNFCLinux/nxpnfc.git drivers/nfc

與i2c與spi等相關的程式碼。

在platform端設定時請確認對應的address與每個pin對應之GPIO是否設置正確。

  •  AOSP adaptation

 

  1. 導入NFC patch

執行資料夾底下的install_NFC.sh,會自動將對應的patch導入。執行過中請確認是否有error message;如果有,請自行用手動修改,將patch內容進行整合。

 install_NFC.sh執行成功

•執行install_NFC.sh成功,沒有衝突發生。

install_NFC.sh執行發生錯誤

•執行install_NFC.sh過程有發生錯誤,需手動修改。

 

  1. 修改.conf檔案
  • Debug level在案子開發初期,建議全開。

###############################################################################

# Logging Levels. Suggested value for debugging is 0x03.

#  NXPLOG_EXTNS_LOGLEVEL - Configuration for extns logging level

#  NXPLOG_NCIHAL_LOGLEVEL - Configuration for enabling logging of HAL

#  NXPLOG_NCIX_LOGLEVEL - Configuration for enabling logging of NCI TX packets

#  NXPLOG_NCIR_LOGLEVEL - Configuration for enabling logging of NCI RX packets

#  NXPLOG_FWDNLD_LOGLEVEL - Configuration for enabling logging of FW download functionality

#  NXPLOG_TML_LOGLEVEL - Configuration for enabling logging of TML

NXPLOG_EXTNS_LOGLEVEL=0x03

NXPLOG_NCIHAL_LOGLEVEL=0x03

NXPLOG_NCIX_LOGLEVEL=0x03

NXPLOG_NCIR_LOGLEVEL=0x03

NXPLOG_FWDNLD_LOGLEVEL=0x03

NXPLOG_TML_LOGLEVEL=0x03

 
NFC_DEBUG_ENABLED=0x01

 

  • 依照案子設定,調整clock來源與頻率。

###############################################################################

# System clock source selection configuration

#define CLK_SRC_XTAL       1

#define CLK_SRC_PLL        2

NXP_SYS_CLK_SRC_SEL=0x02

clock來源是外掛XTAL,NXP_SYS_CLK_SRC_SEL要設置為0x01;由內部PMIC提供則為0x02。

 

###############################################################################

# System clock frequency selection configuration

#define CLK_FREQ_13MHZ         1

#define CLK_FREQ_19_2MHZ       2

#define CLK_FREQ_24MHZ         3

#define CLK_FREQ_26MHZ         4

#define CLK_FREQ_38_4MHZ       5

#define CLK_FREQ_52MHZ         6

NXP_SYS_CLK_FREQ_SEL=0x02

 在clock來源是PMIC的狀況下,需依照硬體狀況設置對應的頻率。

 

  1. platform相關的設定

不同平台會有不同之設定,請務必依照平台規則進行整合。

 

  1. compile code

將文件提到之所有內容進行整合後,確認是否能編譯image成功;如有error再依照message進行修改,一般error都是與平台相關設定整合有遺漏。

 

        後續將編譯完成的image進行燒錄,確認NFC是否能正常enable/disable;如有遇到問題可先自行確認log狀況,後續再與NFC vendor進行討論。

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能

參考來源

NXP: https://www.nxp.com/docs/en/application-note/AN13189.pdf