2595|4

87

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

雅特力官方FAQ大集合(共140个),听说可以学到很多 [复制链接]

 

更新日期:2023年6月15日

有工程师看了雅特力的官方FAQ,感觉可以学到很多内容,特此和官方申请,搬运一下。目前官方共放出140个FAQ,容我慢慢搬运。

 

FAQ0001:当用户安装多个不同版本 IAR 时,IAR_AT32MCU_AddOn 无法自动安装 Pack 文件
Answer:因用户未使用管理员身份运行程序,IAR_AT32MCU_AddOn 自动搜索时,只能枚举出一个安装路
径,这会导致不是用户需要安装 pack 文件的 IAR 版本路径
解决步骤:
1. 使用管理员身份运行程序。
2. 需手动选择需要安装 pack 文件的 IAR 路径,请特别注意手动选择时,不要选择错误的路径,不然安装完
成后,IAR 仍然无法识别 AT32 型号。(选择到目录下有 arm 和 common 两个文件)
类型:开发工具
适用型号:AT32 全系列

FAQ0001_IAR的Pack文件无法自动安装_V2.0.0.pdf (285.48 KB, 下载次数: 1)

 

FAQ0002:使用 ISP 串口下载时,偶尔会卡死,卡死之后电脑无法释放串口,需重启 PC 后才能正常使用 ISP
Answer:根据问题复现时的现象以及代码调试,确定为卡死在 windows 操作系统的 USB 转串口设备的驱动中,也就是 USB 转串口设备出了问题。卡死时使用 USB 转串口设备,USB 转串口芯片为 PX-2303。PX-2303芯片不稳定,且盗版较多,卡死现象很多,如果遇到拔出设备仍然不能释放串口,只能重启 PC。FT232、CH340 稳定性较好,其中 FT232 稳定性最好,价格更高。并且这也跟 USB 转串口设备电气特性有关,例如:廉价产品的电源无滤波电容、信号线无 EMC 滤波措施等,同样会引起卡死问题
解决方法:建议使用 FT232、CH340 芯片的 USB 转串口设备,或者使用 PX-2303 芯片的电气特性较好的正规产品。
类型:开发工具
适用型号:AT32 全系列

FAQ0002_ISP串口下载时卡死问题_V2.0.0.pdf (290.74 KB, 下载次数: 2)

 

FAQ0003:如何使用 Keil IDE 环境中生成汇编文档
Answer:在 user 配置栏增加如下内容:fromelf.exe --text -a -c --output=@L_asm.txt "!L"

类型:开发工具
适用型号:AT32 全系列

FAQ0003_如何使用Keil生成汇编文档_V2.0.1.pdf (185.73 KB, 下载次数: 1)

 

FAQ0004:如何在 Keil 中将函数或变量编译到指定地址
Answer:实现方法如下
方式一: attribute 属性
1. 将函数加载到指定位置
示例将 main.c 中的 delay 函数指定到 0x08020000 地址,可以在 c 文件中函数的定义处指定 delay 函数。
void delay(void) __attribute__ ((section(".ARM.__at_0x08020000")));
2. 将数组加载到指定位置
int Temp[] __attribute__ ((section(".ARM.__at_0x08020000"))) = {0x1, 0x2};
3. 将变量加载到指定位置以 AT32F403AVGT7 为例:
示例可以直接将 c 代码修改如下:
const int Temp __attribute__ ((section(".ARM.__at_0x08020000"))) = 10; // RO
int Temp __attribute__ ((section(".ARM.__at_0x20000000"))) = 10; // RW
方式二: 修改.sct 文件
将目标文件加载到指定位置,在 Keil 中使用修改.sct 文件进行分散加载需要对工程配置进行如下修改,修改.sct
方法的详细使用请参考.sct 的语法规则,如下图 Keil 下 sct 文件编辑


其中 Use Memory Layout from Target Dialog 选项是默认勾选,应取消选择。点击 Scatter File 栏后的 Edit对.sct 文件进行编辑。
示例将 core_main.c 的目标文件进行分散加载:

红色区域表示将以上.c 文件加载到 0x08020000 地址,大小为 0x00020000。在这里,其目的通俗来说就是将以上.c 文件编译生成的目标文件链接到 MCU 芯片内部 flash 的 128KB 区域之后,区域大小为 128KB。
类型:MCU 应用
适用型号:AT32 全系列

FAQ0004_如何在Keil中将函数或变量编译到指定地址_V2.0.0.pdf (548.52 KB, 下载次数: 1)

 

FAQ0005:如何使用 Keil 生成 Bin 文件
Answer:在 user 配置栏增加如下内容:fromelf.exe --bin --output .\Listings\@L.bin !L

类型:开发工具
适用型号:AT32 全系列

FAQ0005_如何使用Keil生成Bin文件_V2.0.0.pdf (348.98 KB, 下载次数: 2)

 

FAQ0006:Keil_V5 在 Target->Device 和 Target->C/C++ 栏的芯片型号配置不对应的情况下编译可能会出现编译报错,编译错误有如下相似的信息:

Answer:
在 PACK_V1.3.0 及以后的版本上加入了 KEIL RTE 的功能,工程配置在选定 Device 后,Pack 会自动定义一个芯片型号宏(如:AT32F403ZG AT32F403Zx_XL,AT32F403AVGT7 AT32F403AVGT7)。
示例:
按 AT32F403ZG 和 AT32F403AVGT7 为例,在工程配置的时候就应该有严格的对应关系。在 Target->Device和 Target->C/C++栏的配置关系需如下:
AT32F403ZG

AT32F403AVGT7

类型:开发工具
适用型号:AT32 全系列
FAQ0006_Keil_V5选择不同的Device编译报错_V2.0.0.pdf (567.93 KB, 下载次数: 1)

 

FAQ0007:在使用 ISP 的 DFU 接口烧录时,每次上下一次新的 MCU 烧录时,USB 会重新安装一次,导致识别 MCU 时间过长
Answer:
Windows 设置需首先到网络上搜索最新版本驱动,时间过长主要是花费在网上搜索最新驱动版本的过程。按以下步骤设置进行关闭来解决
1. 点击“计算机”-“属性”


2. 点击“高级系统设置”

3. 点击“硬件”—“设备安装设置”

4. 选择红色方框中两项任意一项即可,并点击“保存更改”使设定生效

类型:开发工具
适用型号:AT32 全系列

FAQ0007_使用ISP DFU时Win7系统自动安装USB驱动时间过长_V2.0.0.pdf (566.19 KB, 下载次数: 1)

 

FAQ0008:Keil 或者 IAR 项目内 Jlink 无法找到 IC 问题(编译环境问题)
Answer:
工程师编译好的 Keil 下的工程项目给到其他工程人员后发现程序可以编译通过,使用 ICP 软件可以正常找到IC,但 Jlink 找不到 IC,出现该问题的原因通常是因为 Keil 或者 IAR 编译器原始调用的是其安装目录下内置的 Segger 驱动,而其内置的 Segger 驱动型号列表目前没有支持 AT32 MCU
解决方法:针对 Keil 或者 IAR 的该问题,给出两种常见的解决方法
方法 1:
1) Keil 工程路径内删除 JLinkLog.txt 和 JLinkSettings.ini 两个文件

IAR 工程路径内删除 settings 文件夹下的 xxx.jlink 文件

2) 当 Segger J-ink 弹框时选择使用的 MCU 对应的内核型号,例如“Unspecified Cortex–M4”

方法 2:
1) 安装 Segger 软件包(需 v6.20c 及以上版本),安装时弹框勾选如下内容(默认是勾选,不更改即可)

2) 安装 Segger_AT32MCU_AddOn 工具包

3) 运行 Keil 弹框时可以选择对应型号的 MCU,IAR 运行不会再弹框

类型:开发工具
适用型号:AT32 全系列

FAQ0008_Keil_IAR项目内Jlink无法找到IC问题_V2.0.1.pdf (601.16 KB, 下载次数: 3)

 

FAQ0009:较多电路板在设计时,为了节省空间,会采用 SWD 方式下载程序,并在硬件设计上只将 SWCLK、SWDIO 及 GND 与 J-Link 对接,此时就有可能会出现无法正常下载代码的现象此问题只针对以下 J-Link 驱动版本:

J-Link 版本为 HW:V8.00 dll:V6.20c(或更高版本)
J-Link 与芯片连接方式为仅 SWCLK、SWDIO 及 GND 对接
Answer:
J-Link 下载代码时,其会根据 J-Link Pin1 上的电压值来确定数据及时钟线上输出的电平信号的高低,老版本(本案中 V8)的 J-Link,其内部 Pin1 和 Pin2 未被短接;J-Link 与芯片连接方式为 SWCLK、SWDIO 及 GND 对接,未将芯片的参考电压接到 J-Link 的 Pin1 脚,故此时 J-Link 的 Pin1 脚上无电压输入,因此会出现因 J-Link 没有检测到芯片的参考电压而造成无法正常下载代码的问题

J-Link 用作 SWD 接口时,管脚定义如下

解决步骤:
1. 如果硬件电路板支持改动,可将芯片的 VDD(常规即 3.3V)接到 J-Link 的 Pin1 上
2. 如果硬件电路板不支持改动,可以将 J-Link 的 Pin1 和 Pin2 短接(前提是 Pin2 内部跳线有与 3.3V 短接)
注意:
1. 此无法下载代码的问题在其它 MCU 也会出现,均会提示无法找到芯片内核
2. 新版本(例如 V8.3)J-Link 内部已将 Pin1 和 Pin2 短接,因此不会出现前述问题
3. 建议 J-Link 同目标板连接请接入 RST 信号,即连接:VDD、VSS、GND、SWDIO、SWCLK、RST 信号
类型:开发工具
适用型号:AT32 全系列

FAQ0009_J-Link下载代码异常说明_V2.0.0.pdf (505.24 KB, 下载次数: 1)

 

FAQ0010:使用 IAR 编译器,在编译时提示找不到,某个.h 打不开,某个.h 文件未定义
Answer:
解决方法:
1. project 的 options 里 Additional include directories 没有包含相应.h 文件路径或者包含的路径错误;Defined symbols 没有添加宏定义(宏定义也可以在程序中添加)

2. project 的 options 里 Additional include directories 和 Defined symbols 都添加正确,但在某个.c 文件里还有提示找不到某个.h,则查看.c 的 options,确认路径处和宏定义处是否和 project 的 options 里一致,如果不一致则修改为一致

类型:开发工具
适用型号:AT32 全系列

FAQ0010_IAR编译找不到.h文件_V2.0.0.pdf (500.8 KB, 下载次数: 0)

 

FAQ0011:当使用有数据通信功能的 USB 接口给 MCU 供电时,ISP 软件无法识别到串口
Answer:AT32F4xx 的 ISP 具有 USB 接口升级程序的功能,并且优先选择 USB 接口。所以如果给 MCU 供电的 USB口带有数据通信功能(比如 PC 端)此时 ISP 软件将无法识别到 USART 接口,需要换成其他方式供电才可以正常识别。
类型:开发工具
适用型号:AT32 全系列

FAQ0011_USB供电时无法通过USART进行ISP升级_V2.0.1.pdf (451.26 KB, 下载次数: 1)

 

FAQ0012:如何用 ICP 或 ISP 对外部 FLASH 加密

Answer:
对外部 Flash 加密操作需要先设置加密范围和外部存储器加密 Key 后再烧录用户程序,然后开启读保护。加密范围指的是从 0x08400000 开始需要加密的空间大小,外部存储器加密 Key 共有 8 个 byte,如果全部是0xFF 或者 0x00 则不加密,否则在烧录用户程序时进行加密。解除读保护会将外部存储器加密 Key 设置为全0xFF。
在用户程序中需要设置 FLASH_DA 寄存器来设置加密范围,该寄存器的值需要大于等于编程时写入的外部存储器加密范围。需要设置 FLASH->SELECT 选择外部存储器型号选择,支持的型号如下。
闪存选择寄存器(FLASH_SELECT)设定 0x1:可支援 GD25Q127C、GD25Q64C、GD25Q32C、GD25Q16C、GD25Q80C 闪存、W25Q128V 闪存等
闪存选择寄存器(FLASH_SELECT)设定 0x2:可支援 EN25F20A、EN25QH128A 闪存以下为 ICP/ISP 工具加密外部存储器的操作说明:
1. ICP 工具:勾选外部存储器->选择外部存储器类型->设置外部存储器加密范围->设备操作->用户系统数据->修改外部存储器加密 Key->应用到设备。然后按照烧录流程烧录程序,开启读保护。

2. ISP 工具:编辑用户系统数据->下一步->修改外部存储器加密 Key->应用到设备。然后按照烧录流程烧录程序,开启读保护。

3. ISP Multi-Port 工具:编辑->修改外部存储器加密 Key->保存到文件->下载选择字节文件->开始。然后按照烧录流程烧录程序,开启读保护。

类型:开发工具
适用型号:AT32 全系列

FAQ0012_如何用ICP或ISP对外部FLASH加密_V2.0.0.pdf (627.97 KB, 下载次数: 0)

 

FAQ0013:硬件和软件同时去访问 USB RAM buffer 造成数据乱掉或丢失
造成乱码流程:
1. 软件设置 USB Valid
2. 关总中断,USB 收数据到 RAM Buffer,此时 USB 为 NAK
3. USB 中断不能及时响应,此时软件再次将 USB 置 Valid,开总中断
4. 此时 USB 中断产生,软件读取接收 RAM Buffer 数据,但此时 USB 的状态是 Valid,USB 同也会收数据到 RAM Buffer。这样就会导致数据乱掉或者丢数据
Answer:
软件将 USB 收到的数据处理之后再置 USB Valid,以避免硬件和软件同时访问 USB 接收 Buffer。
类型:MCU 应用
适用型号:适用所有带 USB 的 AT32 型号
主功能:USB

FAQ0013_USB 读 RAM buffer 使用规范建议_V2.0.0.pdf (448.55 KB, 下载次数: 0)

 

FAQ0014:

 

 

FAQ0015:如果客户在代码中翻转 RXDTS 位,软件翻转之后导致主机发送的 DATA PID 与
USB 设备端不匹配。比如:主机发送一个 DATA1,但 USB 设备端此时 RXDTS=0(表示要希望
收到 DATA0)。在这种情况下,会产生总线错误,BE 标志被置起
Answer:
代码中及时清除 BE 标志。

/* clear suspend flag */
usb_flag_clear(usbx, USB_BE_FLAG);

类型:MCU 应用
适用型号:适用所有带 USB 的 MCU 型号
主功能:USB

FAQ0015_代码中翻转RXDTS导致USB总线错误_V2.0.0.pdf (456.98 KB, 下载次数: 0)

 

FAQ0016:如何将以下默认非 GPIO 的 Pin 设置为 GPIO

将以上 IO 设置为 GPIO,需要开启对应 GPIO 时钟、开启复用时钟、将 IO 配置为输入/输出/复用功能、设置
重映射、关闭入侵检测、关闭外部时钟等相应的操作。
1. 将 HEXT_IN、HEXT_OUT 设置为 GPIO
此处以 AT32F403A 为例

gpio_init_type gpio_init_struct;
/* enable the clock of gpiod, iomux */
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, FALSE);
crm_hext_bypass(FALSE);
/* set default parameter */
gpio_default_para_init(&gpio_init_struct);
/* configure pd0 (hext_in) and pd1 (hext_out) as output push-pull */
gpio_init_struct.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOD, &gpio_init_struct);
gpio_pin_remap_config(PD01_GMUX, TRUE);

注:如果要使用 PD0、PD1,则时钟初始化时不用使能 HSE、PLL 时钟源不能选择为 HEXT。
2. 将 SWJ 设置为 GPIO
此处以 AT32F403A 为例

