AT32

概述

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

因此在没有内置硬件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)。

围观 21

简介

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)。

围观 12
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)。

围观 28

近日,雅特力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)。

围观 13

近日,雅特力与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)。

围观 22

触摸屏介绍

对于四线电阻式触摸屏的结构如下图1,在玻璃或丙烯酸基板上覆盖有两层透平,均匀导电的ITO层,分别做为X电极和Y电极,它们之间由均匀排列的透明格点分开绝缘。其中下层的ITO与玻璃基板附着,上层的ITO附着在PET薄膜上。X电极和Y电极的正负端由“导电条”(图中黑色条形部分)分别从两端引出,且X电极和Y电极导电条的位置相互垂直。引出端X-,X+,Y-,Y+一共四条线,这就是四线电阻式触摸屏名称的由来。当有物体接触触摸屏表面并施以一定的压力时,上层的ITO导电层发生形变与下层ITO发生接触,该结构可以等效为相应的电路,如下图2。

1.png

图1. 触摸屏结构图

2.png

图2. 触摸屏等效电路

计算触点的X,Y坐标分为如下两步:

1) 计算Y坐标,在Y+电极施加驱动电压Vdrive,Y-电极接地,X+做为引出端测量得到接触点的电压,由于ITO层均匀导电,触点电压与Vdrive电压之比等于触点Y坐标与屏高度之比。

2) 计算X坐标,在X+电极施加驱动电压Vdrive,X-电极接地,Y+做为引出端测量得到接触点的电压,由于ITO层均匀导电,触点电压与Vdrive电压之比等于触点X坐标与屏宽度之比。

测得的电压通常由ADC转化为数字信号,再进行简单处理就可以做为坐标判断触点的实际位置。四线电阻式触摸屏除了可以得到触点的X/Y坐标,还可以测得触点的压力,这是因为top layer施压后,上下层ITO发生接触,在触点上实际是有电阻存在的。压力越大,接触越充分,电阻就越小,通过测量这个电阻的大小可以量化压力大小。

通常在触摸屏应用中对于触摸屏控制有专门的控制芯片,主要就是为了完成两个任务:其一,完成电极电压的切换;其二,采集接触点处的电压值(ADC数据)。本案例中触摸屏使用的触摸感应驱动芯片为XPT2046,显示器驱动芯片为ILI9341,下面将分别做介绍。

触摸感应器

触摸感应器使用的驱动芯片为XPT2046,其包含了采样/保持、模数转换、串口数据输出等功能。同时芯片集成有一个2.5V的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046可以单电源供电,电源电压范围为2.7V~5.5V。参考电压值直接决定ADC的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入1V~VCC范围内的参考电压(要求外部参考电压源输出阻抗低)。X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分模式。选择VBAT、Temp和AUX时可以配置为单端模式;作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。

3.png

图3. XPT2046原理框图

LCD显示器

LCD显示器为一块240*320的RGB屏幕,使用驱动芯片为ILI9341。ILI9341能够支持并行和串行数据总线,此案例中我们使用串行总线接口(SPI)来进行数据传输。ILI9341驱动器能够通过窗口地址函数在内部GRAM中指定动态图像的区域,并且可选择地更新此窗口区域,这样就可以在独立于静态图像区域的同时显示动态图像。ILI9341支持全彩色,8色显示模式和休眠模式,能够通过软件进行精确的电源控制,使得ILI9341能够作为手机、MP3和PMP等便携设备理想的液晶驱动器。

触摸屏工作原理

下面将对XPT2046驱动芯片的工作原理进行介绍。

模拟输入

下图描述了XPT2046片内多路选择器、ADC的模拟差分输入和差分参考电压基准。

4.png

图4. 模拟输入简图

内部参考电压

XPT2046的内部2.5V参考电压源可通过控制位PD1进行关闭或者打开。一般地,内部参考电压只用于单端模式下Vbatt、Temp和AUX输入测量。使用差分模式,触摸屏可以获得最佳性能。如果要与ADS7843兼容,XPT2046的内部参考电压源必须强行关闭。因此,上电后要对控制位PD1置0以确保关闭内部参考源。

5.png

图5. 内部电压源示意图

外部参考电压输入

+REF和-REF(见图3)之间的电压差(下文用VREF表示)决定了模拟输入的电压范围。XPT2046的参考电压输入范围为1V~VCC。参考电压越低,则ADC输出的二进制数据结果每一个数字位所代表的模拟电压也越低。在12位工作方式下,数据结果的最低位所代表的模拟电压为VREF/4096,其余位依此类推。因此,参考电压越低,干扰引入的误差会越大,此时要求尽可能使用低噪声、低波动的参考电压源;在设计电路板时,尽可能减少干扰,输入的信号噪音也不能太高,否则会直接影响转换精度。

差分工作模式

如前所述,当触摸感应器XPT2046作为触摸屏应用时,可以配置为差分模式。差分模式的优点是:+REF和-REF的输入分别直接接到YP、YN上,可消除由于驱动开关的导通电阻引入的坐标测量误差。缺点是:无论是采样还是转换过程中,驱动开关都需要接通,相对单端模式而言,功耗会有增加。当SER/DFR置为低电平时,XPT2046为差分工作模式,如下图所示。

