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

2024-03-14 10:12

本文主要是介绍雅特力AT32A403开发板评测 01 开箱及环境搭建流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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);}
    }
    

    在这里插入图片描述

这篇关于雅特力AT32A403开发板评测 01 开箱及环境搭建流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/808089

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip