雅特力AT32A403开发板评测 01 开箱及环境搭建流程

news2024/11/17 7:45:21

01-雅特力AT32A403A开发板开箱及环境搭建流程

雅特力AT32

2023年,玩了不少的国产MCU开发板,例如武汉芯源CW32,兆易创新GD32、上海航芯ACM32、沁恒CH32V307等开发板,虽然电子工程世界论坛也有雅特力AT32开发板的评测活动,但是一直申请也没有申请到,一直就听说雅特力AT32在国产之间做的很好,支持力度,开发资料资源都比较丰富,甚至都有图形化配置工具了。终于,2024年申请到了,但是板子到手里面快十天了,都还没有开始玩起来,很惭愧,主要最近忙着赶论文,而且又感冒了。

在这里插入图片描述

接下来就开始介绍介绍雅特力AT32A403A开发板,雅特力芯片有许多类型,竟然第一次申请就拿到了车规级微控制器,特别是近几年汽车电子的快速发展,感觉得玩玩车规级微控制器的,虽然我还不知道有啥子区别,但是能通过车规级认证还是比较难的。
在这里插入图片描述

AT32A403A资源简介

雅特力科技AT32A403A系列车规级微控制器,搭载32位ARM®Cortex®-M4内核,配合先进制程可达超高效能200MHz的运算速度。内建的单精度浮点运算单元(FPU)及数字信号处理器(DSP),搭配丰富的外设及灵活的时钟控制机制,具有高集成及高性价比优势。完善的内存设计,最高可支持1MB闪存存储器(Flash)及224KB随机存取存储器(SRAM),其闪存存储器执行零等待的优异表现,超越业界同级芯片水平。

在这里插入图片描述
在这里插入图片描述

AT32A403A可运行于工业级温度范围-40~105°C,特别支持8组UART串口,2组CAN总线,还集成兼容IEEE-802.3 10/100Mbps以太网口控制器特别适用于车联网及车载影音系统,以及USB设备应用不需外挂晶振,具有同时提升终端产品的可靠度与降低成本的多重用途。相比于一般性电子产品,汽车电子对MCU的可靠性要求更高,以保障用户安全及极端环境中驾驶工作。作为雅特力首款车规级MCU产 品,AT32A403A (A : Automotive)顺利通过AEC-Q100车规级可靠性认证,满足功能安全标准车规级MCU的能力,同时可广泛适用于车身控制、ADAS辅助驾驶、车载影音、BMS等新能源车用场景,符合车用电子高可靠性和稳定性要求。遵循AEC-Q100标准,AT32A403A通过了包括加速环境应力测试、加速寿命测试、封装组装整合测试、电器特性确认测试等一系列车规级认证。

在这里插入图片描述

开发板资料

官网资料

主要使用到就是 AT32A403A数据手册,AT32A403A用户参考手册,AT32A403A开发板硬件原理图

在这里插入图片描述

开发板硬件资源

在这里插入图片描述
在这里插入图片描述

AT32A403A_Firmware Library

官方提供了大量的参考例程,过于丰富

