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

news2024/12/28 4:37:43

日常工作中,我们的销售或技术工程师经常会收到来自用户的问题,其中一些问题是比较常见的,所以为满足日常用户对航芯产品使用及服务的了解,航芯特此推出“通用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.coloradmin.cn/o/1605065.html

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

相关文章

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机 文章目录 Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机1.安装virtualbox2.下载Window.iso文件并载入3.问题解决3.1 Kernel driver not installed (rc-1908)3.2 VT-x is disabled in the BIOS for all CPU modes 4.安装Wi…

取模学习之Image2Lcd

使用软件Image2Lcd V0.4 1.:打开图片,图片格式可选如下图,本文使用的.jpg格式 转换后数组例子(数组头数据占前8字节): 2.:扫描模式 由第1个字节低四位配置 (1)水平扫描 …

Linux 1.文件编程(dup、dup2)

重定向 重定向是什么?dupdup2 重定向是什么? 进程在最开始运行的时候,首先打开了三个文件,分别是标准输入流、标准输出流、标准错误输出流。证明的时候我是把标准输出留给关闭了,然后紧接着创建的文件就会占用已关闭的…

音频调试(2)

前言: 大家好,今天继续分享记录一下最近的音频调试心得!同时这个过程中,也有朋友过来交流音频的问题,通过交流,也是学习到了新东西! 视频和音频复合推流: 在上一篇文章里面有提到fdk…

Python100个库分享第22个—xlwings的写入与读取 (办公篇)

目录 专栏导读库的介绍库的安装基础用法1:打开并读取 Excel 文件基础用法2:读取某一行 (注意点:expand(‘right’))基础用法3:读取某一列 (注意点:expand(‘down’))基础…

百度文心一言与谷歌Gemini的对比

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 本文从多角度将百度文心一言与谷歌Gemini进行对比。因为不同评测基准的侧重点和难度可能有所不同,所以本文涉及到的评测结果仅供参考。Gemini和文心一言都是非常…

Compose 基础组件

文章目录 Compose 基础组件Modifier 修饰符Scaffold 脚手架 Compose 基础组件 Modifier 修饰符 在传统视图体系中,使用XML文件描述组件的样式,而在Compose中使用Modifier,每个基础的Composable组件都有一个modifier参数,通过Mod…

ObjectMapper解析JSON数据

ObjectMapper的作用 1.背景: 当我们调用API的时候捕获的数据,往往需要结合文档所定义的类进行转换,也就是Java对象与JSON 字符串之间的转换 2.作用: ObjectMapper 是 Jackson 库中的一个关键类,它的作用是将 JSON 数据…

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解 目录 时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解(完整源码和数据) 1.利用鲸…

WT3000T8-TTS语音合成芯片及应用场景介绍

一、TTS语音合成芯片简述 TTS语音合成芯片是一种能够将文本信息转化为自然语音的专用芯片。它通过内置的语音合成算法和音频处理单元,实现了文本到语音的高效转换,为各种智能设备提供了丰富的语音交互功能。 二、TTS语音合成开发背景 TTS(文字…

Linux sudo suid提权练习

题目比较简单,可以利用sudo和多种suid程序提权,做个记录 进入靶场题目环境 获得节点信息 远程连接上 执行命令id,发现只是admin普通账户 sudo提权 发现存在 /usr/bin/vim, /usr/bin/bash, /usr/bin/more, /usr/bin/less, /usr/bin/nano, /…

C——文件操作

1.前言 为什么要使用文件呢? 文件是储存在电脑的磁盘中的,如果没有文件,我们写程序的数据就会存储在电脑的内存中,程序退出,操作系统就会收回内存,数据就丢失了等再次运行程序的时候,是看不到…

财务管理驾驶舱就该按这个模板做!

今天我们来看一张财务管理驾驶舱,体验一下BI数据可视化分析报表的灵活自助分析效果! 众所周知,驾驶舱报表的作用就是让企业运营管理者更清晰地了解、分析数据,发现数据中隐藏的问题或机会,从而针对性制定运营管理决策。…

创新与乐趣的融合 —— 探索我们独家录音变音芯片在学舌玩具领域的应用

一:概述 学舌玩具,又称作复读玩具或模仿玩具,是一类设计用来录制人声并重复播放的互动式玩具。这类玩具以其能够模仿人类语音的特性而受到小朋友和宠物主人的喜爱。这些玩具通常具有以下特点和功能: 1. 录音和播放功能&#xff…

GEE错误——Can‘t encode object: function()

错误 Image (Error) Cant encode object: function(){var d=Da.apply(0,arguments).map(function(f){return c.zp(f)}),e=a.hasOwnProperty("prototype")?c.zp(this):void 0;d=m5a(c,a,d,e);return c.qj(d)} Imagen Ms Reciente sin Pxeles 2720: Layer error: Ca…

如何搭建高效安全的eBay测评环境:步骤与要点解析

eBay测评环境的搭建是一个复杂且需要细致考虑的过程,主要涉及到技术配置和资源准备。以下是一些关键的步骤和要点: 一、资源准备: 1.养号系统及软件:选择稳定、可靠的养号系统,确保能够模拟真实用户行为,…

Java面试:MySQL面试题汇总

1.说一下 MySQL 执行一条查询语句的内部执行过程? 答:MySQL 执行一条查询的流程如下: 客户端先通过连接器连接到 MySQL 服务器;连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前…

什么是云渲染?云渲染平台怎么使用?云渲染怎么收费?

什么是云渲染? 云渲染是一种利用云计算技术提供的云端服务,用户可以将本地任务递交到远程服务器上,由远程计算集群协调和完成渲染,并将结果返回本地,最后用户可以在本地下载渲染结果。 而实时云渲染则是云渲染的一种…

Git 时光穿梭

文章目录 一、问题引入二、前置知识三、工作区暂存区和版本库四、版本回退1、版本回退命令2、四大常见场景3、删除文件 总结 一、问题引入 假设这样一个场景:有一天你的老板让你整理一份报告,结果你很轻松的整理完了第一版,但是你的老板并不…

大话设计模式之享元模式

享元模式是一种结构型设计模式,旨在有效地支持大量细粒度的对象共享,从而减少内存消耗和提高性能。 在享元模式中,对象分为两种:内部状态(Intrinsic State)和外部状态(Extrinsic State&#xf…