AT32

新建项目

新项目向导

AT32 ID提供支持雅特力MCU的C语言项目模板,方便用户快速创建项目。菜单栏【File】>【New】>【C Project】。新建项目向导的对话框将出现。在对话框内,输入项目名称,这里以AT32F403AVGT7为例,项目名称输入AT32F403AVGT7;项目类型选择AT32F403A_407 Project;工具链默认选择Arm Cross GCC,点击Next按钮继续。

1.png

图1. 新项目向导

备注:项目名称只能使用大写字母、小写字母、数字和下划线,不能包含空格。

目标芯片配置

根据实际目标MCU,选择AT32F403A对应的目标芯片,这里选择AT32F403AVGT7。外部时钟External clock一般默认都是0x08000000;其他配置根据实际选择。

2.png

图2. 目标芯片配置

调试配置

默认,点击Next继续

3.png

图3. 调试配置

GNU工具链配置

GNU工具链配置,默认选择GNU Tools for ARM Embedded Processors(arm-none-eabi-gcc),工具链路径这里也集成到了AT32 IDE 中,不需要单独进行选择。点击Finish创建项目。

如果不能自动选择Toolchain path,可以手动选择,gcc-arm-none-eabi和Build Tools都包含在了IDE的环境中。目录分别为:

gcc-arm-none-eabi的目录:AT32IDE\platform\tools\gcc-arm-none-eabi-10.3-2021.10\binBuild Tools的目录:AT32IDE\platform\tools\Build Tools\bin。

4.png

图4. GNU工具链配置

完成项目创建

AT32F403AVGT7项目创建完成后,如下图所示:

5.png

图5. 完成项目创建

构建项目


右键单击项目,在弹出菜单中选择“Build Project”,或者选择项目,点击菜单栏的“Build Project”对项目进行构建,生成elf文件。如下图所示:

6.png

图6. 工具栏构建项目

7.png

图7. 构建项目

构建的项目日志在控制台进行打印。如下图所示:

8.png

图8. 构建结果

项目构建配置

项目创建完成之后,我们也可根据需要对项目构建重新配置。选择菜单【Project】>【Properties】或右键项目选择【Properties】,将出现项目的属性对话框。在C/C++ Build>Settings,我们可以根据实际情况来更改构建配置,点击应用按钮使配置生效。设置完成后,我们可以根据当前的配置重新构建项目。

9.png

图9. 构建配置

调试项目

调试配置

在启动程序调试前,必须先进行调试配置,包含所有关于调试所需的信息。

选择菜单【Run】>【Debug Configurations…】打开调试配置对话框。双击GDB AT-Link Debugging,将自动创建AT-Link调试配置,并再右边进行显示。所有的调试配置信息都会自动生成,一般可以不需要进行修改。

Main标签页

Main标签页中,项目应与创建创建的项目名称一致,创建时会自动生成。C/C++程序一般会自动搜索项目中构建的elf文件,这里自动填写Debug\xxxxx.elf。如果没有提前构建项目,找不到elf文件,则自动填写Debug\${project_name}.elf,当构建产生以项目名称命名的elf时,这里的配置也可以正常使用。

10.png

图10. Main标签页

Debugger标签页

Debugger 标签页中的信息创建时也自动进行了配置。OpenOCD的执行程序和脚本文件配置路劲是相对路劲,因为这些工具都已近存放在AT32 IDE的安装文件中。这里自动配置了执行程序路径、SVD文件路径,并根据芯片类型配置了Config options。当然也可以根据实际情况就行修改。如需要使用WinUSB,则需要勾选“WinUSB”,则Config options的信息中将自动配置为“-f ./interface/atlink_dap_v2.cfg”。

如下图所示:

11.png

图11. Debugger标签页

启动调试

选择上一步创建的调试配置“AT42F403AVGT7 Debug”,并点击工具栏“Launch in ‘Debug’ mode”按钮,启动项目调试。如下图所示:

12.png

图12. 启动调试

弹出切换透视图对话框,点击“切换”按钮切换到Debugger透视图。如下图所示:

13.png

图13. 切换透视图

项目启动调试,并切换到调试透视图。在调试透视图可以进行各种调试功能操作。如查看变量值、表达式值、外围寄存器等。如下图所示:

14.png

图14. 调试透视图

下载与擦除

下载

工程构建完成,并创建了AT-Link调试器,选中需要下载的项目,单击工具栏的下载按钮,将构建生成的程序下载到设备中。

擦除

选中需要下载的项目,单击工具栏的擦除按钮,将会自动对MCU的Flash进行全部擦除操作。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 37

随着人工智能、物联网等技术的发展,传统家电逐渐向智能家电转型。洗衣机作为家庭生活中不可或缺的电器之一,其智能化升级对于提升生活品质具有重要意义。当前,洗衣机制造企业已纷纷将智能洗涤、高效节能、大容量配置、超薄嵌入、极致静音体验以及衣物护理功能作为产品竞争力的核心要素,同步响应行业政策对能效要求的提升,这一系列要求无疑对电机控制技术提出了更高的挑战。

1726627545350654.jpg

MCU作为电机控制系统的核心“大脑”,肩负着多样化的控制使命,其性能至关重要。雅特力AT32 MCU以其卓越的性能和完善的电机开发生态,为洗衣机、电动两轮车和电摩等电机应用产品提供高效电机控制驱动方案,并已实现规模量产。

01、高效驱动,精准控制

AT32F421着眼于取代及提升传统Cortex®-M0/M3产品的解决方案,导入Cortex®-M4架构的高速主流平台,集成丰富的外设接口,具有快速高效的算法能力和高性价比的价格优势,为智能家电、电机控制和工业自动化等应用领域量身打造,满足洗衣机电机控制对精度、效率和安全性的要求。

1.png

AT32F421达120MHz CPU主频,64KB Flash及16KB SRAM,可快速完成FOC算法和电流调节。高PWM频率与解析度,保证电机高效稳定运转,进一步提升了洗衣机的洗涤效果和节能性能。AT32F421还扩展了1个高速轨到轨输入/输出模拟电压比较器,有效节省BOM成本,实现过流保护,确保洗衣机在异常情况下能够迅速响应,保护产品及用户安全。

此外,AT32F421内置1个采样率2Msps的12位高速ADC,转换频率可高达28MHz,最短采样时间仅54ns,全部转换时间仅0.5us,非常适用于单电阻电流采样的驱动器,并可在极短的采样时间窗口正确采样。这使其在洗衣机的控制回路计算中能够轻松胜任,无论是电流、速度还是位置等控制回路,AT32F421都能提供高频取样率,确保洗衣机的运行稳定且精确。

02、高效电机引领,洗衣体验全面升级

直驱控制

基于AT32F421的洗衣机应用方案采用直驱变频(DD)技术,摒弃了传统的皮带或齿轮传动方式,直接将电机与洗衣桶或滚筒相连,实现了动力传输的高效与精准。这种技术不仅减少了能量损耗,降低了运行噪音,还提高了洗衣机的响应速度和洗涤效率。直驱电机能够精确控制洗涤节奏,确保衣物得到恰到好处的清洁,同时延长了洗衣机的使用寿命。

由于直驱电机设计更加紧凑,这意味着洗衣机可以有更小的机身设计,同时确保其洗涤容量不变,这对于空间有限的家庭来说尤为友好。省去皮带和滑轮系统,直驱洗衣机可以为滚筒和内部结构提供更多的空间,实现同等尺寸下更大的洗涤容量。

深度弱磁算法

鉴于洗衣机工作周期中低速洗涤模式占据主导地位,电机设计通常侧重于优化低速性能以兼顾扭矩与效率。然而,洗衣机的脱水转速通常介于每分钟800到1600转,对电机高速性能的迫切需求凸显,常规控制策略难以迅速响应这一转变。AT32F421洗衣机应用方案设计了深度弱磁算法,它如同一位智能调节师,依据实时速度需求与负载状况,精细调整D、Q轴电压电流分配,确保电机转速提升平滑无级,彻底消除了传统调速中的台阶感。这一创新不仅满足了脱水模式对电机高速、高效、稳定运行的要求,还提升了用户体验,使洗衣机在高速脱水时更加安静、平稳。

智能称重检测

用户在洗衣时均希望洗衣机能根据衣物的重量自动给出合适的水位,从而避免盲目选择,造成洗不干净或费水费电的情况发生。为了提高检测精度及降低成本,基于AT32F421洗衣机方案凭借高性能的CPU算力,能够自动感知并计算衣物的重量,算法精度远高于行业要求。

不仅避免了水资源的浪费,还确保了衣物得到恰到好处的清洁,保护了衣物纤维,延长了衣物使用寿命。同时,智能秤重也让用户操作更加简便,只需将衣物放入洗衣机,选择相应程序,即可享受智能化的洗涤服务。

衣物不平衡

侦测衣物在洗涤过程中因分布不均导致的偏心问题是传统洗衣机常见的困扰之一。

T32F421通过传感器和算法,以实现衣物不平衡的实时侦测,并对检测结果来进行相应的控制。洗衣机可自动调整洗涤程序,如增加脱水前的再平衡步骤,或通过改变水流方向等方式,有效减少震动,确保洗涤过程的平稳进行。以及对角偏心检测功能,作为偏心检测的补充,实时监测并调整因衣物在洗涤过程中可能发生的移动所导致的偏心量变化。

03、电机生态系统赋能

在电机开发生态上,雅特力提供了丰富多样的电机控制算法库BSP包,包含编码器、霍尔有感与无感FOC弦波矢量控制,可应用于三电阻、双电阻和单电阻等电流反馈方式,以及霍尔有感与无感6-step BLDC控制。提供了霍尔状态自学习、电机线圈参数自动辨识和电流PI控制参数自定义等智能化自动调试功能。电机监控上位机调试软件提供了友好的UI调试界面,可实时监看电机运转参数、状态与动态显示响应波形,便于进行在线调试相关控制参数。这些功能强大的开发工具包和易使用的电机控制算法BSP包,从方波驱动到FOC弦波驱动、霍尔传感器的反馈到无传感器的反馈,全方位支持工程人员实现高效电机控制方案。相对完整的电机开发生态也为智能家电厂商提供了开发便利,快速实现产品量产和上市。

此外,AT32 MCU为家电安全性提供了坚实的保障,全系列产品已顺利通过IEC 60730功能安全认证,可提供符合Class B标准完整的功能安全库,减少家电厂商产品认证时间与成本,从硬件底层架构层面显著增强了产品的稳定性和安全性,为家电产品的市场准入与消费者信赖奠定了坚实基础。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 27

概述

产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。

因此在没有内置硬件TRNG的AT32的微控制器系列中,如何提高随机数的有效,来符合应用的需求。底下提供两种方法:

提高乱度的方法之一,使用ADC的误差。AT32的微控制器内置最多三个高级12位片上SAR模拟数字转换器(ADC)并提供自校准功能,保证12位ADC静态准确度(accuracy)可达10位以上。这误差可以拿来计算随机数的来源。

提高乱度的方法之二,使用上电时SRAM内容的不确定性。SRAM不保证上电时的内容值,每次上电后,内容也是不容易预测的。我们可以利用这个特性,拿来增加随机数的乱度。

利用ADC的误差来源产生随机数的方法

本章介绍了使用软件触发方式触发ADC,配置普通信道和DMA。根据随机数需要的位数来配置信道数,一次转换最多到16信道,将16信道转换的数值可组合计算成一个32位的随机数。底下是DMA和ADC的配置代码。

  • DMA配置函数代码

1.png
  • ADC配置函数代码

2.png
可以看到,代码中并没有对ADC做自校准,转换时间也使用最短的,这种情况下,ADC的准确度会是最差的,有助于乱度的提升。
  • ADC随机数取得代码

3.png

利用上电时SRAM的内容来计算随机数的方式

这范例只是简单的利用累加来获得一个随机数

  • SRAM配置函数代码

4.png

随机生成应用指南

以上两种方式建议应用在上电后执行,因为SRAM内容在运行后会初始化,ADC也会有其他应用上的需求,上电后执行并获得一个随机数,将这个随机数当成Seed,之后可以利用标准C函式库中提供的随机数生成器,产生后续的随机数。

SRAM的方式限定在POR后使用。如果只是一般的reset,SRAM会维持内容,造成产生的随机数都是相同。

ADC的方式则没有限制,但是因为使用ADC外设的资源,推荐放在开机时执行,不会影响后续的ADC应用。

范例运行和分析

本篇应用笔记适用于AT32各系列MCU,只要有ADC外设皆可适用。

范例固件AN0175_SourceCode_V2.0.0运行在AT32403A AT-START版上,透过 PuTTY(免费开源终端仿真器)等终端仿真应用程序,将数据存储在工作站上。

在工作站上编译NIST统计测试集程序包,以生成可执行程序。接下来运行NIST统计测试集程序分析数据以及统计测试。

以下是使用范例固件AN0175_SourceCode_V2.0.0在上电后会产生的一个随机数,在收集约319万笔随机数后,进行NIST统计测试。

5.png

图1. 环境配置
硬件资源
  1. AT32403A AT-START 版

    1) 串口(PA9)

  2. 具有串口的计算机,运行 Linux 系统

软件资源
  1. 下载到AT32403A AT-START版运行

    1) AN0175_SourceCode_V2.0.0

  2. 计算机端运行

    1) 终端仿真器如PuTTY

    2) 统计测试集源程序

    https://csrc.nist.gov/CSRC/media/Projects/Random-Bit-Generation/document...

    https://github.com/usnistgov/SP800-90B_EntropyAssessment

NIST SP800-22b统计测试集

基于NIST统计测试集:April 27, 2010: NIST SP 800-22rev1a (dated April 2010), A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications, that describes the test suite.

统计测试集源程序下载:

https://csrc.nist.gov/CSRC/media/Projects/Random-Bit-Generation/document...

统计测试集结果:

NIST SP800-90b统计测试集

基于NIST统计测试集:November 21, 2014: NIST requests comments on the latest revision of NIST SP 800-90A, Recommendation for Random Number Generation Using Deterministic Random Bit Generators, which is dated November 2014.

统计测试集源程序下载:

https://github.com/usnistgov/SP800-90B_EntropyAssessment

统计测试集结果:需先转换成符合2-bit-wide symbols数据输入格式。

./ea_non_iid 0421_2.bin 2 -i -a -v

Opening file: '0421_2.bin'

Loaded 50888144 samples of 4 distinct 2-bit-wide symbols

Number of Binary Symbols: 101776288

Running non-IID tests...

Running Most Common Value Estimate...

Bitstring MCV Estimate: mode = 50891714, p-hat = 0.50003507693265448, p_u = 0.50016273956095891

Most Common Value Estimate (bit string) = 0.999531 / 1 bit(s)

Literal MCV Estimate: mode = 12725005, p-hat = 0.25005834364876817, p_u = 0.25021470996034195

Most Common Value Estimate = 1.998761 / 2 bit(s)

Running Entropic Statistic Estimates (bit strings only)...

Bitstring Collision Estimate: X-bar = 2.5000060058338387, sigma-hat = 0.50000000610486417, p = 0.50989562404154842

Collision Test Estimate (bit string) = 0.971726 / 1 bit(s)

Bitstring Markov Estimate: P_0 = 0.49996492306734552, P_1 = 0.50003507693265448, P_0,0 = 0.4999425562646943, P_0,1 = 0.5000574437353057, P_1,0 = 0.49998729655651403, P_1,1 = 0.50001270344348603, p_max = 2.9554800761609014e-39

Markov Test Estimate (bit string) = 0.999936 / 1 bit(s)

Bitstring Compression Estimate: X-bar = 5.2176714331187366, sigma-hat = 1.0152961906603262, p = 0.019654761320726077

Compression Test Estimate (bit string) = 0.944830 / 1 bit(s)

Running Tuple Estimates...

Bitstring t-Tuple Estimate: t = 23, p-hat_max = 0.52357011476148263, p_u = 0.52369763546518522

Bitstring LRS Estimate: u = 24, v = 50, p-hat = 0.50053161737274598, p_u = 0.50065927992920534

T-Tuple Test Estimate (bit string) = 0.933194 / 1 bit(s)

Literal t-Tuple Estimate: t = 11, p-hat_max = 0.27527598152543398, p_u = 0.27543726106146299

Literal LRS Estimate: u = 12, v = 24, p-hat = 0.25086994374062016, p_u = 0.25102647882990431

T-Tuple Test Estimate = 1.860204 / 2 bit(s)

LRS Test Estimate (bit string) = 0.998099 / 1 bit(s)

LRS Test Estimate = 1.994089 / 2 bit(s)

Running Predictor Estimates...

Bitstring MultiMCW Prediction Estimate: N = 101776225, Pglobal' = 0.50008960368099831 (C = 50884239) Plocal can't affect result (r = 26)

Multi Most Common in Window (MultiMCW) Prediction Test Estimate (bit string) = 0.999741 / 1 bit(s)

Literal MultiMCW Prediction Estimate: N = 50888081, Pglobal' = 0.25014573559900838 (C = 12721480) Plocal can't affect result (r = 12)

Multi Most Common in Window (MultiMCW) Prediction Test Estimate = 1.999159 / 2 bit(s)

Bitstring Lag Prediction Estimate: N = 101776287, Pglobal' = 0.50019269251081444 (C = 50894762) Plocal can't affect result (r = 25)

Lag Prediction Test Estimate (bit string) = 0.999444 / 1 bit(s)

Literal Lag Prediction Estimate: N = 50888143, Pglobal' = 0.25015172047634626 (C = 12721800) Plocal can't affect result (r = 13)

Lag Prediction Test Estimate = 1.999125 / 2 bit(s)

Bitstring MultiMMC Prediction Estimate: N = 101776286, Pglobal' = 0.50008456811129076 (C = 50883757) Plocal can't affect result (r = 27)

Multi Markov Model with Counting (MultiMMC) Prediction Test Estimate (bit string) = 0.999756 / 1 bit(s)

Literal MultiMMC Prediction Estimate: N = 50888142, Pglobal' = 0.2502104743048289 (C = 12724789) Plocal can't affect result (r = 13)

Multi Markov Model with Counting (MultiMMC) Prediction Test Estimate = 1.998786 / 2 bit(s)

Bitstring LZ78Y Prediction Estimate: N = 101776271, Pglobal' = 0.50008006313488451 (C = 50883291) Plocal can't affect result (r = 26)

LZ78Y Prediction Test Estimate (bit string) = 0.999769 / 1 bit(s)

Literal LZ78Y Prediction Estimate: N = 50888127, Pglobal' = 0.25021764352136133 (C = 12725150) Plocal can't affect result (r = 13)

LZ78Y Prediction Test Estimate = 1.998745 / 2 bit(s)

H_original: 1.860204

H_bitstring: 0.933194

