国产MCU之光 第36期:爱“折腾”!雅特力 AT-START-F407 趣玩笔记合集
*阅读说明:以下排名不分先后,详细评测内容、过程及源码资料等请戳原链接查看。
测试了一下bsp包中的网络通信HTTP server服务,首先需要修改IP地址。开发板网口链接路由器,在电脑浏览器输入开发板的IP地址,就可以看到HTTP Server效果了。
本次测试的是I2C外设,测试使用了ROHM的传感器,光照度传感器RPR-0521RS,气压传感器BM1383AGLV,地磁传感器BM1422AGMV。这几个传感器都是I2C接口,可以一起接I2C测试。
这次试了下使用RTT-Studio开发I2C设备方式读取传感器。
本次测试了一下开发板的以太网外设。通过RT-Thread Studio打开新建基于RT-Thread的网络组件工程。
之前在另一款单片机上实现了VGA显示器上玩俄罗斯方块,那就移植到AT-START-F407开发板上试试。
AT32F407VGT7无疑是一款强大的MCU,对比STM32F4系列,有价格上的优势。因其大SRAM大FLASH的设定,应用在物联网方面应该是一个较好的方向。如果一定要应用在电子琴上,也有一些不足的想法,AT32F407VGT7外配SPI FLASH存放音色采样波表,根据硬件设计实时反馈进行FFT运算,最后利用芯片内DAC输出,配合好一点的功放和喇叭,再实现些点灯跟弹功能等等,市面上500元以内的电子琴主控估计还没有AT32F407VGT7来得强大。
板载的外设资源稍显单薄,为此首要的任务是为它建立一个人机交互的窗口,这里是使用Arduino接口来接入一个I2C接口的单色OLED 屏。由于显示屏的引脚与Arduino接口存在差异,故将OLED屏的方向做了180度的旋转,以免连线的麻烦。
AT32F407内配有RTC 计时器,使用它可以轻松地实现电子时钟的功能,在OLED屏的配合下。
DHT22是一种数字式温湿度传感器,它以单总线的方式来工作,因此使用它进行温湿度检测比较简单,且节省I/O资源。
BH1750是一种数字式光强度传感器,它以I2C接口的方式来工作,因此它需占用2个I/O口。
通常的数码管显示是靠刷新来维持显示的,而有一种数码管显示模块是以Max7219为驱动芯片的,以串并转换的方式工作的。该显示模块能同时显示8位数字,相较于常规的数码管显示具有无需刷新维持的优势,且占用的I/O资源比较少。
在AT32F407的A/D转换器中配置了内部的温度检测通道,利用它与OLED屏相配合,可以轻松地实现一个片内温度检测器。
AT32F407的串行通讯功能是很强的,共有8个串行通讯口,其中有4个USART和4个UART。 要对AT32F407的串行通讯功能进行初评,其内容比较多,这里不妨为大家提供一个相对新颖些的,就是用AT32F407的通讯功能同MicroLab的组件驱动结合起来使用,以轻松地构建一个分布式应用系统。 该测试是在MicroLab的组件画布上制作一个有进度球、电池和数码管的界面。 然后以AT32F407的程序通讯功能向其发送控制数据以驱动组件的状态变化。
彩色OLED屏相较于TFT屏,其显示屏的尺寸虽小却也同TFT屏一样具有了丰富的色彩表现力,该显示屏的接口为SPI方式。
在AT32F407的开发板上较重要的外设要数W25Q128了。 通过对W25Q128的读写测试,可以为它的应用打下良好地基础,如来构建字库或图库灯。
TFT显示屏有多种类型,常见有2.2 /2.4/2.8/3.2/3.5/4.0寸等,多采用SPI接口工作。 这里介绍的2.8寸显示屏也是采用SPI接口,且带有触摸的功能。 为了便于移植使用,这里以I/O口来模拟SPI接口来驱动它。
使用rtthread配合雅特力的开发,显然上手简单到令人发指,所以第一个帖子怎么写都像是灌水。那么,很有必要继续.......灌水,因为使用本次评测的板子的开发就更容易了。因为2021年2月1日,rtthread又更了一版,直接使用BSP支持这款AT-START-F407。 本帖介绍如何快速入手rtthread,使用isp tool,对照查找开发板的引脚和接口配置。
本次手势识别使用的是 APDS 9930,会使用到i2c和外部中断,同时还封装了一些其他常用外设及模块后续会陆续上传。在本次封装的过程中又学习到了不少以前没有注意到的知识。
对at的spi功能就行了测试,连续弄了2天的都没有能够正常读写flash。使用stm32读写完全没有问题,但一使用at32就不能正常读写,很容易可以把id读出来了却发现不能够对扇区读写数据。使用逻辑分析仪也发现波形有问题,一度怀疑是at32单片机的问题,经过仔细修改从发现了结构体配置错误。
最近在调试spi时发现部分io不能正常使用,一直都没有找到原因,后来才想起部分io为调试接口。
对at的双重adc进行测试本来打算一上午解决的,结果弄了三天,adc+dma一直有问题,最后发现自己的果然是自己菜把函数写错了,但是改正之后依旧不正常,最后发现在程序跑飞了。
AT32F407带存储器保护单元(MPU),内建单周期乘法和硬件除法。 不同与一些51单片机或MSP430,在使用乘除法器时需要对相关寄存器进行操作,CoretexM内核的处理器时真实的把硬件乘法器关联到MUL中. AT32F407还内建浮点运算(FPU),具有DSP指令集。
|
都很厉害