编号模块名称Examples功能描述
1acccalibrationACC校准HICK
2adccombine_mode_ordinary_simultADC主从模式之普通同时模式
3current_vref_value_checkADC检测Vref+电压
4exint_trigger_partitionedADC分割模式下使用EXINT触发转换
5internal_temperature_sensorADC使用内部温度传感器
6repeat_conversion_loop_transferADC反复转换时使用DMA的循环模式传输数据
7software_trigger_repeatADC反复模式下使用软件触发
8tmr_trigger_automatic_preemptedADC使用TMR触发普通转换结合抢占自动转换
9triple_adc_synchro_triggerADC之三ADC同步触发转换
10voltage_monitoring电压监测
11bprbpr_data电池供电域寄存器读写
12tamper入侵检测
13cancommunication_modeCAN通讯模式的使用
14filterCAN接收过滤器的使用
15loopback_modeCAN回环模式使用
16cortex_m4bit_band位带操作进行GPIO翻转和SRAM读写
17cmsis_dspDSP使用
18fpu使用硬件FPU进行函数运算
19systick_interrupt演示systick定时器中断方式
20crccalculation使用硬件CRC进行CRC计算
21crmclock_failure_detection外部时钟失效检测并系统时钟拯救
22sysclk_switch系统时钟切换
23dacdouble_mode_dma_sinewave使用DMA双路输出正弦波
24double_mode_dma_squarewave使用DMA双路输出方波
25one_dac_dma_escalator使用DMA单路输出阶梯波
26one_dac_noisewave单路输出噪声
27two_dac_trianglewave双路输出三角波
28debugtmr1调试TMR1定时器计数
29dmadata_to_gpio_flexible使用DMA弹性映射将数据从SRAM传输到GPIO
30flash_to_sram使用DMA将数据从flash传输到SRAM
31exintexint_configEXINT的基础配置
32exint_software_triggerEXINT的软件触发
33flashfap_enableflash访问保护使能
34flash_write_read内部flash读写操作
35operate_spim外部spim读写操作
36run_in_spim演示程序运行在外部spim
37gpioio_toggle演示IO翻转
38led_toggle演示LED翻转
39swjtag_remap对SWD/JTAG引脚进行复用
40i2ccommunication_dmaI2C使用DMA模式通信
41communication_intI2C使用中断模式通信
42communication_pollI2C使用轮询模式通信
43eepromI2C和EEPROM通信
44i2sfullduplex_dmaI2S使用DMA进行全双工通讯
45halfduplex_dmaI2S使用DMA进行半双工通讯
46halfduplex_interruptI2S使用中断进行半双工通讯
47spii2s_switch_halfduplex_pollingSPI_I2S在半双工轮询条件下的模式切换
48pwcdeepsleep_rtcPWC使用RTC唤醒深度睡眠模式
49power_voltage_monitorPWC使用电压监测器
50sleep_tmr2PWC使用TMR2唤醒睡眠模式
51sleep_usart1PWC使用USART1唤醒睡眠模式
52standby_rtcPWC使用RTC唤醒待机模式
53standby_wakeup_pinPWC使用待机唤醒管脚唤醒待机模式
54rtccalendarRTC实现日历功能
55lick_calibrationLICK时钟校准
56sdiosdio_fatfs基于SDIO移植应用FatFs文件系统
57sd_mmc_cardSD或MMC卡的识别/读写操作
58spicrc_transfer_pollingSPI使用轮询进行CRC传输
59fullduplex_pollingSPI使用轮询进行全双工通讯
60halfduplex_interruptSPI使用中断进行半双工通讯
61halfduplex_transceiver_switchSPI半双工下的收发模式切换
62only_receive_mode_pollingSPI使用轮训进行单线单向只收
63use_jtagpin_hardwarecs_dmaSPI映射到JTAG脚并使用DMA进行硬件CS通讯
64w25q_flashSPI与W25Qxx Flash通讯
65tmr6_steps演示如何配置六步方波
667_pwm_output演示如何配置TMR1产生7路PWM输出
67cascade_synchro实现3个TMR的串联同步
68complementary_signals使用TMR1实现互补信号输出
69dma使用TMR1 overflow事件产生DMA请求
70dma_burst演示如何使用定时器DMA burst功能
71encoder_tmr2演示定时器编码器接口模式
72external_clock演示如何使用外部时钟模式
73hall_xor_tmr2演示定时器输入异或功能
74hang_mode演示如何使用挂起模式
75input_capture演示输入捕获功能
76oc_high使用输出控制High模式
77oc_low使用输出控制Low模式
78oc_toggle_tmr3使用TMR3输出控制Toggle模式
79oc_toggle_tmr9使用TMR9输出控制Toggle模式
80one_cycle使用单周期模式
81parallel_synchro实现3个TMR的并联同步
82pwm_input演示PWM输入捕获功能
83pwm_input_dma使用DMA的PWM输入捕获功能
84pwm_output_simulate演示模拟PWM输出功能
85pwm_output_tmr10演示TMR10的PWM输出
86pwm_output_tmr3演示TMR3的PWM输出
87timer_base演示定时器计数基本功能
88tmr1_synchro演示TMR1的同步功能
89tmr2_32bit使用32bit定时器
90usarthalf_duplex使用单线半双工收发
91hw_flow_control使用硬件流控通信
92idle_detection空闲帧中断检测
93interrupt使用中断方式收发数据
94irda红外模式通讯
95polling使用轮询方式收发数据
96printf使用串口打印字符
97receiver_mute收到匹配ID退出接收静默模式
98rs485基于AT32-Comm-EV Board的RS485通信
99smartcard智能卡应用
100synchronous通过同步模式与SPI通信
101transfer_by_dma_interrupt使用DMA中断方式实现数据收发
102transfer_by_dma_polling使用DMA轮询方式实现数据收发
103usb_deviceaudioUSB音频实现speaker和microphone
104composite_audio_hid实现音频和HID复合设备
105composite_vcp_keyboard实现虚拟串口和键盘复合设备
106composite_vcp_msc实现虚拟串口和mass storage复合设备
107custom_hid实现USB自定义HID
108keyboardUSB键盘设备
109mouseUSB鼠标设备
110msc使用内部flash实现mass storage设备
111printerUSB打印机设备
112vcp_loopbackUSB虚拟串口设备
113virtual_comportUSB转串口
114virtual_msc_iap利用虚拟mass storage实现IAP升级功能
115wdtwdt_reset看门狗使用
116wdt_standbystandby模式下看门狗使用
117wwdtwwdt_reset窗口看门狗使用
118xmclcd_8bit驱动8080并口LCD
119lcd_touch_16bit驱动16位并口LCD
120nandNAND FLASH储存器读写访问
121psramPSRAM存储器读写访问

环境搭建流程参考

基本上大多数的工程模板都是采用MDK-KEIL开发的,一般开发人员都安装好了,基本上没有啥子好说的。

基本上只要安装这个pack包就可以了。ArteryTek.AT32A403A_DFP.2.0.3.pack

在这里插入图片描述

我们以at_start_a403a 里面的工程作为基础,搭建自己的工程模板。以GPIO的工程为基础模板,当然其他的Example同样可以,这里面的基本案例都是值得学习的。

  1. at_start_a403a 包含大量开发例程,其中examples是各个外设案例demo,template是各个开发工具的工程模板,而且支持工具版本比较多,这一点是在其他国产mcu例程资料比较少的,绝大多数都是清一色的MDK-KEIL,其次就是IAR工程,像官方的at32_ide,gcc工程模板是比较有特色的。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 学习外设参考案例 (adc,dac,gpio,timer,i2c,spi,can等)

    在这里我们选择了gpio的led_toggle工程模板,毕竟点灯是万万不能少的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 打开led_toggle工程,编译代码,编译0错误0警告。

    at32的led_toggle工程模板的整体命名风格其实和我个人的风格比较相似,所以好感度比较高。

    个人的工程模板文件参考架构如下:

    1. Application 主函数,应用层代码
    2. BspDrivers 板级驱模块动文件
    3. Drivers 底层驱动库文件 Firmware Library
    4. Project 工程文件

    在这里插入图片描述

  2. 准备下载代码

    板子板载了AT-link(本质上就是DAP),不需要其他的工具,很方便的就下载程序了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 观察开发板现象,流水灯现象

    #include "at32a403a_board.h"
    #include "at32a403a_clock.h"
    
    
    /** @addtogroup AT32A403A_periph_examples
      * @{
      */
    
    /** @addtogroup 403A_GPIO_led_toggle GPIO_led_toggle
      * @{
      */
    
    /**
      * @brief  main function.
      * @param  none
      * @retval none
      */
    int main(void)
    {
      system_clock_config();
    
      at32_board_init();
    
      while(1)
      {
        at32_led_toggle(LED2);
        delay_ms(200);
        at32_led_toggle(LED3);
        delay_ms(200);
        at32_led_toggle(LED4);
        delay_ms(200);
      }
    }
    
    
    1. 打开usart_printf工程,测试串口打印功能
    #include "at32a403a_board.h"
    #include "at32a403a_clock.h"
    
    /** @addtogroup AT32A403A_periph_examples
      * @{
      */
    
    /** @addtogroup 403A_USART_printf USART_printf
      * @{
      */
    
    __IO uint32_t time_cnt = 0;
    
    /**
      * @brief  main function.
      * @param  none
      * @retval none
      */
    int main(void)
    {
      system_clock_config();
      at32_board_init();
      uart_print_init(115200);
    
      /* output a message on hyperterminal using printf function */
      //printf("usart printf example: retarget the c library printf function to the usart\r\n");
      printf("Hardware_Init [ok] \r\n");
      printf("at_start_a403a board testing 2024-1-26\r\n");
      while(1)
      {
        printf("at32_led_toggle example start \r\n");
        at32_led_toggle(LED2);
        delay_ms(200);
        at32_led_toggle(LED3);
        delay_ms(200);
        at32_led_toggle(LED4);
        delay_ms(200);
          printf("at32_led_toggle example end \r\n");
        printf("usart printf counter: %u\r\n",time_cnt++);
        delay_sec(1);
      }
    }
    

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1515419.html

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

