關於S32K汽車通用MCU,NXP工程師總結的10個超實用Tips

“ 

S32K144是NXP推出的基於ARM Cortex-M4F內核的汽車級通用MCU系列S32K1xx的第一顆高性能單片機。本文首先簡要介紹S32K系列MCU的內核和片上資源信息,然後列出S32K軟件開發和硬件設計FAQ,供大家參考。

 

S32K系列MCU概覽

 

S32K1xx是S32K系列MCU的第一代產品,其中S32K11x系列的內核是ARM Cortext M0+,其是之前2014年8月份量產的KEA系列MCU的升級產品,相對於KEA,其CAN的IP從之前的MSCAN升級到FlexCAN,並且支持BOSCH最新的CAN-FD,大大提高了CAN總線的通信帶寬,另一個特點是增加了4個通道的eDMA,可以完成外設與內存之間的數據搬移,減輕CPU負擔,提高了MCU的系統處理能力,此外存儲器管理增加了MPU——存儲器保護單元,並且RAM和Flash可以支持到最大24KB和256KB。

 

S32K14x系列的內核是ARM Cortex-M4F,帶DSP指令集和單精度浮點數處理單元(FPU), 且最高頻率可運行到112MHz,其計算性能大大提高,能夠提供相對於150MHz的PowerPC e200z4內核的計算能力,其CAN最多支持3個FlexCAN,且全部支持CAN-FD(S32K148),RAM和Flash也最大支持到256KB (RAM) 和2MB (Flash),管腳封裝支持LQFP-64至最多LQFP-176,外設ADC具有兩個獨立的12-bit精度SAR型ADC模塊(每個模塊16個通道,總共32個通道),支持FlexIO以及硬件加密模塊CSEc,以及更加豐富的定時器timer模塊、S32K148還擴展了以太網(ENET)、QSPI(支持外擴NOR Flash,支持線性地址映射,本地代碼執行),ETM Trace(高級調試跟蹤功能),以及串行音頻接口(SAI)的支持,極大的豐富了外設接口和功能擴展性。

      

S32K1xx系列MCU支持功能安全ISO-26262 ASIL-B等級,NXP提供安全手冊(Safety Manual)和FMEDA以及安全支持幫助客戶實現未來汽車電子產品對功能安全的要求。

      

此外,S32K1xx系列MCU提供了免費的軟件開發集成環境——S32DS for ARM,以及集成Processor Expert的圖像化配置外設底層驅動(LLD)的軟件開發套件(SDK),讓用戶可以快速熟悉使用本系列MCU,並快速完成產品原型驗證,大大縮短了產品的開發週期,滿足汽車電子產品快速發展的市場需求。

      

1

S32K1xx系列MCU內核及外設資源

 

2

S32K11x與S32K14x系列MCU對比

 

 

3

S32K1xx與KEA MCU引腳兼容性

 

S32K1xx系列MCU與KEA系列之間的引腳兼容性如下表,相同的引腳封裝可以做到pin-to-pin的兼容,當後期需要增加功能,擴大存儲器時,可以實現無縫升級。此外S32K1xx系列與下一代S32K2xx系列也會做大引腳pin-to-pin兼容。

 

4

S32K1xx的part number命名規則

 

 

Tips

從part number的X位有對芯片工作最大頻率的限制,如果該字母爲M或者H的S32K14x part,意味着其不能運行112MHz的HSRUM模式。

 

 

a)關於運行模式和內核速度

 

S32K14x系列MCU有RUN、HSRU和VLPR等三種運行模式和STOP1/2與VLPS等三種低功耗模式,其相互轉化狀態機如下圖:

 

 

 

各種模式下可用的時鐘源、系統/內核時鐘、總線時鐘和Flash時鐘頻率限制如下:

 

 

注意:

  • HSRUN模式只有需要內核頻率大於80MHz時才使用,低於等於80MHz是推薦使用RUN運行模式。

  • S32K14x系列MCU的內核Cortex-M4F要跑到112MHz的內核頻率,必須將其配置爲高速運行模式(HSRUN),且環境溫度不能大於105°,該模式下不允許對Flash進行擦除和編程操作。

  • VLPR——Very Low Power RUN模式,限制系統/內核頻率以及總線頻率爲4MHz,而Flash時鐘爲1MHz,其目的是系統長期工作在低功耗模式下,降低(週期性)喚醒時的功耗,從而進一步降低系統功能;該模式下不允許對Flash進行擦除和編程操作。

     

 

b)S32K1xx系列MCU的ADC模塊使用

 

