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