相关文章

yolov5模型压缩-torch_pruning

参考论文:DepGraph: Towards Any Structural Pruning(https://arxiv.org/abs/2301.12900) 主要原理:物理的移除参数,并自动找出层与层以及层之间的依赖,完成模型的自动裁剪 模型压缩效果:yolov5剪枝流程如下: pip install torch_pruning 新建prune.py: import torch_…

Spring框架--IOC容器全集

一:Spring框架的介绍 1. Spring框架的概述 Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。 Spring是于2003 年兴起的一个轻量级的Java开发框架&#xff…

Gitee的注册和代码提交(附有下载链接)

目录 一、Git的下载和安装二、安装图形化界面工具三、在Gitee上创建仓库四、如何把仓库开源五、Clone远程仓库到本地六、拷贝代码到本地的仓库七、Add-Commit-Push到远程仓库八、可能出现的问题8.1 建议在本地仓库直接创建项目8.2 第一次Push可能出现的问题8.3 怎么删除Gitee上…

HCIP —— BGP 路径属性 (上)

目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的,下图为华为官网提供…

HTML静态网页成品作业(HTML+CSS)——电影肖申克的救赎介绍设计制作(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

第10集《天台教观纲宗》

请大家打开讲义第十七页。我们讲到己二、结申正义。 己二、结申正义 《法华经》把我们修行人修行的相貌,比喻作一个车乘。车乘就是一种交通工具,它能够让我们从此岸超越到彼岸去。所以修行它是可以超越的,你今天比昨天超越了,就好…

5、Design Script之Class和函数

使用函数作为参数 DesignScript允许使用函数作为参数。例如,你可以在CodeBlock中调用两个函数。 要在单个代码块中多次调用一个函数,你需要在每个函数各自的行上编写它。 startPoint Autodesk.DesignScript.Geometry.Point.ByCoordinates(); endPoin…

从零开始学习深度学习库-2:反向传播

欢迎来到本系列的第二篇文章,我们将从头开始构建一个深度学习库。 本博客系列的代码可以在这个Github仓库中找到。 上一篇文章 在上一篇文章中(链接见这里),我们实现了线性层和常见的激活函数,并成功构建了神经网络的…

使用Barrier共享鼠标键盘,通过macos控制ubuntu系统

之前文章写过如何使用barrrier通过windows系统控制ubuntu系统,该文章将详细介绍如何使用barrier通过macos系统控制ubuntu系统 一、macOS安装barrier macOS版本barrier链接 1、双击点开安装包 2、将安装包里的barrier拷贝到macOS的达达->应用程序中 3、在达达…

2024考研计算机考研复试-每日重点(第二十期)

公众号“准研计算机复试”,超全大佬复试资料,保姆级复试,80%的题目都是上岸大佬提供的。 研宝们,App更新啦! 计算机组成原理: 10.☆什么是数据存储的大端模式和小端模式? 大端模式:数…

防火墙基础理论(二)

漏洞扫描,设备联动 阻断未知威胁: 基于大数据统计 从运营角度管理设备 采集流量分析上报,探针

零知识玩转AVH(5)—— 怎么玩(4)

接前一篇文章:零知识玩转AVH(4)—— 怎么玩(3) 上一回经过了一个艰苦的探索过程,最终完成了“arm-avh-best-practice-project-product-subscription-guide-cn.pdf”即“Arm虚拟硬件实践专题一:产…

【Java系列】OOM 时,JVM 堆栈信息保存和分析

一、前言 在日常开发中,即使代码写得再谨慎,免不了还是会发生各种意外的事件,比如服务器内存突然飙高,又或者发生内存溢出(OOM)。当发生这种情况时,我们怎么去排查,怎么去分析原因呢? 一般遇到…

OneDrive教育版迁移记录

背景 微软再次削减教育版优惠的OneDrive容量,从原先的5T直接砍到100G/人,同时对每个学校保留总共100TB的共享存储容量。 右键Onedrive图标——设置——存储容量可见 100GB对于重度用户显然是不够使用的,为此笔者改换Microsoft Office365家庭…

javascript如何实现继承

文章目录 一、是什么二、实现方式原型链继承构造函数继承组合继承原型式继承寄生式继承寄生组合式继承 三、总结相关链接 一、是什么 继承(inheritance)是面向对象软件技术当中的一个概念。 如果一个类别B“继承自”另一个类别A,就把这个B称…

基于SpringBoot+MYSQL+Vue的校园管理系统

目录 1、前言介绍 2、主要技术 3、系统流程分析 3.1、操作流程 3.2、添加信息流程 3.3、删除信息流程 4、系统设计 4.1 系统体系结构 4.2开发流程设计 4.3 数据库设计原则 4.4 数据表 5、运行截图(部分) 5.1管理员功能模块 5.2用户功能模块 5.3院校管理员功能模块…

【django framework】ModelSerializer+GenericAPIView,如何在提交前修改某些字段值

【django framework】ModelSerializerGenericAPIView,如何在提交前修改某些字段值 我们经常会遇到下面这种情况: 序列化器用的是ModelSerializer,写视图的时候继承的是generics.CreateAPIView。现在我想在正式提交到数据库(perform_create)之…

使用Java自带的VisualVM监控远程服务器部署在Docker容器中的Java项目并使用Mat在线工具排查服务器内存泄露或内存溢出的原因

事情是这样的,我们项目最近应业主的要求迁移到了新的服务器,起初一切正常,部署、上线、测试都没有问题,项目大概运行了一周的工作日时间都没出现问题,直到周六那天,项目经理打电话过来说服务器崩了&#xf…

websocket逆向案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、案例地址二、分析流程三、逆向参数四、webSocket 交互位置总结 前言 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供…

第六篇【传奇开心果系列】Python的自动化办公库技术点案例示例:大学生数据全方位分析挖掘经典案例

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas库全方位分析挖掘大学生数据能力介绍二、大学生学生成绩数据分析数据挖掘示例代码三、大学生选课数据分析数据挖掘示例代码四、大学生活动参与数据分析数据挖掘示例代码五、大学…