[AT32F423]

国产MCU专栏 第74期: 28位工程师深度试用,雅特力AT-START-F423测评笔记77篇

[复制链接]
3617|1
手机看帖
扫描二维码
随时随地手机跟帖
21ic小能手|  楼主 | 2024-1-16 10:48 | 显示全部楼层 |阅读模式

*阅读说明:以下排名不分先后,详细评测内容、过程及源码资料等请戳原链接查看


  • 测评1:
搭建开发环境,写个简单代码让LED闪起来。

开发板板载一个按键用于测试用,连接的是PA0 。

串口在开发调试和设备通讯中会经常用到,开发板上引出了USART1连接到了ATLINK上,PA9可以通过跳线帽选择是作为串口的TX还是usb的VBUS,默认是作为串口TX。


在AT32 Work Bench中将PD8配置成开漏输出,DHT11已经内置了10K的上拉电阻,这里就不配置上拉了,默认输出高电平。

BMP280是博世最推出的数字气压传感器,可以测量气压和温度,支持SPI和I2C通信接口,这里使用I2C来通讯。

ERTC是AT32F423的实时时钟,支持2组闹钟支持时间戳,时钟源可从LEXT、LICK、分频后的 HEXT 中选择。

综合前面已经实现的功能用这些东西简单做一个信息显示屏。


之前用模拟I2C的方式读取了BMP280的数据,这次换用硬件I2C实现对DHTC12温湿度的读取。

这块0.96的OLED是I2C接口的,控制芯片是SSD1315,厂商给的资料里有驱动的例程,接下来参考例程实现对这块屏幕的控制。



  • 测评2:
先试试基础keil开发环境点灯。

本次主要测试一下串口。使用中断接收数据。

本次研究SPI接口的lcd显示测试。自己做的一个lcd模块,使用arduino接口插在板子上。

本次主要使用硬件I2C接口,通过读取加速度传感器ADXL345测试I2C的使用方法。

本次测试使用ADC看看效果。还是用上扩展板,扩展板上有一个XY双轴的摇杆,使用的是电位器。



  • 测评3:
本测评通过改变 PWM 占空比,实现调节 LED 亮度,使用二次函数曲线调制实现呼吸灯效果。

可以配合 UART 的 IDLE 中断和 DMA 一起使用。

内部 flash 一般具有 1万次擦写次数,可以规划出一块或几块区域当 EEPROM 使用,用来保存掉电后保存的数据。注意:内部 flash 没有 EEPROM 擦写次数多,且 program 之前必须先 erase(EEPROM 没此限制)。

本测评采集3个通道,ADC_IN0、内部温度传感器、内部参考电压。

本测评测试 AT32F423 的CAN 外设模块。硬件配置上,使用 fifo 标识符过滤功能。



  • 测评4:
使用官网的例程,来驱动LED灯,测试搭建的开发环境。

测试串口,使用printf打印输出。

将freertos系统移植到STM32F423开发板。



  • 测评5:
现在我们试着用这两个工具建立一个点亮板载LED的项目。

本次评测准备以两种方式测试OLED显示屏的显示刷新速度。一种是非DMA方式传递显示数据,一种是以DMA方式喜欢滴显示数据。作为另一个对比,一个是采用片内IIC外设方式处理显示,另一个是以IO口模拟方式。OLED使用常见的那种0.96英寸的128*64点阵的OLED。为了搭建整个测试工程,我们先一步一步来,先建立一个能产生1秒中断的工程。依旧使用雅特力的Work Bench来创建基于雅特力IDE的工程。

根据购得的0.96英寸的OLED资料,在工程中建立相关的程序。因为是用IO口模拟的方式驱动,需要按照协议,发送SCL和SDA。以往使用51单片机的时候,加了延时处理,以保证SCL的脉冲宽度,即保证时钟的脉冲周期。

本次使用SPI接口的OLED测试显示刷新速度。依旧使用128*64点阵的OLED。



  • 测评6:
每当拿到新的开发板,首先得要做一灯大师,点亮一颗灯开始。故发表此篇文章,以AT32Work Bench为外设配置工具。

在日常开发中经常使用USART开发,这篇文章一起来学习AT32F423的USART配置及使用吧。

在做IAP程序升级时,想用用户系统数据区来存储程序在IAP程序区还是APP区运行标志,结果研究了半天官方的用户手册和BSP函数,没有解决我的问题官方的函数基本用不了,满足不了需求。所以我研究了以下怎么使用,并写了一个操作读写户系统数据区的函数,经测试没有问题。