S32K1xx系列MCU的ADC模塊與之前我們使用的S12系列MCU的ADC模塊有所差異,如果單獨使用ADC模塊,則只能實現單通道軟件觸發採樣,且都是通過ADC的狀態和控制寄存器SC1A,配置ADCH選擇具體的單次採用通道實現的,其採用結果也從ADC數據結果寄存器RA讀取:

 

 

要想實現單次觸發多個通道採用則需要配合相應的PDB模塊通過硬件觸發的方式才能實現:

 

 

c)關於片內集成的RTC模塊

 

S32K1xx片內集成了帶補償功能的高精度(誤差在0.12 ppm ~3906 ppm)的RTC——實時時鐘模塊,區別於以往S08/S12(X)以及KEA的RTI模塊,其可以支持外部32.768KHz的有源晶振輸入或者內部IRC (eg.128KHz LPO) 分頻得到的1KHz LPO1K_CLK參考時鐘作爲參考時鐘;其中外部32.768KHz的有源晶振輸入能夠提供足夠的精度保證。

 

 

 

Tips

 

  • S32K1xx的RTC模塊僅支持外部有源32.768KHz晶振輸入,不能支持無源32.768KHz晶振輸入作爲參考時鐘。

  • 其在最低功耗模式VLPS下是不能正常工作的(處於OFF狀態),這也就意味着,在功耗低於1mA時Tips,S32K1xx的RTC時不能繼續提供實時時鐘的。

 

 

軟件開發工具支持及SDK使用

 

1