min(H_original, 2 X H_bitstring): 1.860204

关于雅特力

雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,拥有领先高端芯片研发技术、完整的硅智财库及专业灵活的整合经验,分別在重庆、深圳、苏州、上海、台湾设有研发、销售及技术支持分部。

雅特力坚持自主研发,以科技创新引领智慧未来,专注于ARM® Cortex®-M4/M0+的32位微控制器研发与创新,提供高效能、高可靠性且具有竞争力的产品。全系列产品采用55nm先进工艺,通过ISO 9001质量管理体系认证,缔造M4业界最高主频288MHz运算效能。自2018年正式对外销售至今,累积了相当多元的终端产品成功案例,广泛地覆盖工控、电机、车载、消费、商务、5G、物联网、新能源等领域,助力客户实现产业升级。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 31

简介

AT32系列MCU内部都有提供适合运行的内部高速时钟(HICK),其本质就是内置于芯片的RC振荡器。在25℃下,其典型值频率8MHz的精度由工厂校准到±1%,在-40到105℃,该内部高速时钟的精度达到±2.5%,可见精度会受到温度的影响。

为了降低环境温度对精度造成的影响,用户可在运行时间隙调用校准程序来进行校准。

校准及原理

校准

每颗AT32 MCU芯片的内部高速时钟在出厂时都有被进行校准,待芯片复位后该校准值会自动加载到CRM_CTRL寄存器的HICKCAL[7:0]位,与CRM_CTRL寄存器的HICKTRIM[4:0]位一起作用于HICK的校准,HICKTRIM[4:0]的复位值为0x20(不同系列该复位值可能不同),在外部电压和温度变化对内部高速时钟频率产生影响时,可通过软件对HICKTRIM[4:0]这些位进行编程,对HICK进行微调,以达到满足要求的频率。

原理

校准的原理就是对当前的HICK频率进行较为准确的测量,参考实际的测量值与典型值的比较结果,判断是否达到校准的目的。此处用到的HICK测量方法不是采用外部设备来进行的,而是使用片上定时器来对外部精准的时钟源周期进行计数,因定时器的计数时钟源于HICK,这样就可以通过精确的外部时钟源周期来推算出当前HICK的频率值。

在本应用示例及文档中,精准时钟源采用的是LEXT(通常RTC使用的32kHz晶振),图示显示了如何使用定时器计数个数来测量参考信号周期。

1.png

图1. 参考信号测量

如上所示,为提高计数测量的准确性,实际应用中可连续对多个LEXT周期进行计数,再用求平均值的方式来减小误差。频率计算公式:

Frequencytimer=(count1+count2+…+countN)/N*Frequencylext

因HICK直接或间接的提供给系统时钟,再通过timer频率和主频的关系,推算出此时HICK的频率,当前HICK的频率值减去HICK典型值就是此时HICK的误差频率:

Error(Hz)=Frequencyhick–8000000

硬件实现

由校准原理可知,要想计算出HICK的频率就必须得有一个准确的校准源,该文档示例推荐的是采用LEXT,并且该校准源需要连接到定时器的输入捕获通道。AT32 MCU可通过CLKOUT功能将LEXT校准源输出,再通过内部配置功能或外围连线将CLKOUT与定时器的输入通道连接

2.png

图2. 硬件连接

校准方法

前文提到设置CRM_CTRL寄存器的HICKTRIM位可调整HICK输出,校准流程首先按HICKTRIM的默认值为基点配置,准确的测量出此时HICK实际的频率值,然后按实际频率与典型值计算得到频率误差,判断该误差是否在可接受误差值范围内,如果是,则返回成功,如果不是,则轮询下一个HICKTRIM设置点,再进行测量判断,直到轮询完毕返回失败。

使用说明

函数说明

与本文档对应的示例代码中包含了三个主要的函数

3.png

a) clkout输出配置

主要进行校准源LEXT时钟的开启,并将它配置由clkout来进行输出。由于示例的MCU型号支持clkout与timer10 channel1进行内部连接设置,如果该函数内并未进行clkout对应GPIO Pin脚的初始化,并且采用外部连接,请加入GPIO Pin脚初始化即可。

b) timer输入配置

主要进行timer10的基础时钟配置、输入捕获配置及中断配置,默认采用校准源时钟的上升沿捕获。由于示例的MCU型号支持clkout与timer10 channel1进行内部连接设置,如果该函数内并未进行timer10 channel1对应GPIO Pin脚的初始化,并且采用外部连接,请加入GPIO Pin脚初始化即可。

c) HICK校准接口

该函数为程序运行时的校准函数接口,可在一定时间周期或条件下调用该函数进行HICK的校准,校准到满足误差范围的频率时,该函数返回成功,反之返回失败。