gpio_init_type gpio_init_struct;
/* enable the clock of gpioa, gpiob, iomux */
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
/* set default parameter */
gpio_default_para_init(&gpio_init_struct);
/* configure pa13 (jtms/swdat), pa14 (jtck/swclk) and pa15 (jtdi) as output push -pull */
gpio_init_struct.gpio_pins = GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOA, &gpio_init_struct);
/* configure pb3 (jtdo) and pb4 (jtrst) as output push-pull */
gpio_init_struct.gpio_pins = GPIO_PINS_3 | GPIO_PINS_4;
gpio_init(GPIOB, &gpio_init_struct);
/* disable the serial wire jtag debug port swj-dp */
gpio_pin_remap_config(SWJTAG_MUX_100, TRUE);

关于 SWJ 重映射说明:

/* full swj enabled (jtag-dp + sw-dp) but without jtrst */
#define SWJTAG_MUX_001 SWJTAG_GMUX_001
/* jtag-dp disabled and sw-dp enabled */
#define SWJTAG_MUX_010 SWJTAG_GMUX_010
/* full swj disabled (jtag-dp + sw-dp) */
#define SWJTAG_MUX_100 SWJTAG_GMUX_100

3. 将 TAMPER-RTC、LEXT_IN、LEXT_OUT 设置为 GPIO
此处以 AT32F403A 为例

gpio_init_type gpio_init_struct;
/* enable the clock of gpioc, bpr, pwc */
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_BPR_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_PWC_PERIPH_CLOCK, TRUE);
pwc_battery_powered_domain_access(TRUE);
bpr_tamper_pin_enable(FALSE);
crm_lext_bypass(FALSE);
crm_clock_source_enable(CRM_CLOCK_SOURCE_LEXT, FALSE);
pwc_battery_powered_domain_access(FALSE);
/* configure pc13 (tamper-rtc), pc14 (lext_in) and pc15 (lext_out) as output push-pull */
gpio_init_struct.gpio_pins = GPIO_PINS_13 | GPIO_PINS_14 | GPIO_PINS_15;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_drive_strengt h = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOC, &gpio_init_struct);

注:如果要使用 PC14、PC15,则时钟初始化时不用使能 LEXT。
类型:MCU 应用
适用型号:AT32 全系列
主功能:GPIO

FAQ0016_默认非GPIO的Pin如何设置为GPIO_V2.0.0.pdf (475.43 KB, 下载次数: 2)

 

FAQ0017:耐压 5V I/O 口在上电期间及 NRST 为 low 时,会导致高电平驱动方式时的 LED 弱亮

Answer:
AT32F4xx 的耐压 5V I/O 在复位期间及设置为 input floating 模式时约有最大不超过 10uA 的推动能力,当芯片于复位期间或 MCU 程序尚未运行起来,此时 IO 保持默认为 input floating 模式,在此期间 LED 就被这很小的电流微点亮了(下图为 LED 连接方式)

此现象是因 5V 耐压 I/O 设计结构特性有关。在上电或复位位期间,N_8(如下图所示)会为 low, long channeldevice 被开启,如果 IO 有阻性负载到地,会形成电源经由 long channel device 到 I/O 到阻性负载到地的路径。此设计结果会提供 uA 等级电流推动能力。如果耐压 5V I/O 外部下拉足够(如 100K),这条路径会自动断开,此时即无此等级的电流(最大 10uA)即可以消除复位期间及设置为 input floating 模式时 LED 弱亮的现象, 此现象为耐压 5V I/O 设计结构特性,并非不合理或来路不明的漏电流,对产品静电测试并不会造成影响。

解决方法:建议使用耐压 5V I/O 口 LOW 电压方式驱动点亮 LED
类型:MCU 应用
适用型号:AT32 全系列
主功能:GPIO

FAQ0017_耐压5V IO在高电平驱动LED时弱亮说明_V2.0.0.pdf (515.2 KB, 下载次数: 0)

 

FAQ0018:如果非 5V 容忍管脚,输入电平超过芯片的 VDD + 0.3V 的高电压会有什么问题
Answer:
有以下两种问题:
1. 此高电压透过芯片内部路径抬升 VDD/VDDA 电压,此高电压也会透过 ADC 内部干扰其他 ADC 通道输入信号源,因此导致任一 ADC 通道采样结果都不准确

