AT32

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

围观 12

嵌入式系统应用市场广泛,早已遍及日常生活,随着产品需求复杂度的提升,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)。

围观 17

触摸屏介绍

对于四线电阻式触摸屏的结构如下图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)。

围观 18

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

雅特力高效能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)。

围观 7

KWS概述

关键字定位(Keyword Spotting,KWS)技术,已成为可穿戴设备、物联网设备和其他智能终端的关键。诸如“Alexa”,“Hey Siri”或“Ok Google”等短语唤醒智能手机和家用电器上的语音激活功能,已经是语音交互设计产品的广泛需求。

对于KWS,实时响应和高精度才能获得良好的用户体验。最近,神经网络已成为KWS架构的一个有吸引力的选择,因为与传统的语音处理算法相比,它们具有更高的准确性。

由于需要实时在线识别的要求,导致KWS应用在内存和计算能力有限的微型微控制器上运行会受到一定限制。KWS的神经网络架构设计必须考虑这些限制。于是,研究人员设计出由于传统CNN的深度可分离卷积神经网络(DS-CNN)架构技术。

为了进一步介绍了DS-CNN架构,并展示了开发人员如何在MCU上实现DS-CNN KWS。2018年ARM和斯坦福大学进行了合作,并开源了预训练TensorFlow模型及其语音关键词识别代码,并将结果发表在论文Hello Edge: Keyword Spotting on Microcontrollers中。

本文基于此开源模型和代码,在AT32 MCU上对KWS效果进行展示。

KWS实现原理

关键词识别KWS

一个典型的KWS系统由一个特征提取器和一个基于神经网络的分类器组成,如下图所示。首先,长度为L的输入语音信号被分成长度为l且步幅为s的重叠帧,总共有帧T帧。

T=(L−l)/S+1

从每一帧中提取F个语音特征,则长度为L的整个输入语音信号总共生成T×F个特征。Logmel filter bank energies (LFBE)和Mel-frequency cepstral coefficients (MFCC)常用于基于深度学习的语音识别,特别适用于传统语音处理技术。使用LFBE或MFCC进行特征提取涉及将时域语音信号转换为一组频域频谱信号,从而实现输入信号的维度压缩。提取的语音特征矩阵服务于输入分类器模块,该模块导出所输出分类的概率。在需要从连续音频流中识别关键字的实际场景中,利用后端处理模块可以在一段时间内平均每个输出类的输出概率,从而提高预测的整体置信度。

1.png
图1. KWS数据管道

卷积神经网络CNN

基于DNN的KWS的一个主要缺点是它无法有效地对语音特征中的局部时间和频谱相关性进行建模。CNN是通过将输入时域和谱域特征视作图像,并对其进行二维卷积处理。卷积层之后通常是批量归一化、基于ReLU的激活函数和可选的最大/平均池化层,这些处理可以降低特征的维数。在推理过程中,批量归一化的参数可以折叠到卷积层的权重中。在某些情况下,为了减少参数和加速训练,在卷积层和密集层之间添加了一个线性低秩层,这是一个没有非线性激活的全连接层。

深度可分离卷积神经网络DS-CNN

深度可分离卷积神经网络(DS-CNN)。最近,深度可分离卷积已被提出作为标准3-D卷积操作的有效替代方案,并已用于在计算机视觉领域实现紧凑的网络架构。DS-CNN首先将输入特征图中的每个通道与一个单独的2-D滤波器进行卷积,然后使用逐点卷积(即1x1)在深度维度上组合输出。通过将标准的3-D卷积分解为2-D卷积,然后是1-D卷积,深度可分离卷积在参数数量和操作方面都更加高效,这使得即使在资源受限的微控制器设备中也可以实现更深、更宽的架构。

例 KWS实作

KWS测试平台

KWS系统需要使用到两个平台,即PC端和AT32 MCU端。

PC端:

利用TensorFlow与Python撰写完整的深度学习程序代码并训练模型,因本文件使用的学习模式为监督式的学习,需给系统大量的训练数据和Labels,接着将提取到的特征用以训练CNN模型,并反复修正训练的模型,直到模型为此系统优化的状态。

AT32 MCU端:

利用ARM提供的CMSIS-NN的函式库、DSP函数库和CNN函数库,结合PC端训练好的模型(该模型已下载待MCU)。对输入到MCU端的音频数据进行识别,实现对该语音数据可能的标签进行分类和预测。

因此,对于既定模型的KWS识别,AT32 MCU端可实现完全离线识别,无需实时与PC通信或联网通信。本示例,AT32 MCU端智能识别的关键词列表如下

"yes","no","up","down","left","right","on","off","stop","go";

没有输入信号时,输出标签为"Silence";输入信号不在关键词列表时,输出标签为

"Unknown"。

注意:由于篇幅限制,本文只介绍AT32 MCU的实现流程,如下图阴影部分。

2.png
图2. KWS实现流程

资源准备

1) 硬件环境:

AT-START-F403A BOARD V1.x

AT32-Audio-EV V2.x

3.png
图3. KWS测试的硬件环境

2) 软件环境

MDK V5.31或更新版本,使用ARM Compiler V6进行编译

…\PACK\ArteryTek.AT32F403A_407_DFP.2.1.2.pack或更新版本

…\PACK\ARM.CMSIS-DSP.1.11.0.pack或更新版本

ML-KWS-for-MCU-master\Project\mdk_v5

软件设计

实验结果

在AT32-Audio-EV V2.x端LINE_IN输入语音信号后,AT Link虚拟串口会打印输出KWS识别的标签和概率。

4.png
图4. 串口打印识别信息

识别效果视频链接 https://b23.tv/3UNwWEH

来源:AT32 MCU 雅特力科技

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

围观 31

概述

VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置命令行工具和Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的插件安装功能扩展软件功能。在2019年的Stack Overflow组织的开发者调查中,Visual Studio Code被认为是最受开发者欢迎的开发环境。

VSCode因为其轻量化、丰富的插件以及炫酷的界面等优点,当前成为了开发者热捧的开发工具。AT32提供在VSCode下开发、编译、下载、调试解决方法。只需安装所需要的软件工具并简单配置即可使用。本指南所使用的所有软件,目前都是开源的。

软件安装

Windows下环境配置

一、VSCode安装

VSCode是微软开发的代码编辑器软件,可免费下载和使用,登录VSCode官网即可下载安装文件,注意在windows环境下需要下载对应的版本。

1.png

图1. VSCode官方下载

下载安装后打开VSCode界面如下图所示

2.png

图2. VSCode界面

注意安装完成后需要将VSCode安装路径加入到环境变量中,后续使用会更加方便。上图中的红色框内为安装的插件,C/C++和Cortex-debug必须安装,其他可选择性安装即可。

二、交叉编译工具链与MinGW安装

本小节说明如何安装arm交叉编译工具链和MinGW,以及openocd的使用。

交叉编译工具链安装

为了能使在windows平台下编译的代码在AT32 MCU上运行,需要安装ARM提供的交叉编译工具链。在本文档配套的代码包内可找到此软件(gcc-arm-none-eabi-10.3-2021.10-win32.exe),然后双击运行安装即可。

注意安装完成后需要添加系统环境变量。

MinGW安装

MinGW是Minimalist GNU for windows的缩写。它是可以自由使用自由发布的windows特定头文件和使用GNU工具集导入库的集合,可在windows平台生成本地的windows程序。其包括GCC编译器,所以本应用所使用的编译器为GCC。

在本文档配套的代码包内可找到此软件(mingw-get-setup.exe),双击运行即可安装。需要注意安装完成后需要添加系统环境变量。

3.png

图3. MinGW设置

到MinGW安装目录下,进入/bin目录,找到其中的mingw32-make.exe并复制一份放到相同目录下,修改命名为make.exe。

三、OpenOCD使用

Openocd可执行文件由雅特力提供,在本文档配套的代码包内可找到。使用时只需将其添加到系统环境变量即可,无需其他安装与配置。

四、环境变量配置

在系统中搜索“环境变量”,进入环境变量配置界面,确保前面所安装的软件都已添加到环境变量中;例如如下所示:

4.png

图4. 环境变量设置

上图为笔者系统下软件安装路径和环境变量配置,可作为参考。

需要特别注意,如若环境变量安装路径不对,会导致VSCode编译下载代码等出错。

Linux下环境配置

下面介绍在linux下软件安装与环境配置(ubuntu系统为例)。

一、VSCode安装

下面介绍在ubuntu系统下VSCode的安装方式,只需在命令行输入如下命令即可一键安装VSCode:
5.png

输入以上命令后耐心等待一会,安装完成会出现提示信息。

安装成功之后,在命令行下只需输入code命令即可启动VSCode,如下图所示:

6.png

图5. Linux下VSCode安装与启动

二、交叉编译工具链与OpenOCD安装

第一步:在arm官方网站下载好交叉编译工具链,也可使用本APPNOTE所提供的工具链,将其放在linux某个目录下;

第二步:使用artery提供的OpenOCD软件,将其放在linux某个目录下;

第三步:将交叉编译工具链和OpenOCD添加环境变量,例如将其放在/home/artery目录下,打开~/.bashrc文件,在末尾添加如下两行:

7.png

图6. Linux下环境变量添加

注:交叉编译工具链和OpenOCD在附带的software_tool文件夹下有提供,可直接使用。

Template使用

硬件环境

对应AT-START-BOARD搭配AT-Link

工程导入

模板工程分为windows和linux两个版本,在windows环境下使用:

SourceCode\at32_vscode\template_for_windows目录下工程,在linux环境下使用:

SourceCode\at32_vscode\tamplate_for_linux目录下工程。

代码包内模板工程如下:

8.png

图7. 模板工程

如若环境安装正确,下面只需要将本文档配套的代码包内的模板工程文件夹使用VSCode打开即可。打开后工程目录如下所示:

9.png

图8. 工程目录结构

Libraries:主要存放artery芯片库文件;

Project:工程相关配置文件以及用户代码;

Makefile:编译器需要使用;

.vscode:工程配置脚本。

配置修改

由于环境不同,软件安装的路径存在差异,所以需要进行环境适配。只需修改.vscode目录下的3个配置脚本即可。

1. c_cpp_properties.json脚本修改

10.png

图9. c_cpp_properties.json脚本

上图中框起来的路径需要根据实际路径进行修改。

2. launch.json脚本修改

11.png

图10. launch.json脚本

上图中框起来的路径需要根据实际路径进行修改。

3. tasks.json脚本修改

12.png

图11. tasks.json脚本

上图中框起来的路径需要根据实际路径进行修改。

工程使用

通过以上配置,现在可以使用VSCode开发、编译、下载、调试AT32 MCU了。

点击VSCode菜单栏TerminalàRun Task会出现如下界面:

13.png

图12. 编译、下载和清除

界面有clean、download code和build,点击这三个按钮分别执行如下操作:

Build:编译代码;

Clean:删除编译产生的文件;

download code:下载代码到目标板。

编译下载代码后,点击VSCode菜单栏RunàStart Debugging即可进入调试状态:

14.png

图13. 调试界面

进入调试界面后可进行单步执行等操作,也可查看外设寄存器值、变量值等操作。

IC型号修改

Template工程为各系列中单一型号,如果使用到其他型号需要按照如下步骤修改即可。

Makefile 文件修改

Makefile文件如下红框内容需根据实际型号进行修改

15.png

图14. Makefile修改

.ld文件可在artery BSP内获取,路径如下:

AT32F435_437_Firmware_Library_V2.x.x\libraries\cmsis\cm4\device_support\startup\gcc\linker

理论上修改完makefile文件就可以顺利编译下载调试代码了,但在VSCode上阅读代码时会出现波浪线等警告提示,这是因为VSCode解释代码关系出错,还需要修改一下c_cpp_properties.json脚本

c_cpp_properties.json脚本修改

文件如下红框内容需根据实际型号进行修改:

16.png

图15. c_cpp_propertie修改

来源:AT32 MCU 雅特力科技

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

围观 26

二维码简介

二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。

二维码由于自身设计特点,可包含更多的信息量,编码信息范围更广,并且由于二维码具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、以及处理图形旋转变化点,二维码译码更加准确,其误码率为千万分之一。下图为QR二维码构造框图。

1.png

图1. QR码符号的结构

