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