在日常的开发工作中常常需要IAP的升级,特别开发电机驱动的时候,如果驱动器灌胶了,只有USART接口,那么涉及到程序的更新迭代,就必须要IAP,芯片自带的串口IAP,需要Boot的切换,增加了额外的接口。不适合定制化IAP。  




  • 测评7:

前面已经准备好了硬件,以及开发环境,包括SDK、IDE和图形化配置工具。这次就来利用这些资料进行第一个程序的开发:点亮板子上的LED。

这个测试相对还是比较简单,主要是按键输入,LED指示和UART的打印。

做完一些基本的测试之后,本次就来做一个更酷炫的LED灯——WS2812B灯。



  • 测评8:

传统都是用GPIO的高低电平来实现流水灯。这次用PWM来实现呼吸的流水灯。

本次实验使用i2c硬件、阻塞式的实现驱动。AT32F423的总线也可以用中断、DMA的方式来驱动,这样占用CPU的资源更小,传输速度更快。


今天在调试spi驱动TFT屏,发现spi的硬件spi时钟时序与软件的时序的波形是有大的差别。

用AT32F423的ADC,可以实现一个单片机对应测量24路电压。并且可以通过设定正常电压范围,就可以实现智能的电压监测,对于异常情况可以通过多种途径进行报警提示,后台数据记录等。



  • 测评9:

今天测试一下基于UART的MODBUS-RTU,AT32F423多大8路UART,做工业仪表是个不错的选择。

AT32F423包含一个USBHOST外设,评估板也引出了USB主接口,正好可以用来导出数据到U盘。



  • 测评10:

从AT32 Work Bench软件上看,定时器一共有15个,其中IRTMR, 用于产生驱动红外 LED 的 IR_OUT 信号,进而实现红外控制功能。

先设计一块arduino 的转接板。后面再根据芯片设计一个自有接口的核心板来测试更多的功能。

为AT32F423设计自有接口的核心板时,先对外设功能、引脚复用进行设计。

f423的串口配置中,增加了RS485的硬件流控功能,不需要再手动用代码去修改方向了。但我的485电路上已经设计成了自动换向,所以,这部分也不再配置了。



  • 测评11:
进行了USB从机的测试。

利用USB虚拟串口进行数据转发服务。

测试USB主机功能,读取U盘信息并进行文件操作。



  • 测评12:

来快速构建一下关于AT-START-F423评估板的开发环境,这里笔者采用Keil5为例,至于官方主推的“AT32_IDE_V1.0.06_Linux-X86_64”工具,后续有时间再体验。  

使用DS18B20作为外设,通过单线式通讯方式,采集周围环境的温度,并通过串口打印当前的温度值。

本节在上期的基础上,加入了驱动OLED显示部分的功能。



  • 测评13:
点亮LED

利用F423串口打印出ARTERYF423。

利用F423串口打印ADC温度。



  • 测评14:




  • 测评15:
手头有1.54方屏的 ST7789驱动,正好打了板子,可以试一下移植LVGL,连接了硬件的SPI,用硬件SPI和SPI+DMA两种方式驱动,连接显示板。



  • 测评16:
本文主要内容就是使用AT-START-F423开发板连接CMT2300A,进行单向通讯。



  • 测评17:
用于无刷电机驱动,该板所带的高速adc用于三相电流采集,实测效果不错。



  • 测评18:
这次的评测是通过USART2与PC端进行收发数据,将接收到的数据显示在OLED上,并且通过循环发送不同的数据点亮3颗LED。



  • 测评19:
本次移植的simpleFOC使用与官方完全不同的技术路线,实现云台电机的精准控制。



  • 测评20:
本次主要使用通用定时器TMR2产生PWM输出,驱动无源蜂鸣器。无源蜂鸣器模块正常供电后在IO引脚输入2~5K频率的方波蜂鸣器响,否则不响。



  • 测评21:
评测中完全基于AT32F423 START开发板进行设计和思路验证。



  • 测评22:
现对F423的USB设备库的使用和大家分享一下。



  • 测评23:
首先按自己的风格新建个工程,实现基本外设SPI,UART,LED等外设,然后基于SPI实现2.8寸的LCDTFT,LCD正常显示后实现NES模拟器。



  • 测评24:
本次要做的也就是ADC采样并通过串口上送数据。



  • 测评25:



  • 测评26:



  • 测评27:



  • 测评28:



访问雅特力AT32 MCU论坛,可查看更多开源作品。

使用特权

评论回复
mmuuss586| | 2024-1-28 14:33 | 显示全部楼层

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

661

帖子

22

粉丝