2. 因芯片内部设计,此高电压在 64 和 48 管脚封装内会干扰 HEXT,导致其无法起振或起振后又停振

综合以上影响,任何外部器件其输出超过 VDD + 0.3V,不可直接与非 5V 容忍管脚连接。此时建议这类器件输出信号源先经一电阻分压网路将输出分压到 VDD 以下,再连接到非 5V 容忍管脚,如此可避免上述问题发生。AT32MCU 的管脚具有片内下拉电阻(RPD),分压网路可以以信号源串接一外接电阻(RIN)连接至非 5V容忍管脚,再配合软件使能该管脚之片内下拉电阻,形成最简单的电阻分压网路。

考虑片内下拉电阻值工艺徧差可能,选择 RIN 时应满足以下两个条件:
(1) 以 RPD 最大值估算分压后 VPIN 需低于 VDD
(2) 以 RPD 最小值估算分压后 VPIN 需高于 VIH 最小值规格

例如:
若 VDD = 3.3V,VIN = 3.8V,可选择 RIN = 30 kΩ
(1) 3.8×120/(30+120)=3.04V,低于 3.3V
(2) 3.8×70/(30+70)=2.66V,高于 0.31×3.3+0.8=1.823V
遵守以上条件可避免非 5V 容忍管脚承受电平超过 VDD + 0.3V 以上电压,并使器件输出之高电平经分压后仍可被管脚认得为输入高电平。
类型:MCU 应用
适用型号:AT32 全系列
主功能:GPIO

FAQ0018_非5V容忍管脚输入建议_V2.0.0.pdf (473.88 KB, 下载次数: 0)

 

FAQ0019:AT32F4xx IO 驱动能力设置同其它 MCU 的不同之处
Answer:
AT32F4xx IO 设置说明如下:
1. AT32F4xx IO 三种驱动能力的说明:
(1) GPIO_DRIVE_STRENGTH_MODERATE 对应适中的电流推动/吸入能力
(2) GPIO_DRIVE_STRENGTH_STRONGER 对应较大的电流推动/吸入能力
(3) GPIO_DRIVE_STRENGTH_MAXIMUM 对应极大的电流推动/吸入能力
2. 如果 IO 速度设置为最大的推动力设置,且负载较小时,易在 IO 上产生过冲振铃现象,存在影响应用的可能

3. 对于常规应用:
推荐把 IO 速度设置为:GPIO_DRIVE_STRENGTH_MODERATE
对于需要强电流驱动应用:
推荐把 IO 速度设置为 GPIO_DRIVE_STRENGTH_STRONGER,GPIO_DRIVE_STRENGTH_MAXIMUM
也可在 IO 处预留串接电阻
类型:MCU 应用
适用型号:AT32 全系列
主功能:GPIO

FAQ0019_IO驱动能力设置说明_V2.0.0.pdf (445.94 KB, 下载次数: 2)

 

FAQ0020:如何避免 FT(5V 容忍)引脚浮空输入时维持在中间电平,以获得正确的输入逻辑值
Answer:
因 5V 容忍管脚在浮空输入模式时,仍有约小于 10 μA 的上拉电流能力,以致管脚可能维持约 2.0V 电压让管脚输入逻辑仍判为高电平
解决方法:使用者可于引脚外部加下拉电阻避免 5V 容忍管脚电压维持在中间电平的问题,推荐下拉电阻值
如下表:

类型:MCU 应用
适用型号:AT32F403, AT32F413,AT32F415
主功能:GPIO

FAQ0020_避免耐压5V IO浮空输入时维持在中间电平_V2.0.0.pdf (280.05 KB, 下载次数: 0)

 

FAQ0021:WIN 7 系统安装虚拟串口驱动的问题