需注意:在校准过程中HICK会有一个调整的过程,故此过程中的的主频或外设频率可能非预期值,所以通讯类接口或时序强相关的外设需暂停使用,待校准完成后再开启使用。

宏定义说明

示例代码中有两个配置宏定义可以由用户按实际使用情况来进行修改。

4.png

ERROR_VALUE_MAX定义了可接受的最大误差范围(单位Hz),如上值(10000)即表示校准成功后的频率精度为±10kHz,用户可自行修改。需注意:由于HICK的校准特性关系,精度要求越高(即ERROR_VALUE_MAX值越小)时校准失败的概率越大。

CAPUTURE_NUM定义了LEXT校准源的捕获次数,再用累计求平均的方式减小误差。需注意:由于捕获计数时间点比较随机的关系,第一个计数值不准确,故读取的timer计数值需丢弃第一个计数,所以该宏定义值需大于1。

校准流程

可在系统运行时状态下调用校准函数接口hick_trimming进行校准。为防止非预期情况的发生,在调用校准前请确保各外设处于空闲未使用的状态。

首先会将校准前CRM_CTRL寄存器中的HICKTRIM值进行保留,初始校准值从TRIM_VALUE_MAX/2开始,对写入校准值后的HICK频率进行测量,量得误差精度是否满足ERROR_VALUE_MAX设定要求,如果是返回校准成功,如果未满足则继续轮询下一HICKTRIM值,直到轮询完所有,回写校准前的HICKTRIM值并返回校准失败。校准流程图如下:

5.png
图3. 流程图

初始校准值选择从HICK_VALUE_MAX/2开始的原因是HICKTRIM的复位值大致就与HICK_VALUE_MAX/2相当,这样更接近频率漂移的中心点,由中间往外轮询的查找方式,通常情况下采用这种方式进行轮询时可以更快的找出符合要求的校准值,减少了校准时间。

校准演示说明

示例代码是基于AT-START进行编写,为了更好的查看到校准效果,可采用示波器量测CLKOUT(PA8)的输出频率,频率值为HICK48(是8MHz典型值的6倍时钟),代码中有故意将HICK48调偏,当按下user button后开始校准,校准完毕串口1会输出校准结果(成功或失败),并可通过CLKOUT量测到校准后的HICK48频率值,示例演示的代码如下

6.png

注意事项

在使用该校准方法时需注意以下几点。

1. 系统时钟应直接或间接的由HICK提供。

2. timer计数时钟频率越高测量到的HICK频率越精确。

3. 示例demo所采用的方式是系统时钟与timer计数时钟同频,如果因应用场景需求有修改后不同频时,需注意调整频率对应关系部分的代码。

7.png

4. 在校准过程中可能导致主频或外设频率的变化,需注意此时如有外设还在运行时可能会出错。

5. 如所使用的系列型号不支持clkout与timer的输入通道内部连接时,需在配置函数中增加相应的GPIO Pin脚初始化。

6. 捕获次数宏定义CAPUTURE_NUM需大于等于2。

7. 最大误差宏定义ERROR_VALUE_MAX越大越容易校准成功,越小越可能校准失败。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 17
7月8日,2024慕尼黑上海电子展electronica China在上海新国际博览中心拉开序幕,作为全球电子行业的盛会,汇聚了国内外众多优质电子企业,为业界呈现一场前所未有的科技盛宴。

雅特力携高性能AT32 MCU与应用方案齐亮相,呈现了多款电机控制、工业控制、汽车电子、智能家居、消费、商务,及新能源等应用方案。现场人流攒动、氛围热烈!

多元产品布局 助力产业升级与智能化发展

随着科技的不断发展,市场对多元化MCU产品的需求日益增加。雅特力紧跟市场动态,积极应对变化,不断研发并推出符合市场需求的高性能MCU产品,以满足产品日益增长的性能要求与应用场景,此次会场展示了多款近期推出的AT32系列MCU产品。

1720489000403067.jpg

AT32F402/F405主流型MCU,内建独立的HS USB OTG(内建PHY,F405 only)与FS USB OTG,满足电竞市场、工业自动化、USB周边、物联网(IoT)及消费性电子等各种需高运算、高速USB应用需求;AT32L021低功耗系列MCU,最小封装面积仅3x3mm,深睡眠(Deepsleep)下电流约9uA,唤醒时间低于17us,待机模式(Standby)下电流仅为1.2uA,有效延长电池寿命,是便携式设备和物联网应用的理想选择。

此外,针对汽车电子市场的严苛要求,雅特力还推出了AT32A403A与AT32A423车规级MCU,这两款产品均通过了AEC-Q100认证,确保了其在复杂环境下的稳定运行,为汽车电子系统的安全性与可靠性提供了坚实保障。

