首頁>汽車>

NXP KEA系列,恩智浦收購飛思卡爾後,推出的基於ARM cortex M0核心的32位微控制器。我在開發使用的過程中,總結了這個晶片的一些相關特性和除錯問題點。

KEA128

IO口暫存器

PDOR:資料輸出暫存器;PDIR:資料輸入暫存器;PDDR:資料方向暫存器;PIDR:輸入禁用暫存器。其中,PIDR輸入禁用暫存器比較特殊。如果要配置輸入口,除了配置PDDR資料方向暫存器外,還要使能PIDR輸入禁用暫存器。這是一種安全設計,保護IO口,可以主動避免微控制器燒IO口。

可以關閉RESET功能

晶片有IO口複用了reset的功能,這個功能是可以透過軟體配置關閉的。特別是在汽車電子的設計中,基於安全考慮,是不允許晶片IO口具備reset功能的。因為,晶片如何受到外部電子干擾,可能會觸發這個reset功能,從而導致電子模組工作異常。

SIM_SOPT0寫入的時候需要注意:RSTPE 和NMIE 在每次復位時只能寫入一次。

重啟上電沒有功能

重啟上電後,觸發中斷陷阱。比如,我有一次在除錯的過程中,沒有將未使用的捕捉口(CCP)沒有關掉,當微控制器外部產生電平跳變,程式進入中斷中,沒有退出。

看門狗

看門狗需要解鎖才能配置,不先進行解鎖直接配置是無效的,配置方法:

WDOG_CNT = 0x20C5; // write the 1st unlock word

WDOG_CNT = 0x28D9; // write the 2nd unlock word

餵狗,需要關中斷,如果不關中斷,會造成餵狗失敗。餵狗方法:

__DI();

WDOG_CNT = 0x02A6;

WDOG_CNT = 0x80B4;

__EI();

PWM輸出

配置發現沒有PWM輸出,分析發現,與佔空比相關引數FTM0_C0V配置不成功有關。寫FTM0_C0V是有條件的:從MOD 更改為CNTIN 之後更新才會有效。

HardFault_Handler

HardFault_Handler,是所有未定義中斷函式的入口地址。如果發現程式掉到HardFault_Handler裡了,可以檢測一下,是不是觸發了某些未定義的中斷。

debug故障

問題1、不進系統時鐘中斷

原因:沒有正確選擇硬體模擬,而是選擇了軟體模擬模擬。

問題2、不進模擬

原因:use flash loader未勾選,程式沒有下載到目標板裡去。

內外部基準時鐘切換

晶片上電預設使用內部基準時鐘,需要使用外部基準時鐘時,先要滿足OSC初始化完成,才能切換成功。OSC初始化完成檢測:

while ((OSC_CR & OSC_CR_OSCINIT_MASK) == 0); // wait until oscillator is ready

埠複用

1、當KBI喚醒與CCP埠複用時,會導致晶片不能被喚醒,也就是KBI喚醒功能失效,就算關CCP使能也無效。可以採用引腳對映切換規避改這個問題,相當於直接把CCP功能給切掉了。

2、設定埠輸出,沒訊號輸出。檢查發現,這個埠複用了AD功能。

14
最新評論
  • 路虎是印度還是英國的
  • 為解決續航焦慮,車企推出了哪些續航1000KM的新能源車?