航芯通用MCU技术常见问题 | F4专题

日常工作中,我们的销售或技术工程师经常会收到来自用户的问题,其中一些问题是比较常见的,所以为满足日常用户对航芯产品使用及服务的了解,航芯特此推出“通用MCU技术常见问题”专题,分为F0专题及F4专题,欢迎大家持续关注!

F4专题 - 工具篇

1. KEIL

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》文档。

4.2 是否支持 RTOS 操作系统?

支持 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、ADC

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、CAN

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。 

*本文的所有部分,其著作产权归上海航芯电子科技股份有限公司所有,未经授权许可,任何个人及组织不得复制、转载、仿制本文档的全部或部分组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

32单片机入门持续更新中

配套资料为野火霸道V2 初识 STM32 4.1 什么是 STM32 STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起 来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今…

如何在Vue3中使用H.265视频EasyPlayer.js流媒体播放器?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…

【开源鸿蒙】调试OpenHarmony轻量系统QEMU RISC-V版本

【开源鸿蒙】调试OpenHarmony轻量系统QEMU RISC-V版本 一、准备工作1.1 编译OpenHarmony源码1.2 确认OHOS_Image已生成1.3 确认OHOS_Image文件是否有调试信息1.4 检查config.gni文件是否有-g编译选项 二、GDB调试2.1 启动QEMU模拟器2.2 启动GDB调试器2.3 连接QEMU模拟器2.4 使用…

性能优化-02

uptime 依次显示当前时间、系统运行时间以及正在登录用户数,最后三个数字依次则是过去1分钟、5 分钟、15 分钟的平均负载(Load Average) 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数&#xf…

Vue3(四):Pinia

一、Pinia介绍 Pinia是一个专门为Vue.js设计的状态管理库,它提供了一种简单和直观的方式来管理应用程序的状态。在使用Pinia时,可以轻松地创建定义状态的存储,然后将其与Vue组件绑定,使它们能够使用该状态。和上一个博客提到的Vu…

【小程序】生成短信中可点击的链接

文章目录 前言一、如何生成链接二、仔细拜读小程序开发文档文档说明1文档说明2 总结 前言 由于线上运营需求,需要给用户发送炮轰短信,用户通过短信点击链接直接跳转进入小程序 一、如何生成链接 先是找了一些三方的,生成的倒是快速&#xf…

TVS参数、选型、对比

https://www.kdocs.cn/l/cpz6hHr7GRlh VRWM (Reverse working voltage) TVS 的最高工作电压,可连续施加不引起 TVS 劣化或损坏的最高工作峰值电压或直流峰值电压。 对于交流电压,用最高工作电压有效值表示,在VRWM 下&a…

科技助力上亿用户隐私安全保护,合合信息两款产品再获CCIA PIA星级标识

随着互联网技术的飞速发展,个人信息的收集、存储、使用和传输变得日益频繁,其泄露和滥用的风险也随之增加,个人信息保护已成为社会共同关注的热点议题。近期,“中国网络安全产业联盟(CCIA)数据安全工作委员…

【Windows】SecureCRT v9.2.3永久使用教程亲测可用

​ 软件介绍 SecureCRT 是一款常用的 SSH(安全外壳协议)和 Telnet 客户端软件,主要用于远程服务器管理和网络设备配置。它具有以下主要功能: 1.安全连接:SecureCRT 提供了强大的加密算法,保障用户与服务…

建立时间/保持时间为负是什么情况

目录 建立时间为负保持时间为负参考 在说明建立时间和保持时间为何为负的情况下,首先可以看看建立时间Tsu和保持时间Th的由来,可参考如下两篇文章: 建立时间和保持时间理解_为什么要满足建立时间和保持时间-CSDN博客 ic基础|时序篇&#xff…

GPT的使用

个人笔记(整理不易,有帮助点个赞) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客 网站sms-activate.or…

Linux知识点(3)

文章目录 11. 进程间通信11.1 管道11.1.0 |11.1.1 匿名管道11.1.2 命名管道11.1.3 用匿名管道形成进程池 11.2 system V共享内存11.2.1 system V函数11.2.2 system 命令 11.3 system V消息队列11.4 system V 信号量 12. 进程信号12.1 前台进程和后台进程12.1.1 jobs12.1.2 fg &…

哈尔滨等保测评之什么是linux及快捷方式,看完这篇你还有什么不懂得嘛?

Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它。但是学好它却是程序员必备修养之一。 什么是Linux Linux 系统内核与 Linux 发行套件的区别 Linux 系统内核指的是由 Linus Torva…

计算机网络(五)传输层

传输层 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最低层 传输层功能: 传输层提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别区别是&#xf…

SSH客户端工具输入目标地址端口远程失败故障原因和解决方案

问题表现:SSH客户端工具输入目标地址端口远程失败时,出现ssh client 报 algorithm negotiation failed的异常信息。 使用SSH Secure Shell Client连接Linux服务器的SSH的时候有时会出现错误提示信息:ssh algorithm negotiation failed。这是…

ts文件用什么播放器?带您了解TS文件播放器的选择

ts文件用什么播放器?在数字多媒体时代,各种视频文件格式层出不穷,其中TS文件作为一种常见的视频封装格式,广泛应用于高清视频的制作与传输。然而,对于许多用户来说,如何选择合适的播放器来播放TS文件却是一…

Windows电脑使用Everything+cpolar搭建在线资料库并实现无公网IP管理文件

文章目录 推荐前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…

算法——马尔可夫与隐马尔可夫模型

HMM(Hidden Markov Model)是一种统计模型,用来描述一个隐含未知量的马尔可夫过程(马尔可夫过程是一类随机过程,它的原始模型是马尔科夫链),它是结构最简单的动态贝叶斯网,是一种著名…

attention and tell论文【无标题】

这个公式使用LaTeX语法表示为: ( i t f t o t c t ) ( σ σ σ tanh ⁡ ) T D m n , n ( E y t − 1 h t − 1 x t ) \begin{pmatrix}i_t \\f_t \\o_t \\c_t\end{pmatrix} \begin{pmatrix}\sigma \\\sigma \\\sigma \\\tanh\end{pmatrix}T_{Dmn,n}\begin{pmatri…

内外网文件摆渡系统,如何贯通网络两侧被隔断的工作流?

随着业务范围不断扩大,产生的数据体量越来越多,企业会采取网络隔离,对核心数据进行保护。网络隔离主要目的是保护企业内部的敏感数据和系统不受外部网络攻击的风险,可以通过物理或逻辑方式实现,例如使用防火墙、网闸、…