面对未来市场需求的进一步拓展,雅特力持续加大研发投入,致力于推出更多具有创新性和竞争力的MCU产品。在本次展会现场,首次预告了两款即将面世的新品,雅特力近期将推出AT32M412/M416电机专用MCU,这两款产品集成2个比较器(CMP)和4个运算放大器(OP)(支持PGA模式),专为家电设备、工业设备、逆变器等电机或电源应用场景设计,将为用户带来更加精准、高效的电机控制体验。同时,AT32F455/F456/F457主流型MCU也将面世,它们不仅配备了CAN-FD接口(仅限F456)和USB OTG功能,还提供了144pin大尺寸封装选项,可广泛应用于扫地机,充电桩,DTU,HMI,PLC,安防,数字对讲机,电机控制,车载娱乐,网关等多个领域,满足市场对高性能、多功能MCU的需求。

雅特力以持续的技术创新,不断推动MCU技术的发展和应用领域的拓展,打造多元化的产品布局,进一步推动产业升级和智能化进程。

应用方案展示 

此次会场,雅特力展示了车载智能座椅、汽车定位报警器、汽车氛围灯控制器、攀爬车电调、编码器、洗衣机、电竞键鼠、数字对讲机等多款应用产品,为用户创造更加便捷、舒适、智能的生活体验。

1720489031846009.jpg
1720489037326333.jpg
1720489045172542.jpg
1720489051462315.jpg
1720489057712410.jpg

8k高速键盘及鼠标

采用雅特力AT32F405高速USB微控制器,集成独立的FS和HS USB OTG,内建高速USB PHY,大幅提升电竞键鼠反应速度和精准度,还提供封装尺寸最小为4 x 4mm,可满足各类小体积无线USB Dongle需求。

可实现有线或无线的高Report Rate,最高可达8k Report Rate的速率;通过拓展外部RF可实现三模连接,即USB+BLE+2.4G模式。

攀爬车电调

采用雅特力AT32F421系列超值型MCU,具有高PWM频率与高PWM解析。

智能化扭矩输出,低速时具有极佳线性和大扭矩,满足车辆低速攀爬的同时也可满足暴力启动抬头、直线高速等需求,在玩具车竞赛中表现优异。

车载智能座椅

采用了雅特力新推出的车规级AT32A403A系列芯片,通过AEC-Q100车规级可靠性认证。

车载座椅可根据乘客体型、坐姿的变化,感知压力分布,进行自适应调节座椅;四向压感头枕可以自动识别乘员头部位置,智能调节头枕高度。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 29

近日,雅特力AT32 MCU安全库顺利通过IEC 60730功能安全认证,为家电产品提供安全质量保证。国际公认的测试、检验和认证机构SGS为雅特力科技颁发了IEC 60730认证证书,彰显了雅特力科技在家电控制领域的卓越品质和技术实力,也为其在全球范围内的广泛应用奠定了坚实基础。

1716177125343670.png

▲SGS为雅特力科技颁发IEC 60730认证证书

1716177168769817.png

▲IEC 60730颁证合影

在我们的生活环境中,家电及电子产品功能安全的重要性不容忽视,为避免系统故障时产生危害人身安全的风险,在家电和电子产品上市前都严格要求通过安规认证,确保使用操作上的安全性。雅特力AT32F4、AT32A4、AT32M4、AT32WB4通用和专用系列产品均通过了IEC 60730家电安全认证,可提供符合Class B标准完整的功能安全库,协助客户实现产品功能安全设计。

1716177183434412.png

▲IEC 60730 B类功能安全证书及测试报告

IEC 60730作为国际电工委员会制定的家电产品安全标准,AT32 MCU获得此认证不仅证明了其在家电领域的领先实力,更为消费者提供了安全无忧的使用体验,家电厂商可以将认证过的AT32 MCU安全库,快速嵌入家电和电子产品软件系统中进行自检,进而申请最终产品的IEC 60730功能安全标准相关认证,减少开发时间和成本,加速产品上市时程。

IEC 60730标准涵盖了电器设备的机械、电气、电子、EMC和异常操作,其中为电子控制器软件定义了三种类别:

A类软件:软件仅实现产品的功能,不涉及产品的安全控制。B类软件:软件的设计要防止电子设备的不安全操作。C类软件:软件的设计为了避免某些特殊的危险。AT32 MCU安全库在家电及电子设备功能安全设计上经过不断的测试、维护,确保符合IEC 60730 Class B认证标准,其测试内容包含:启动时测试和运行时间测试。

启动时测试内容

CPU检测
看门狗检测系统时钟检测Flash完整性检测RAM功能检测

控制流检测

运行时周期检测包括

局部CPU核心缓存器侦测系统时钟运转检测Flash CRC分段检测堆栈边界溢位检测控制流检测局部RAM自检(在中断服务程序中进行)看门狗喂狗 

AT32 MCU全系列产品在开发设计初期便已考虑到电子设备功能安全重要性,提供相关的硬件外设、使用文件及函数库,支持开发者在产品开发设计上符合安规,顺利通过安全标准认证,加速产品上市时程。

