一、前言:
本次有幸成功参加极术社区联合灵动微电子组织的【灵动MM32F5270开发板试用】活动,让我有机会接触到灵动的MM32F5F5270开发板,作为一个业余的物联网硬件开发人员,真是莫大荣幸。因为本人主职是软件及物联网软件开发工程师,对硬件也是从同事那边偷学现卖的。不过这次的灵动MM32F5F5270开发板硬件同事讲配置相当豪华,例如包含有舵机的接口、还有电源供电接口及不同的传感器,不过有个他认为不好的就是供电和数据接口有点距离,另外没有集合物联网俱乐部E53 Interface接口,如果集合E53的接口这样可以更便捷地与扩展模板对接。不过这块板的设计和布局及细节都是彰显设计者的用心。
二、开发板介绍
好吧,我们还是来介绍一下开发板的相关参数。灵动MM32F5270开发板是搭载安谋科技“星辰”STAR-MC1处理器的全新高性能 MM32F5270 微控制器,这个MM32F5270 微控制器厉害了,曾经获得2022中国IC设计成就奖之年度最佳MCU,让我们一起目睹该开发板的真容吧。
该开发板的集成的了:
- 4KB L1 I-Cache,4KB L1 D-Cache
- 多达 256KB 内置 Flash
- 多达 192KB 内置 RAM(包括 32KB ITCM、32KB DTCM 和 128KB System RAM)
- 内置 QSPI 接口,支持程序在线执行(eXecute-in-Place,XIP)
- 内置 FSMC 并行存储器接口
- 2 个 12 位 SAR ADC,采样率高达 3MSPS,配置最高 24 个外部通道,支持最高 256 倍硬件过采样
- 2 个 12 位 DAC、3 个比较器
- 7 个 16 位定时器、2 个 32 位定时器
- 8 个 UART 接口(包含1 个 LPUART)、3 个 SPI 接口、3 个 I2S 接口、2 个 I2C 接口
- 1 个 USB OTG 全速接口
- 2 个 FlexCAN 接口
- 部分型号配置 10M/100M 以太网控制器
- 支持的温度范围为 -40℃ - 105 ℃
提供 LQFP144、LQFP100 和 LQFP64封装
真容相当豪华,就缺一个屏幕...三、上手体验
获得资格后,举办方以光速的速度发货,基本上第二三天就收到板子,至于开箱情况和开发环境的部署,我这里就不在一一复述,感兴趣的小伙伴可以翻翻之前的帖子。
由于刚好在做一个农业项目,所以手头上有一个雨滴传感器;那能否通过灵动MM32F5270开发板去获取雨滴传感器的数据呢?答案是肯定可以的。那怎么处理呢?请各位看官跟一起去看看如何对接这个雨滴传感器吧。。
1)首先给雨滴传感器做个介绍。
1、工作电压:3~5V
2、输出信号LED指示。
3、带有二极管反向保护
4、TTL电平输出
5、二级管反向保护~(防止电源接反了)
6、TTL输出有效信号为低电平.驱动能力100MA左右,可直接驱动继电器,蜂鸣器,小风扇,等等。
7、高电平驱动能力4MA左右
8、灵敏度可通过电位器调节
9、没有雨时候LED点亮输出为高电平,雨滴上去,输出地电平,LED灭
11、模拟量输出的电压0-3.5V之间
12、雨滴板和控制板是分开的,方便将线引出
13、大面积的雨滴板,更有利于检测到雨水
14、板子带有定位孔方便大家安装
15、控制板板子大小:31*20 MM
电路图
2)与开发板线路连接
由上面的资料我们知道该传感器的工作电压在3~5V,而我们的开发板也正好有该电压的输出,那就可以直接对接了,对接在哪了呢?那就只能看看开发板的电路图(当然开发板上也有标识,但一般都以电路图为准)。
以下就是我的接线图:
然后接上开发板的电源,OK两边都没冒青烟,且传感器的指示灯亮证明我们已经连接成功了。接下来就是对接数据线了。那数据线又该如何接呢?看电路得知黄色的就是GPIO排针,接上这里就可以了。哦,有一点要注意的最好用比较好的杜邦连接线进行接;因为有些小伙伴包括我都吃过连接线的亏,明明接上了程序也是好的,就是有时又有数据或干脆没数据折腾了一段时间后才发现是杜邦连接线接触不良导致,怨恨啊。。
一下就是我的GPIO接线图
我接在B11和B12的GPIO口上,当然你也可以按自己喜欢去接。
3)进行数据对接
物理线我们已经接好,并且确保各线都是通的;接下来我们就要处理程序开发了,程序开发也比较简单;只要按之前的环境部署安装好程序,直接弄个GPIO的例子,进行修改就可以,核心代码如下
#define RAIN_STATE() GPIO_ReadInDataBit(rain_PORT,rain_PIN)
#define rain_PORT GPIOB
#define rain_PIN GPIO_PIN_11
void rain_INIT(void)
{
printf("\r\rain_INIT======================>IN\r\n");
GPIO_Init_Type gpio_init;
gpio_init.Pins = GPIO_PIN_11;
gpio_init.PinMode = GPIO_PinMode_In_Floating;
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio_init);
printf("\r\rain_INIT======================>OUT\r\n");
}
好吧,还是看看我的成功视频吧。
https://www.bilibili.com/vide...
四、心得和体会
软件开发方面基本没什么问题,都是Keil的老常客;而MindSDK设置也非常不错,还带有不少的案例程序,是我等小白的福音。整个开发基本没有太多重新学习的成本,轻车熟路地滴花了大半天基本搞掂核心的功能。
最后很感谢极术社区与灵动微电子的信任,更感谢对本人给予帮助的各位看官。青山不改,绿水常流;感谢各位支持,期望下次还有机会参与社区的活动。