航芯“通用MCU技術(shù)常見問題”上線啦!
日常工作中,我們的銷售或技術(shù)工程師經(jīng)常會收到來自用戶的問題,其中一些問題是比較常見的,所以為滿足日常用戶對航芯產(chǎn)品使用及服務(wù)的了解,航芯特此推出“通用MCU技術(shù)常見問題”專題,分為F0專題及F4專題,歡迎大家持續(xù)關(guān)注!
F0專題 - 工具篇
1
1.1 Keil-Debug 工具
ACM32F0X0 系列支持的在線仿真器包括:J-Link、U-Link2、ST-Link、CMSIS-DAP,使用 J-Link 在線調(diào)試時,Keil 推薦在 MDK5.0 以上。
1.2 Keil-Pack 支持包
ACM32F0X0 系列提供 PACK 支持包,詳細(xì)信息如下表:
1.3 Keil 工程編譯失敗或 F12 無法跳轉(zhuǎn)
請確認(rèn)工程文件目錄沒有中文名稱。
2
IAR
2.1 IAR-Debug 工具
ACM32F0X0 系列支持的在線仿真器包括:J-Link、ST-Link,使用 J-Link 在線調(diào)試時,IAR 推薦在 IAR8.50(含)以上。
2.2 IAR-Pack 支持包
ACM32F0X0 系列提供 PACK 支持包,詳細(xì)信息如下表:
3
開發(fā)板仿真調(diào)試
ACM32F0X0 系列開發(fā)板自帶 CMSIS-DAP 在線仿真器,用戶使用時可直接使用 USB 連接線將開發(fā)板 LinkUSB 端口與 PC 端的 USB 接口直接連接,WIN7 需要安裝 SDK 中的USB 驅(qū)動(AisinoChipCDC.inf),WIN7 以上系統(tǒng)免驅(qū)。
4
開發(fā)板串口調(diào)試
ACM32F0X0 系列開發(fā)板自帶串口調(diào)試芯片,與 CMSIS-DAP 為同一個 USB 接口,連接 PC 端后需要安裝 USB 轉(zhuǎn)串口驅(qū)動(AisinoChipCDC.inf),此時設(shè)備管理器顯示設(shè)備名稱:AisinoChip Virtual Com Port,該虛擬串口主要有兩個功能:
1. 作為串口下載 MCU 固件使用。
2. 作為用戶 APP 應(yīng)用程序串口調(diào)試輸出。
注意:ACM32F0X0 芯片使用 PA9/PA10 作為串口的輸入/輸出管腳,因此在使用MCU的 PA9/PA10 與第三方串口助手連接調(diào)試時,需要將其與串口調(diào)試芯片斷開。
F0專題 - 應(yīng)用篇
1
硬件設(shè)計
1.1 是否與 SXX32FXXX 硬件兼容?
ACM32F0X0 系列芯片硬件管腳可以與 SXX32FXXX 管腳做到兼容,原 SXX32FXXX的部分電源管腳被 ACM32F0X0 復(fù)用作為外設(shè)管腳,詳細(xì)的硬件管腳配置及復(fù)用功能可參考《ACM32FXXX 對比 SXX32FXXX 差異說明.pdf》,具體以文檔為準(zhǔn)。
1.2 硬件設(shè)計注意事項
1.2.1 電源電路
ACM32F0X0 系列芯片 VDD/VDDA 電壓輸入范圍:1.7V~3.6V,VDD 與 VDDA 之間建議用磁珠隔離,GND 與 AGND 之間建議用 0Ω 電阻隔離。
1.2.2 外部晶振電路
ACM32F0X0 系列芯片外部高速晶振輸入范圍:4~48MHz,典型值推薦使用 8MHz 或者12MHz,無需外接 RF反饋電阻。
1.3 是否支持 FSMC/SDIO/以太網(wǎng)/ISO7816 接口?
暫不支持。
2
SDK 接口驅(qū)動庫
2.1 驅(qū)動庫版本
2.1.1 Keil-MDK 接口驅(qū)動庫版本
ACM32F0X0 系列芯片外設(shè)接口驅(qū)動庫提供 HAL 庫(Hardware Abstraction Layer),除部分型號芯片外,暫不提供 SPL 庫(Standard Peripherals Library),LL 庫(Low-Layer)暫不支持,詳細(xì)信息可咨詢銷售或 FAE。
2.1.2 能否提供驅(qū)動庫移植說明?
可以,請參考《ACM32 固件庫_使用說明.pdf》文檔。
2.1.3 寫入啟動序列后如何回到 Boot 模式?
軟件程序中需要預(yù)留 HAL_EFlash_Return_To_Boot()接口函數(shù)。
2.1.4 Flash 程序如何實現(xiàn)回到 Boot 模式?
軟件程序在執(zhí)行完 HAL_EFlash_Return_To_Boot()后,如需回到 Boot 模式,可以采用重新上下電、外部 RSTN 管腳復(fù)位或 Flash 程序設(shè)置 EFC_RST 寄存器進行復(fù)位,其中 EFC_RST復(fù)位前需要將系統(tǒng)時鐘降低至 64MHz 以下。
2.2 系統(tǒng)時鐘
2.2.1 系統(tǒng)時鐘如何切換至外部時鐘源?
ACM32F0X0 系列芯片上電默認(rèn)使用內(nèi)部時鐘,如需使用外部晶振作為時鐘源,需要將軟件程序中的宏定義 PLL_SOURCE_FROM 修改成外部時鐘即可。
2.2.2 內(nèi)部 RC 時鐘精度是多少?
ACM32F0X0 系列芯片內(nèi)部 RC64M/RC32K 精度大概率在±1%(含溫漂)左右。
2.3 中斷優(yōu)先級配置
2.3.1 M0 內(nèi)核中斷優(yōu)先級配置
根據(jù) M0 內(nèi)核手冊可知 Interrupt Priority Registers 寄存器的bit[7:6]用于設(shè)置中斷優(yōu)先級,優(yōu)先級大小為 0>1>2>3,高優(yōu)先級中斷可以打斷低優(yōu)先級中斷,實現(xiàn)中斷嵌套。
M0-NVIC 相關(guān)函數(shù)如下表:
2.4 中斷向量表地址偏移
2.4.1 M0-IAP 升級中斷向量表地址偏移
根據(jù) M0 內(nèi)核手冊可知該架構(gòu)不提供中斷向量偏移寄存器 REG_NVIC_VECTOR,因此在做 IAP 升級功能時,如需要實現(xiàn)中斷向量表地址偏移,可借助系統(tǒng)寄存器中的中斷向量表重映射寄存器(VECTOROFFSET)實現(xiàn),相關(guān)參考代碼如下:
/* Vector Table Relocation in Internal FLASH */
SCU->VECTOROFFSET = EFLASH_BASE | VECT_TAB_OFFSET | SCU_VECTOROFFSET_VOFFSETEN;
2.5 低功耗
2.5.1 STOP 模式下功耗偏高
根據(jù)應(yīng)用電路情況,可將未使用的管腳配置成模擬模式,已使用的管腳根據(jù)外部電路,配置成數(shù)字模式,選擇合適的上下拉或輸出合適的高低電平。
3
固件下載
3.1 是否支持 J-Flash 下載固件?
支持,請參考《航芯通用 MCU 使用 JFlash 燒錄程序的方法說明.pdf》文檔。
3.2 是否支持離線批量燒錄?
支持,離線燒錄器詳細(xì)信息可咨詢銷售或FAE。
3.3 原廠固件下載工具 UART 波特率自適應(yīng)失敗
請使用最新版本的下載工具(Aisinochip_MCU_Download_Tool_v1.4.0.3.exe(含)以上)。
4
補充功能
4.1 是否支持 Flash 讀保護?
支持,請參考《航芯 ACM32F 系列芯片 Flash 讀保護功能說明.pdf》文檔。
4.2 是否支持 RTOS 操作系統(tǒng)?
支持 uCOS-II、FreeRTOS 和 RT-Thread 操作系統(tǒng),詳細(xì)信息如下表:
4.3 Dhrystone 測試性能
M0 內(nèi)核:Keil 優(yōu)化等級-O3, Dhrystone 2.1 測試 0.70 MIPS/MHz。
5
GPIO
5.1 輸入是否支持 5V tolerant?
ACM32F0X0 系列不支持,詳細(xì)信息可參考對應(yīng)型號的 DataSheet 文檔。
5.2 GPIO 管腳上電默認(rèn)狀態(tài)?
ACM32F0X0 系列芯片上電,除部分特殊的功能管腳外(見下表),其余管腳默認(rèn)狀態(tài)為模擬模式(數(shù)字功能失效,上下拉電阻失效)。詳細(xì)信息請參考《航芯 ACM32FXXX 系列芯片 GPIO 應(yīng)用手冊.pdf》文檔。
5.3 PC13/14/15 作為通用管腳注意事項
除正常配置 GPIO 管腳功能外,還需要調(diào)用 RTC 相關(guān)寄存器,相關(guān)參考代碼如下:
/* RTC access enable */
System_Enable_Disable_RTC_Domain_Access(FUNC_ENABLE);
__HAL_RTC_PC13_SEL(0); // GPIO function
__HAL_RTC_PC13_PULL_UP_ENABLE();
__HAL_RTC_PC13_DIGIT();
5.4 GPIO 最高翻轉(zhuǎn)速率?
GPIO 翻轉(zhuǎn)速率最高 50Mbps。
5.5 FT 和 TC 管腳的區(qū)別
FT:5V 耐壓的管腳 IO,TC:標(biāo)準(zhǔn) 1.7V~3.3V 的管腳 IO。FT 管腳相對于 TC 管腳可以防止外部 IO 電流倒灌。
6
TIMER
6.1 PWM-duty=0 輸出異常
建議通過配置成 GPIO 功能軟件繞過,或通過 MOE/OSSI/OSSR/CCxE/CCxNE 組合位配置 PWM 模式繞過。
6.2 CCRx 輸出比較波形周期不準(zhǔn)
建議嘗試打開 CCRx 寄存器預(yù)裝載功能。如使用 CCRx 功能實現(xiàn)計數(shù)延時功能,則需要關(guān)閉 CCRx 預(yù)裝載功能。
6.3 TIMx 剎車源信號極性如何配置?
對于 TIMx_BKIN 外部管腳和 COM1&2_OUT 源信號,可通過 TIMx_BDTR 寄存器的BKP 位設(shè)置;對于 CPU_LOCKUP、SRAM_PARITY 和 LVD_LOCK 內(nèi)部信號,剎車源極性不需要設(shè)置。
7
7.1 ADC_VBAT(1/4 分壓)需要外部分壓嗎?
不需要,內(nèi)部已配置 1/4 電阻分壓,外部不需要單獨的分壓電路,如下圖所示,內(nèi)部分壓電阻 R1+R2 總阻值為 1.2KΩ 左右,VBAT 為芯片 ADC 的輸入管腳。詳細(xì)信息請參考《航芯 ACM32FXXX 系列芯片 ADC 應(yīng)用手冊.pdf》文檔。
7.2 ADC_Buffer 通道與普通通道是否有區(qū)別?
有區(qū)別,ADC 的 Buffer 是指緩沖放大器,相對于普通的 ADC 通道,帶 Buffer 的 ADC通道輸入范圍小一點,輸入阻抗大一點,詳細(xì)信息可參考對應(yīng)型號的 DataSheet 文檔。
7.3 ADC 如何使用內(nèi)部參考電壓?
部分封裝芯片 VREFP 管腳內(nèi)部與 VDDA 連接在一起,因此無法使用內(nèi)部參考電壓。對于單獨封裝出 VREFP 管腳的封裝芯片可以通過懸空 VREFP 管腳配置使用內(nèi)部參考電壓。
7.4 ADC 正常采樣結(jié)果計算不準(zhǔn)
可通過調(diào)用 ADC_GetVrefP 函數(shù)校準(zhǔn)參考電壓(出廠前使用 3.0V 對 BGR 校驗)。
7.5 ADC 外部分壓后采樣值偏低,如何處理?
ADC 采樣時間不足的情況下會引入 RAIN 電阻,導(dǎo)致外部管腳分壓偏低,可以通過增大 ADC 采樣時間恢復(fù)正常。
8
RTC
8.1 是否支持 RTC 外部獨立供電?
ACM32F0X0 沒有單獨 vBat 接口給內(nèi)部 RTC 模塊供電(不支持外部電池給 RTC 供電,主區(qū)供電可關(guān)閉-StandBy 模式),下圖為芯片內(nèi)部電源示意圖,此時 IWDT 和 RTC 仍能繼續(xù)工作。如需外部獨立給 RTC 供電方案,可參考《VBAT&VCC-WAKE_V0.2.pdf》文檔。
9
UART
9.1 是否支持 9bit 數(shù)據(jù)位傳輸?
硬件本身不支持 9bit 數(shù)據(jù)位,根據(jù)應(yīng)用需要,可借助校驗位/STOP 位替代增加數(shù)據(jù)位數(shù)。
9.2 FIFO 使能 1 字節(jié)發(fā)送中斷無法產(chǎn)生中斷
串口發(fā)送使能+串口使能+FIFO 使能的情況下,F(xiàn)IFO 深度配置 1/16 字節(jié)時,發(fā)送 1 字節(jié)會直接將數(shù)據(jù)填進移位寄存器,而不經(jīng)由 FIFO,進而不產(chǎn)生中斷;如初始化不開啟串口發(fā)送使能,在數(shù)據(jù)填充完畢后再開啟,則發(fā)送數(shù)據(jù)會經(jīng)過 FIFO 再到移位寄存器,此時能正常產(chǎn)生中斷。
10
OPAMP
10.1 OPAMP 失調(diào)電壓如何修調(diào)?
上電后可使用芯片 NVR 內(nèi)部保存的修調(diào)值,或上電循環(huán)自修正。
11
11.1 接收/發(fā)送時是否支持時間戳?
不支持。
11.2 是否支持 BUS_OFF 硬件自恢復(fù)?
不支持 BUS_OFF 硬件自恢復(fù)(ABOM 功能),可通過在 BUS_OFF 中斷中讓 CAN 總線進入恢復(fù)模式,間接實現(xiàn) BUS_OFF 硬件自恢復(fù)。
11.3 是否支持禁止自喚醒?
不支持,ACM32F0X0 在檢測到 CAN_RX 上低電平后會強制喚醒。
11.4 硬件重發(fā)能否關(guān)閉?
無法關(guān)閉,ACM32F0X0 固定使能硬件重發(fā)功能。
11.5 接收 FIFO 溢出時數(shù)據(jù)如何處理?
接收 FIFO 滿時,ACM32F0X0 固定會丟棄新數(shù)據(jù),保留老數(shù)據(jù)。
11.6 發(fā)送 FIFO 數(shù)據(jù)幀發(fā)送順序?
ACM32F0X0 的 CAN 模塊只有 13 字節(jié)的發(fā)送 FIFO,因此發(fā)送的數(shù)據(jù)幀只能依次發(fā)送,沒有額外的數(shù)據(jù)幀緩存空間。
11.7 接收數(shù)據(jù)正常,發(fā)送數(shù)據(jù)失敗
此類問題通過查看錯誤代碼獲取寄存器(CAN_ECC)可以大致了解出錯原因,若問題主要集中在 CRC 分隔符/ACK/ACK 分隔符錯誤碼,推薦 CAN 通訊時切換至外部晶振模式。
12
USB
12.1 是否支持免晶振模式?
支持,系統(tǒng)時鐘配置使用內(nèi)部 RC 時鐘。
如系統(tǒng)時鐘配置外部晶振模式,建議將 USBPHY 時鐘通過 OSC_MODE 配置為強制選擇內(nèi)部 RC 模式。
13
SPI
13.1 SPI 最高速率?
SPI主機模式:ACM32F0X0受GPIO速率影響,最高50Mbps;SPI從機模式:ACM32F0X0最高速率 25Mbps。
14
EXTI
14.1 PB6 無法實現(xiàn) EXTI 中斷
ACM32F0X0 系列:將 PB6 管腳拉低無法觸發(fā) EXTI 外部中斷,而將 PB7 管腳拉低時會同時觸發(fā) EXTI_Line_6 和 EXTI_Line_7 兩種類型的外部中斷。芯片硬件問題,EXTI_Line_6和 EXTI_Line_7 內(nèi)部兩個 EXTI 通路默認(rèn)都選擇為 PB7 通道。
-
mcu
+關(guān)注
關(guān)注
146文章
16922瀏覽量
349993
發(fā)布評論請先 登錄
相關(guān)推薦
評論