4.png

▲AT32 MCU安全库使用手册

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 16

近日,雅特力与SEGGER共同宣布J-Link仿真调试器与Flasher在线烧录器全面支持AT32 MCU产品,SEGGER工具链的加持使AT32 MCU开发如虎添翼。

1.png

雅特力自2018年对外销售以来,基于32位ARM®-Cortex®-M4内核,推出超值型、主流型、高效能、无线型及车载型系列MCU,并即将发表M0+低功耗系列及马达专用MCU,共六大产品系列200多个产品型号,提供多种封装尺寸产品组合。回顾2023年,共推出3大系列产品,如超值型多管脚AT32F423系列,以高性价比抢攻高性能应用市场;车规级AT32A403A系列,通过AEC-Q100车规级可靠性认证,广泛适用于车身控制、ADAS辅助驾驶、车用影音和BMS等新能源车用领域;主流型AT32F402/F405系列,内建独立的HS USB OTG(仅AT32F405支持)与FS USB OTG,满足高速USB市场需求,一经推出即获市场好评。上述产品系列已全部支持SEGGER J-Link仿真调试器与Flasher在线烧录器,满足客户从产品开发到生产的需求。

SEGGER J-Link作为市场上使用最广泛的调试工具之一,不但提供免费软件和固件在线更新,更是具备快闪加载器(Flashloader)、高速下载能力与在MCU的Flash中设定无限数量断点优势,且调试速度快、稳定性和兼容性高,易上手操作,降低开发难度,同时大幅提升开发效率。

雅特力表示,"藉由与SEGGER合作,提供客户最佳的嵌入式开发工具,无论在性能、效率和易用性上,SEGGER开发调试平台极具人性化,也全力支持AT32 MCU,共同实现缩短产品开发量产进程。"

SEGGER大中华区总经理陈国威(Lionheart)表示,"SEGGER和雅特力科技将持续合作,提供完善的编程和调试工具支持AT32 MCU,以领先的性能、稳定性和高质量产品,共同协助客户完成项目开发,加速产品上市时程。"

关于SEGGER

SEGGER Microcontroller GmbH由Rolf Segger于1992年创立,SEGGER在嵌入式系统领域已有超过三十年的经验,拥有先进的RTOS和软件库、J-Link和J-Trace调试和代码追踪器、In-system的编程烧录器Flasher,以及软件开发工具如集成开发环境(IDE)Embedded Studio等。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 13

嵌入式系统应用市场广泛,早已遍及日常生活,随着产品需求复杂度的提升,32位MCU开发难度也随之增加,如何降低开发成本,缩短开发周期,是所有嵌入式开发人员的共同课题。

面对市场竞争日益加剧的情形,雅特力在产品开发上不断推陈出新,在产品效能、质量上追求精进,以32位ARM®-Cortex®-M4高效能和M0+低功耗为内核,推出低功耗、超值型、主流型、高效能、无线型和车载型六大系列,和15大产品线,采用通用型设计,全系列管脚支持Pin-to-Pin兼容(AT32F405不支持),可进行快速产品升级和迭代。为了降低MCU软件工程师的开发难度和提高设计灵活性,雅特力还提供一系列丰富的软硬件开发工具,通过易用的图形化代码生成软件工具(GUI),加速嵌入式软件开发,缩短产品上市时间。

AT32 Workbench 嵌入式开发工具提供初始化C语言代码生成,图形化配置使MCU软件工程师更有效率进行应用开发和优化程序代码,并兼容Windows®和Linux®等多平台操作系统,提升用户体验及便捷,同时支持Keil、IAR、AT32 IDE等常见IDE开发工具,轻松实现平台转换移植。

AT32 Workbench 特色

  • 支持外设初始化配置
  • 支持PIN MUX配置,并可自定义PIN脚标签和参数
  • 支持系统时钟自动化配置,进行MCU时钟路径及参数配置
  • 支持在线代码预览,实时查看当前配置自动生成的代码
  • 支持Windows、Linux等多平台,无须安装可直接运行程序
  • 支持软件在线升级,以及MCU固件在线下载
  • 支持Keil、IAR、AT32 IDE等常见IDE工程自动生成
  • 重新生成代码时保留用户代码,已有代码将不会被新生成工程覆盖
  • 支持配置PDF报告的生成

1.jpg

▲AT32 Workbench 开发环境界面

AT32 Workbench 嵌入式开发工具基于GUI图形化配置功能,协助开发人员简单轻松配置MCU引脚和周边,且快速产生初始化代码,满足设计需求和降低整体开发时间,使应用开发流程更为高效、可靠,有效缩短产品上市周期。

来源:AT32 MCU 雅特力科技

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 25

页面

订阅 RSS - AT32