支持的軟件開發集成環境

 

  • NXP:S32DS for ARM v1.3/v2.0(http://www.nxp.com/s32ds

  • ARM Keil:推薦V 5.20以上版本,通過Software Packs的方式實現對S32K系列MCU的支持: Keil Microcontroller Development Kit (MDK)(http://www2.keil.com/mdk5

  • IAR System:推薦v 7.8以上版本(IAR Embedded Workbench for ARM)

 

Tips

 

  1. S32DS NXP針對其最新32位汽車MCU的軟件開發集成環境,是基於eclipse架構和GNU工具鏈(gcc編譯器和鏈接器以及gdp調試軟件)的免費工具,其他可以通過以上給出的官網鏈接下載,通過個人郵箱賬號登錄下載獲取安裝激活碼;關於S32DS的使用,請關注我的微信公衆號——“汽車電子expert成長之路”,閱讀S32DS使用tips系列文章。

     

  2. 對於Keil的MDK,請下載5.20以上的版本,通過安裝Software Packs實現對S32K系列MCU的正常,安裝S32K的pack後,能夠獲取S32K系列MCU的啓動文件、Flash算法文件、默認鏈接文件(分散加載文件)和SDK(RTM1.0版本)。

     

  3. IAR是S32K系列MCU的AutoSARS MCAL默認支持的編譯工具,所以如果用戶想使用S32K系列MCU的AutoSARS MCAL開發應用程序,建議安裝使用IAR Embedded Workbench for ARM。

 

 

2

支持的軟件下載和調試器

  

  • 調試器(debugger):

       PEmicro: U-Multilink/ U-Multilink[FX]

       Segger: J-Link V9.4及以上版本 + 軟件J-Link V6.00d以上

 

  • 編程器(programmer):

       PEmicro: Cyclone MAX/Cyclone universal / Cyclone universal [FX]

 

Tips

 

  • 推薦客戶使用低成本的J-Link調試器開發和調試S32K系列MCU,但一定切記,淘寶網購買J-Link時,買v9.4以上版本的J-Link,並安裝使用最新的J-Link上位機軟件(建議至少v6.00d以上版本)。如果使用J-Link v9及之前版本的J-Link(比如v7和v8),則無法識別S32K系列MCU,也不能在其上位機軟件中找到S32K的算法文件;其J-Link硬件也不能通過更新固件的方式升級到V9.4以上版本。

     

  • 推薦客戶使用專業的Flash編程量產工具Cyclone MAX/Cyclone universal / Cyclone universal [FX]作爲產線批量編程,以避免編程過程對S32K造成EOS損傷。

 

3

SDK介紹及使用

 

S32K系列MCU提供的SDK——Software Development Kit是基於ARM的CMSIS (Cortex-M Microcontroller Software Interface Standard) 標準開發的,並可以通過Processor Expert圖像化配置生成S32K系列MCU的內核外設底層驅動程序、啓動文件和鏈接文件,其中還集成了LIN協議棧和FreeRTOS實時操作系統,方便用戶快速上手,用戶只需少量的精力和學習就可以完成外設底層驅動開發。

 

 

 

SDK除了支持S32DS之外,還支持S32K的其他第三方軟件開發工具,比如Keil的MDK和IAR或者Greenhill的MULTI IDE。

      

(SDK的軟件雖然經過了相應的測試,並提供相應的測試報告和結果,但其具有免責協議,用戶使用到實際的產品中時,還是需要做產品整體軟件質量測試,才能保證產品的可靠性和穩定性)

      

Tips

 

 

需要在初始化ADC模塊之後,調用ADC摸採集外部信號之前調用SDK中提供的自動校準函數:

void ADC_DRV_AutoCalibration(const uint32_t instance)

 


  1. 不同的SDK版本之間可能存在差異,S32K144推薦使用SDK RTM 1.0版本,S32K142和S32K148等part只有SDK V0.8.4(S32DS for ARM v2.0 IDE安裝包中自帶的SDK)及以上版本纔可以支持,具體每個SDK版本之間的差異和相對於上一版本的bug 修復,請參考其安裝目錄下的ReleaseNotes.pdf

     

     

  2. SDK集成了幾乎所有外設底層驅動的demo工程用戶可以通過S32DS新建工程的菜單欄File-->Create S32DS Project from Example導出到用戶worksapce下參考學習。

     

     

  3. 爲了獲得datasheet規範的ADC總不可調整(校準)誤差——TUE = ±4LSB(Typical):

     

     

     

  4. S32K1xx的低功耗和工作運行模式切換通過調用SDK的Power_manager模塊的POWER_SYS_SetMode()完成。

     

 

 

 

 

硬件設計注意事項

 

1

電源和復位電路設計

 

S32K系列MCU的系統電源管腳,每一個電源pin都需要加一個0.1uF的解耦合(decouple)電容,並且在PCB Layout時儘量靠近MCU電源管腳放置,以保證其內部電源能夠穩定工作。

 

 

 

S32K1xx系列MCU的外部復位管腳爲低有效,其內部爲開漏和若上拉,所以在設計其外部電路時,建議加一個4.7/10KΩ的上拉電阻爲VDD且並聯一個0.1uF的濾波電容以濾除偶發性的外部干擾,增強系統的抗干擾能力。

 

Tips

 

  • S32K1xx系列MCU的RESET管腳可以通過配置Flash選項寄存器(FTFE-FOPT,位於地址0x40D的Flash字節)控制其復位後默認的功能是復位管腳還是其他功能(PTA5H或者TCLK1)。

     

  • 若RESET_PIN_CFG = 0,則下次POR復位之後,RESET管腳的復位功能將被關閉,只能通過整片擦除(mass erase)並設置MDM-AP寄存器產生系統復位從而恢復。

 

 

 

 

 

2

晶振和時鐘電路設計

 

S32K14x系列MCU支持4~40MHz的外部無源晶振或者50MHz以內的有源晶振作爲系統PLL的參考時鐘源:

 

 

其中,使用外部無源晶振時,典型的電路連接如下圖:

 

Tips

 

  1. 需要根據選擇的晶振,匹配相應的負載電容Cx和Cy(一般爲若干pF)。

     

  2. 爲了提高晶振電路的抗干擾能力,建議在時鐘信號周圍大面積鋪地(也稱作包地技術),在其附近不走高速數字信號以目標交叉干擾,並儘量靠近MCU時鐘信號管腳放置晶振電路,越近越好。

 

 

 

3

調試接口電路設計

 

S32K14系列MCU支持SWD和JTAG兩種調試協議,而S32K11x系列MCU只支持SWD協議,所以爲了兼容兩種調試接口,推薦使用10-pin如下接口:

 

 

 

相應的信號線外部上拉和下拉電阻(通常爲10KΩ)連接如下:

 

 

 

Tips

 

  • 雖然MCU管腳內部有相應的內部上拉和下拉電阻,爲了可靠還是強烈推薦用戶在設計調試接口電路時加上外部的上拉和下拉電阻。

 

  • 調試接口的信號走線儘量避免過長或過孔(因爲調試時時鐘信號最高可達25MHz),並進入靠近MCU放置,並遠離ECU外殼對外接口的裸露空間區域,以提高EMC特性。

 

4

其他硬件電路設計及EMC考慮

 

在設計S32K系列MCU的ADC外部電路時,需要串聯一個限流電阻RL,並設計一個RC濾波電路,其電容和電阻值的選取需要保證信號最大幅度變化時內部的設置的採樣時間內內部採樣電容能夠完全反映外部信號的變化:

 

其內部等效電路及參數如下:

 

Tips

 

更多S32K系列MCU的硬件設計指南請參考應用筆記:AN5426, Hardware Design Guidelines for S32K1xx Microcontrollers (REV 1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章