Answer:
在用我们 usb_device 例程 vcp_loopback 时,WIN 7 系统需要安装驱动,Artery 官网上有虚拟串口上位机的驱动,驱动程序文件名 VirtualCOM_DriverInstall,但有些 GHOST 版系统下安装会有问题,解决步骤如下:
1. 确认是否有 mdmcpq.PNF 和 mdmcpq.inf,需放在 C:\Windows\inf 目录下
2. 确认是否有 usbser.sys,需放在 C:\WINDOWS\SYSTEM32\DRIVERS 下,以上文件没有的话,从其他电脑系统上拷贝一份
3. 如果以上步骤都操作过还有问题的话,请将 mdmcpq.inf 中如下代码注释掉

[FakeModemCopyFileSection]
;usbser.sys

这是为了避免 FileRepository 中的文件可能有问题导致复制出错
4. usbser.sys 文件根据系统决定,64 位系统用 64 位的,32 位系统用 32 位的, 附件有提供 WIN 7 系统下 32
位和 64 位 usbser.sys 文件
类型:MCU 应用
适用型号:适用所有带 USB 的 AT32 型号

FAQ0021_USB虚拟串口驱动安装问题_V2.0.0.pdf (473.09 KB, 下载次数: 0)

 

FAQ0022:I2C 主模式下,在发送地址后在写数据时(主发模式),产生一个预期外的 STOP,如下图所示:

Answer:
I2C_CTRL1 寄存器的 GENSTOP 位描述如下:

在软件操作 I2C_CTRL1 寄存器的 GENSTOP 位发送 STOP 后,如果没有等待硬件将该位清除以后再执行I2C_CTRL1 的其他操作(比如下一次通信开始时操作 GENSTART),会导致硬件逻辑出错,出现异常情况,库函数会因此去产生一个 STOP。
解决方式:配置完 STOP 后添加判断 GENSTOP 位是否清除,再去做其他操作

/* generate stop condtion */
i2c_stop_generate(hi2c->i2cx);
/* wait for the stop flag to be reset */
hi2c->status = i2c_wait_flag(hi2c, I2C_STOPF_FLAG, RESET, I2C_EVENT_CHECK_NO NE,
hi2c->timeout);

类型:MCU 应用
适用型号:AT32 全系列
主功能:I2C

FAQ0022_I2C主模式下在发送地址后写数据时产生预期外的STOP_V2.0.0.pdf (545.21 KB, 下载次数: 1)

 

FAQ0023:同时触发 ADC1 ADC2 ADC3 方法
Answer:
单个 ADC 框图如下:

如上图所示,ADC 支持多种的外部触发方式,并且 ADC1 和 ADC2 支持双 ADC 模式。所以可以 ADC1 和ADC2 采用双 ADC 模式(普通同时模式),ADC3 与 ADC1 和 ADC2 采用相同的触发源以达到同步的效果。得到转换结果后通过 DMA 将数据传送到内部 SRAM 中。

类型:MCU 应用
适用型号:AT32F403,AT32F403A,AT32F407
主功能:ADC

FAQ0023_同时触发ADC1_ADC2_ADC3方法_V2.0.0.pdf (463.99 KB, 下载次数: 0)

 

FAQ0024:

FAQ0025:AT32F403 ADC 实测 4MHz 采样速率
Answer:
经实测 AT32F403 ADC 以 4 MHz 采样速率操作,结果比起数据手册上限 2 MHz 差。采样率 2 MHz 时总体
分辨率保证可达 12 bit, 而 4 MHz 时可达约 9.2 bit。实测结果如下图:

类型:MCU 应用
适用型号:AT32 全系列
主功能:ADC

FAQ0025_ADC实测4MHz采样速率结果_V2.0.0.pdf (301.6 KB, 下载次数: 0)

 

FAQ0026:在 ADC 输入内阻不配情况下提高 ADC 准确度方法
Answer:
在客户应用中输入源输入电阻同推荐的值不配匹,如果输入源内阻过大,会导致 ADC 转换精度 降低。以AT32F403 为例,ADC 推荐的输入源内阻如下:

为了提高 ADC 转换精度建议如下处理:
1. 可以加大采样时间来消除 ADC 采样时间不足导致的转换精度不佳;如果现在是使用 1.5 的 CLK 采样时间,发现转换精度不佳,可以用在项目允许的条件下,先按:7.5-13.5-28.5-41.5-55.5 CLK 的方式一步一步增大,直到满足要求
2. 在输入 ADC 的 I/O 口处并接电容 330pF-0.1uF,以对信号预采样