1) 位置探测图形、位置探测图形分隔符:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;这些黑白间隔的矩形块很容易进行图像处理的检测。

2) 定位图形:这些小的黑白相间的格子就好像坐标轴,在二维码上定义了网格。

3) 格式信息:表示该二维码的纠错级别,分为L、M、Q、H。

4) 数据区域:使用黑白的二进制网格编码内容。8个格子可以编码一个字节。

5) 版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。

6) 纠错码字:用于修正二维码损坏带来的错误。

二维码解码流程

了解了QR二维码的构造,下面我们来了解解码流程,QR二维码的解码流程如下图2所示。

2.png

图2. QR码译码步骤

1) 定位并获取符号图像。深色与浅色模块识别为“0”与“1”的阵列。

2) 识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别纠错等级与掩模图形参考)。

3) 识读版本信息,确定符号的版本。

4) 用掩模图形参考,从格式信息中得出对编码区的位图进行异或处理消除掩模。

5) 根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。

6) 用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。

7) 根据模式指示符和字符计数指示符将数据码字划分成多个部分。

8) 最后,按照使用的模式译码得出数据字符并输出结果。

二维码的解码流程具体实现的步骤和方法是比较复杂,涉及到了QR二维码的标准规则及相对应的算法,知识点很多,网络上相关资料充足,这里就不再赘述。

QR decode快速使用方法

硬件资源

1) USB

2) LCD 9341

3) Sensor OV5640 or OV2640

4) Buzzer(PE3)

5) USER Key

6) AT32F435_DVP_EVB_V1.0实验板

3.png

图3. 硬件资源图

硬件连接及数据流

本例程中主要使用到的外设包括:DVP、I2C、XMC、DMA和USB,其中DVP用于摄像头数据接收,I2C用于初始化摄像头,XMC用于发送LCD显示数据至LCD设备,DMA用于DVP至buffer和buffer至XMC的数据传输,USB用于将数据发送至PC端。

摄像头数据会以Y8的格式用DVP进行采集,通过DMA传输至内存buffer,此buffer会用于LCD显示和Zbar解码。在LCD显示部分,由于LCD无法直接显示Y8格式数据,所以首先会将Y8格式转换为RGB格式,然后通过DMA将数据传输到XMC用于LCD显示摄像头画面;在Zbar解码部分,解码成功后会将解析结果通过USB传输至PC端,并通过XMC将结果显示到LCD上。

硬件连接以及数据流如下图所示:

4.png

图4. 硬件连接及数据流图

QR decode demo使用

由于该demo运行占用了256KB的SRAM,而AT32F435/437的SRAM大小是可配置的(SRAM默认大小为384KB),为了方便使用,demo已经在启动文件中将SRAM修改为了默认大小,亦可自行在extend_sram()函数中进行SRAM大小的配置。

5.png

图5. 修改SRAM大小

1) 连接USB线到PC,通过上位机可以识别到该设备:Artery Virtual COM Port,注意需要安装USB驱动:Artery_VirtualCOM_DriverInstall.exe。

2) 根据LCD显示信息,查看摄像头初始化是否成功,demo提供的初始化代码可自动识别OV5640或OV2640两种摄像头,若想更换其他摄像头请自行修改摄像头初始化代码。

3) 初始化成功后,将摄像头对准二维码,LCD显示当前抓取的摄像头图像,此时芯片一直在通过Zbar进行二维码解码。

4) 若芯片解析到数据,蜂鸣器会进行提示并将解析次数及解析结果显示在LCD底部,如图6所示。同时如果连接了USB至PC端并识别到了Artery Virtual COM Port,还会将解析到的数据通过USB传输到PC端,如图7所示。当解析到新的图码数据时会将解析次数清零,并更新解析结果。

5) 若芯片未解析到图码数据,LCD将无结果显示,或保留上次解析的结果及次数。

6) 蜂鸣器提示音可以通过USER Key进行开关。

7) 可通过以下宏定义来对摄像头输出数据大小进行设置,为了兼顾成像效果和资源占用,建议输出大小设置为160至240(pixel)之间:

#define CAMERA_SIZE 240

8) 可通过以下宏定义来选择是否开启LCD显示:

#define LCD_DISPLAY

9) 应用效果展示视频链接如下:

https://b23.tv/Y4nhMNR

6.png

图6. LCD显示解析数据

7.png

图7. USB传到上位机数据

来源:AT32 MCU 雅特力科技

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

围观 35

近年全球提倡发展工业自动化之际,节能减碳意识不断加强,直流无刷电机强调更高的能源转换效率,得到了广泛的应用。电机控制方案重点在于高速实时的控制,AT32 MCU高性能运算与实时采样效率赋予了电机高效工作能力,提升了电机向量控制精确度,而在三相交流电机磁场导向控制(field-oriented control,简称FOC)的算法应用中,电机电流为不可或缺的物理量反馈信息。为满足精简电路、缩小面积与降低系统成本需求,单电阻电流采样技术的应用日益普及,仅需一个电流感测电阻和一个放大电路,无需额外校正,同时实现过流保护。AT32 MCU内建的高速高性能ADC搭配对应的电流采样电路,可进行单电阻电流采样,提高采样精确率,带来事半功倍的效果,应用于电动两轮车、滑板车、吹风机、吸尘器、吊扇、空调风机/压缩机等电机电流为数十安培以下的设备,充分满足各种应用领域对于电机精准控制需求。

1.png


雅特力开发出一套完整高效的电机控制生态系统,提供多系列适用电机控制MCU产品型号,如AT32F413、AT32F421等系列。主流型AT32F413系列采用32位ARM® Cortex®-M4F 内核,主频高达200MHz具有高效处理能力,提供64~256KB Flash和16~64KB SRAM供选择,具有丰富灵活的外设,包含1个USB、2组CAN、1个SDIO、5个UART等多种接口供选择,且提供双ADC可同时采样,当执行高频采样率的快速电流/速度/位置等控制回路计算时,使其轻松胜任、游刃有余,同时保留MCU执行余裕,提供其它程序运作,如通讯功能等,满足高速数据采集、混合信号处理、工业控制与电机应用要求。

为使单电阻电流感测所需的时间缩短,近似于多电流传感器的性能,需搭配高性能的硬件电路与仿真/数字转换器。雅特力提供超值型AT32F421和AT32F4212系列MCU,120MHz CPU 主频,16~64KB Flash和8~16KB SRAM,外设扩展了1个高速轨到轨电压比较器,1个采样率高达2Msps的12位高速ADC,转换频率可高达28MHz,最短采样时间仅54ns,全部转换时间仅0.5ms,非常适用于单电阻电流采样的驱动器,并可在极短的采样时间窗口正确采样。此外,AT32F4212在AT32F421原有基础上增加2路运算放大器OPA,简化电路设计及降低物料成本;为了降低单电阻电流采样复杂度,对内建的PWM位移做了调整,缩短电流反馈信号稳定时间与ADC采样转换时间。

2.png


低电压调变PWM向量位移示意图

此外,雅特力提供电机控制算法函数库,包含编码器、霍尔有感与无感FOC控制相关函数,可应用三电阻、双电阻、单电阻等电流反馈方式,以及包含霍尔有感与无感6-step BLDC控制相关函数。此外,配置免费的电机监控上位机软件,友好的UI界面,可实时监看电机运转参数、状态与动态显示响应波形,便于进行在线调试相关控制参数。这些功能强大的硬件开发工具包和易使用的电机控制算法软件,从方波驱动到弦波驱动、霍尔传感器的反馈到无传感器的反馈,全方位支持工程人员实现高效电机向量控制方案。

雅特力专注于32位微控制器研发与创新,全系列采用ARM® Cortex®-M4高效能或M0+低功耗内核,追求卓越的产品质量和一流服务,具有高效能、高稳定性与高可靠度的优势,成功缔造M4业界最高主频288MHz运算效能,且AT32 MCU全系列产品支持工业级工作温度范围(-40°~105°),已成功累积多元的终端产品案例,如高速风筒、扫/拖地机、变频器、工业缝纫机、伺服电机、电竞周边产品、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖电机、工控、消费、商务、物联网及5G等领域。

来源:AT32 MCU 雅特力科技

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

围观 20

页面

订阅 RSS - AT32