国产MCU专栏 第83期:雅特力AT-START-F405开发板测评笔记49篇,速来围观~
*阅读说明:以下排名不分先后,详细评测内容、过程及源码资料等请戳原链接查看。
该项目基于AT-START-F405 V1.0 板载了AT32F405RCT7-7芯片,外设配置LED灯,按钮,两组USB type-C和Type-A的连接器。 并自带自带嵌入式调试/烧录工具AT-Link-EZ。 外围只需要简单的IR模块+IR遥控就可以搭建一个简易的基于红外控制的usb键盘。
此次使用RT-Thread来实现驱动OLED屏,全程序使用rtthread来生成驱动,自己添加的代码非常之少。这样可以让开发者可以快速的实现低层驱动,把自己的主要精力放在如何实现业务需求之上。同时可以实现不同的平台快速移植。
使用RT-Thread来创建一个可以实时显示时间、温湿度的桌面。AT32F405有RTC的外设,可以实时的实现RTC功能。
使用雅特力的图形化配置工具AT32 Work Bench V1.0.07,这配置工程,并驱动LCD屏ST7735。
在串口助手中,可以看到两个任务按设计的运行打印出了日志,同时两个LED也可以周期的闪烁。
雅特力的开发板没的说,简洁明快,开发工具也给力。老规矩,先搞通GPIO口的程序。为了方便设置GPIO口,从官网下载了例程,从GPIO有关的例程学起。
开发板提供的GPIO中,我使用GPIO口模拟方式,连接GXHT-30温湿度传感器,其中PC9作为SCL使用,PC7作为SDA使用。 主程序在初始化完各关联设备后,每间隔1秒钟,温湿度启动传感器一次,并读取结果显示到TFT显示屏上。
在完成显示部分和温湿度传感器部分的工作后,追加水位检测传感器和抽水马达、加湿器模块。
此款显示屏是从某宝购买的,型号是 MSP3223,是一款3.2寸IPS彩色液晶显示模块,支持电容触摸。显示模块采用4线制SPI接口,只需要5个IO即可显示显示,240x320标清分辨率,可应用于各种需要屏显功能的产品。
LVGL是最流行的免费和开源嵌入式图形库,可为任何MCU, MPU和显示类型创建漂亮的 UI。
采用 AT-START-F405 开发板+雷达模块,检测人体存在、运动、微动感应信息,把检测结果显示在GUI上。
编译并烧录,完成点灯。
开发板上的ATLink有串口功能,连接到了F405的PA9和PA10,可以直接用板载的ATLink调试串口功能。
首先来配置I2C,在AT32 WorkBench中开启I2C1,这里可以直接设置I2C的各项参数。
官方例程提供了一个基础的USB存储设备读写例程,接下来在这个例程的基础上实现一个简易的TXT阅读器,功能如下: 插入U盘后列出U盘中的TXT文件,点击按键选择文件,长按打开文件显示文件内容, 文件打开后,点击按键翻页,长按关闭文件返回文件列表 打开msc_only_fat32这个例程 ,添加之前的LCD驱动到例程中
OLED屏其本质也是LED,所以并不比点亮LED难多少,这次就来点个OELD吧。
前面测试了最基本的IO、串口、SPI等等,测多了开发板你就知道了,工程模板给你已经开了很多很多功能了,无外乎就是开关个配置复制复制修改修改代码。所以直接一步到位测一下USB,用的是host-hid demo,可以识别USB鼠标和键盘设备。
本篇讲述AT-START-F405开发板串口打印功能,其在我们平时调试开发中起到日志作用。
本篇讲述AT-START-F405开发板FreeRTOS系统移植运行。由于官方已经做好了demo,这里主要讲下移植与系统运行测验。
本篇讲述AT-START-F405开发板点亮OLED。
(1)本文首创在裸机环境中bringup whetstone benchmark,并在AT32F405平台上做了测试 (2)就whetsone测试工具而言,cortex-m4单精度硬浮点的性能可达到单精度软浮点的11倍左右; (3)开启cortex-m4硬浮点,对双精度浮点运算没啥帮助; (4)就whetsone测试工具而言,cortex-m4单精度硬浮点的性能可达双精度浮点的21倍左右。
本文充分利用ThreadX自身的cmake构造工程,杜绝源码重复拷贝,最小化源码改动,在AT32F405平台成功移植了ThreadX RTOS。
本文特别之处在于linux下用cmake模板环境搭建的coremark测试工程,坛子里其它移植都是用IDE的,也算是新颖性吧。
官方推荐用AT32_Work_Bench来生成初始化代码,那这里的第一个工程就用此工具来生成。
AT32F405带一路CAN,支持CAN2.0B。本文介绍如何在AT32F405上使用CAN功能。
介绍如何在AT32F405上实现USBACM设备。
此次借助雅特力官方主推的“AT32 Workbench图形化配置软件”搭建点灯工程。
就官方提供的“AT32F402_405_Firmware_Library_V2.0.6.zip”工程示例包,展开此次串口通讯的话题。
来说一下自己的对雅特力图形界面的一些看法,优缺点。
基于USB HID协议,制作触摸屏驱动板;触摸芯片为FT5406,支持最多5点触摸。
成功配置好开发环境,并点亮了led。
点灯不能停,那就做个usb模拟串口控制led。 USB虚拟串口,简称VCP,是Virtual COM Port的简写,它是利用 USB的 CDC类来实现的一种通信接口。我们可以利用USB功能,来实现一个USB虚拟串口,从而通过USB,实现电脑与单片机的数据互传。
(1)IO控制,简单的流水灯不再赘述。 (2)串口控制台,主要用了实现运行时通过串口交互数据。控制台使用板载调试器的串口。
AT32F405支持QPI外设,挂载FLASH可以方便存储设备日志和历史数据。 测试一下QPI操作FLASH的速度,板载16MB SPI-FLASH。
TinyUSB是一个用于嵌入式系统的开源的跨平台USB协议栈,协议栈中包含了主机端及设备端的协议栈,由于不使用动态内存分配以及采用阻塞所有中断事件,在非ISR任务功能中处理中断事件的设计方式,所以此协议栈的内存安全性及线程安全性极高。
我所在的公司是做图像传感器的感存算一体的芯片,所以做调试工具的时候要用到USB2.0把图像处理结果输出至上位机进行显示,观察计算结果。而且又用到QSPI,一直在选择一个合适的主控。有幸试用国产雅特力AT32F405的芯片,把这段时间试用和调试过程遇到的问题做个总结和分享。
目前已实现:使用USART1-SX1276无线LoRa模块、OSPI-W25Q128文件系统、GPIO-LED状态指示灯、UART-调试和打印、USBOTG1-上位机通讯等。
这次评测基于DIY小项目,目标是做一个示波器电路,选择国产的高速ADC和DAC,测试看看AT32F405能否达到要求。
这里说明一下本项目设置: 引脚分布PA0~PA9为ADC数据输入,PB0~PB7为DAC数据输出,SPI2驱动LCD,USART1和usb作为保留的通信接口,TMR2_CH4作为背光控制,TMR10_CH1和TMR11_CH1作为AD和DA的时钟,PC13~PC15作为按键输入。
通过本程序来获取连接到I2C总线上的外围设备,实验使用的是地址为0X78的OLED。
本次使用硬件I2C来驱动这个常见的显示设备。
|