3. 若采样信号低于𝑉𝐷𝐷𝐴 /2(或𝑉𝑅𝐸𝐹 /2)时,可在采样前先插入一次对内部𝑉𝑅𝐸𝐹𝐼𝑁𝑇 1.2V 的采样,此操作可将 ADC内部采样电容放电于一理想电压后,再对目标信号采样
4. 采样软件方式:对 ADC 采样的值第一次丢弃,使用第二次采样的值或进行排序中值滤波。此种方式可以消除输入源内阻过大时,在不同通道切换时,上一个通道的电压来不及放电,导致的 ADC 此通道的值偏大或偏小
ADC I/O 口特别注意事项:同所有 ADC 互用的 I/O 口输入的电压不能超过𝑉𝐷𝐷𝐴 (MCU 工作电压)+0.3V;如
果存在,建议客户使用分压电阻或减压到此电压范围
5. 增加每次采样时间间隔。

类型:MCU 应用
适用型号:AT32 全系列
主功能:ADC

FAQ0026_在ADC输入内阻不配情况下提高ADC准确度方法_V2.0.0.pdf (571.45 KB, 下载次数: 0)

 

FAQ0027:

FAQ0028:

FAQ0029:

FAQ0030:

 

FAQ0031:

FAQ0032:

FAQ0033:

FAQ0034:

FAQ0035:

FAQ0036:

FAQ0037:

FAQ0038:

FAQ0039:

FAQ0040:

 

FAQ0041:
FAQ0042:
FAQ0043:
FAQ0044:
FAQ0045:
FAQ0046:
FAQ0047:
FAQ0048:
FAQ0049:
FAQ0050:
FAQ0051:
FAQ0052:
FAQ0053:
FAQ0054:
FAQ0055:
FAQ0056:
FAQ0057:
FAQ0058:
FAQ0059:
FAQ0060:
FAQ0061:
FAQ0062:
FAQ0063:
FAQ0064:
FAQ0065:
FAQ0066:
FAQ0067:
FAQ0068:
FAQ0069:
FAQ0070:
FAQ0071:
FAQ0072:
FAQ0073:
FAQ0074:
FAQ0075:
FAQ0076:
FAQ0077:
FAQ0078:
FAQ0079:
FAQ0080:
FAQ0081:
FAQ0082:
FAQ0083:
FAQ0084:
FAQ0085:
FAQ0086:
FAQ0087:
FAQ0088:
FAQ0089:
FAQ0090:
FAQ0091:
FAQ0092:
FAQ0093:
FAQ0094:
FAQ0095:
FAQ0096:
FAQ0097:
FAQ0098:
FAQ0099:
FAQ0100:
FAQ0101:
FAQ0102:
FAQ0103:
FAQ0104:
FAQ0105:
FAQ0106:
FAQ0107:
FAQ0108:
FAQ0109:
FAQ0110:
FAQ0111:
FAQ0112:
FAQ0113:
FAQ0114:
FAQ0115:
FAQ0116:
FAQ0117:
FAQ0118:
FAQ0119:
FAQ0120:
FAQ0121:
FAQ0122:
FAQ0123:
FAQ0124:
FAQ0125:
FAQ0126:
FAQ0127:
FAQ0128:
FAQ0129:
FAQ0130:
FAQ0131:
FAQ0132:
FAQ0133:
FAQ0134:
FAQ0135:
FAQ0136:
FAQ0137:
FAQ0138:
FAQ0139:
FAQ0140:

 

最新回复

简直不要太详细了  详情 回复 发表于 2023-10-15 12:17
点赞 关注(1)
 
 

回复
举报

1万

帖子

203

TA的资源

管理员

沙发
 

这个不错啊。楼主有心了

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复

6562

帖子

9

TA的资源

版主

板凳
 

都是常见问题  

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

6107

帖子

4

TA的资源

版主

4
 

FAQ0011:后怎么没了?

 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

5
 

简直不要太详细了


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表