6.png

图6. 差分参考源工作模式简图

软件流程

接下来将简单介绍本案例的触摸屏驱动软件代码流程。首先上电之后需要对所用到的外设进行初始化,包括CRM、GPIO、SPI和DMA等外设。外设初始化完成后即可开始进行触摸校准,通过调用touch_adjust()函数完成。校准完成后会在屏幕显示一系列的校准参数,用于后续计算触摸坐标使用。随后,即可开始进行触摸测试,测试过程中会在屏幕画出已触摸的坐标点,以及坐标值。还设置了清屏按钮,点击即可清除屏幕已显示内容和坐标值。为了提高数据传输效率,此demo中清屏和画点数据通过DMA-SPI进行传输,软件流程图如下:

7.png

图7. 软件流程图

注:由于触摸校准对触摸功能来说是必须完成的,如果未完成校准则无法进行后续的工作。

触摸屏快速使用方法

硬件资源

1) AT32-Video-EV

2) 2.4寸TFT_LCD

3) AT-START-F403A V1.2实验板

8.png

图8. 触摸屏硬件资源图

Note:

1.该demo是基于AT32F403A的硬件条件,若使用者需要在AT32其他型号上使用,请修改相应配置即可。

2.供电部分:使用电源供电,或USB线供电(勿使用Link单独供电)。

软件资源

AN0154_LCD_Touch_Sourcecode,触摸屏案例测试代码,工程路径位于:Sourcecode\utilities\mdk_v5

关键代码

1) 触摸点坐标获取函数,用于获取触摸坐标值,关键代码如下:

9.png

2) 触摸校准函数,用于获取校准参数,关键代码如下:

10.png

3) 触摸屏测试函数,用于测试触摸屏,关键代码如下:

11.png

4) LCD清屏函数,用于清除显示内容,关键代码如下:

12.png

5) LCD画点函数,用于显示触摸坐标点,关键代码如下:

13.png

LCD Touch demo 使用

LCD Touch demo使用步骤如下:

1) 编译下载触摸屏案例测试代码。

2) 触摸屏进入校准界面,依次点击四个校准坐标点,如下图8。

3) 校准完成后LCD会显示校准信息,包含四个校准参数VX、VY、CHX和CHY,如下图9。

4) 点击屏幕任意处,将会跳转到触摸屏测试界面,此时触摸屏会将触摸点绘制在LCD上,还会实时显示触摸点的坐标,点击Clear按钮将清除界面,如下图10。

14.png

图9. 触摸屏校准界面

15.png

图10. 触摸屏校准信息

16.png

图11. 触摸屏测试界面

来源:AT32 MCU 雅特力科技

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

围观 44

过去商务办公成立必不可少的四机设备,复印机、打印机、扫描机和传真机等,为缩短人力作业时间,提升工作效率,各种办公设备也逐步推出更符合人性化需求,多功能一体机也是其中一大变革之一。多功能一体机主要是将打印、复印、扫描和传真等不同用途的机器整合为一机,并结合联网功能。随着设备功能越多,信息安全及隐私外泄风险增加,微控制器作为一个可编程的集成电路芯片,具有处理和控制功能,能够执行复杂的指令集,管理各功能模块间通信和协同工作,以确保整个系统的高效稳定和安全运作。

雅特力高效能AT32F435/F437系列MCU具有高效数据处理能力,以ARM® Cortex®-M4为内核,最高主频288MHz,支持最高4032KB Flash和高达512KB SRAM,内建FPU、DSP和各种复杂外设,供客户灵活运用,如双QSPI、双OTG、DVP和多种通信接口,且XMC支持SDRAM、SRAM、PSRAM等存储器拓展,此外还提供3组高速(5.33Msps)ADC独立引擎,能处理复杂的打印、扫描、复印和传真任务,快速的响应时间和高效率的算法使得多功能一体机能够在短时间内完成各种操作。

AT32F435/F437多功能一体机的应用特色

高效能CPU主频,提供一个可配置的硬体管道,支持打印、扫描、复印和传真等功能。支持多组高速PWM输出,可同时处理多颗马达控制。多通道ADC/DAC支持多组sensor,精准感测及打印控制。高达18个定时器, 满足打印单元控制输出的高度整合运动控制,从而降低整体系统成本和复杂性。电路板小型化,内建高速片上振荡器,提供小尺寸封装。导入sLib安全库 (Security Library),支持密码保护指定范围程序区,确保芯片高度安全性。整合关键高速通信接口,如USART/UART、USB OTG、CAN、SDIO、Ethernet(仅AT32F437系列支持)等,提升连网系统效率和稳定性。支持芯片软件OTA升级,便于多功能一体机更新、改进及扩展。

1.png

▲硬件系统框图

关于雅特力
雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,专注于ARM ®Cortex®-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM® Cortex®-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G、物联网、消费、商务及工控等领域。

来源:AT32 MCU 雅特力科技

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

围观 14

页面

订阅 RSS - AT32