Veiko 发表于 2018-1-1 21:34

【NUCLEO-L4R5ZI评测】——开箱体验

<div class='showpostmsg'> 本帖最后由 Veiko 于 2018-1-2 18:35 编辑

1. 开箱&产品展示&整体感受
图1 正面包装靓照图2 NUCLEO-64    很高兴能够在元旦这一天收到eeworld寄来的STM32L4R5 Nucleo-144板卡(内心默念这是论坛送的元旦礼物10次)。打开层层的保护包装,如上图所示的赤裸裸的板卡就呈现在我眼前,依旧如Nucleo-64那样看起来简洁大方(实际上增加了一些单元,比如User_USB接口)。NUCLEO-144整体看起来更加大气,并且因为延续了NUCLEO一贯的“短接”风格,使用起来相当地灵活,要测试不同的功能,只需要使用0Ω电阻短接相应的跳线或者直接用锡焊上即可。      NUCLEO产品包装上比较人性化的一点是,每个包装底部都是一张资源简介(2MBytes的Flash...2MBytes的Flash...2MBytes的Flash;640Kbytes的SRAM...640Kbytes的SRAM...640Kbytes的SRAM...;重要的资源各说三遍),此次收到的板卡也不例外,上图的左边已经对该板卡的资源做了一个简要的说明,把开发板拆出来后发现在原来被开发板盖住的部份是板卡的引脚分布图,这样在开发的时候不用把板子再翻过来,直接看这张图也可以了: 图3 NUCLEO-144引脚分布图    同时,把纸片翻过来,其背面也说明了开始使用开发板的简要流程以及资源查阅网址,可以说基本上能让有一定嵌入式基础的人”傻傻”地开始学习或使用。图4 开发板使用说明    记忆中以前的NUCLEO开发板都是使用的Mini-USB接口,虽然已以十分方便了,但是现在智能手机(Android)都是使用的Micro-USB接口,且NUCLEO开发板是不配备USB线的,所以用户还要自已准备Mini-USB线.这次的改变感觉很符合大部分”普通青年”的期望——我有Android手机数据线,我的开发板必须是Micro-USB接口的。并且Micro-USB选材也很讲究,显示出了大厂在细节上的不同。2. 板载资源详细介绍3. 简单的上电测试    对于以前接触过NUCLEO开发板的同鞋们来说,这个并不难,只需要在操作系统安装对应的驱动(ST-Link V2-1驱动)即可,同时如果你要使用虚串接口,最好提前把虚串的驱动也一并安装好,然后就只需要一根Android手机数据线即可将开发板与你的电脑相连进行程序下载和仿真了。使用NUCLEO-144的项目开发会在后面的贴子里详述(包括低功耗部份的测试),这里就只进行简单的上电测试,板卡默认有一个闪灯的程序,使用Android数据线连接后整个开发板状态如下图:


    再次谢谢eworld,让我在元旦完成计划的第一步,这一年又要被MCU折腾了:);现在完成了申请时计划的第一步,后续的项目开发和测试计划在3周左右完成,谢谢{:1_99:}!</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Veiko 发表于 2018-1-5 16:15

低功耗测试

本帖最后由 Veiko 于 2018-1-5 19:23 编辑

Sleep模式测试:static/image/hrline/4.gif

    使用3.3V给芯片供电,板卡上面要断开的连接有: SB131,SB130,SB172, R40,R39,SB134,SB135,SB142,SB143,SB197,JP4,SB132,SB124:
    不使用的引脚全部置为模拟输入,以降低功耗:



图1 Cube生成代码时关于引脚的配置    实测结果:522.7uA@3.3V@SYS_CLK=4MHz in sleep mode:

代码:
SleepMode:263uA @ 3.3V @ SYS_CLK=100Kstatic/image/hrline/4.gif


工程文件: StopMode_0: SYS_CLK=4MHz,VDD=3.3V,I=236uA
static/image/hrline/4.gifint main(void)
{
LL_Init();
SystemClock_Config();
MX_GPIO_Init();

/* USER CODE BEGIN 2 */
      SCB->SCR |= 0x04;
      PWR->CR1 &= ~(0x00000007ul);
      //PWR->CR1 |= 0x01;
while (1)
{
                __WFI();
}
}
    实际只有235.5uA左右听电流(后面取了仿真用的三个跳线帽测得的实际值)!!!StopMode_1: SYS_CLK=4MHz,VDD=3.3V,I=82.5uAstatic/image/hrline/4.gifint main(void){
LL_Init();
SystemClock_Config();
MX_GPIO_Init();

/* USER CODE BEGIN 2 */
      SCB->SCR |= 0x04;
      PWR->CR1 &= ~(0x00000006ul);
      PWR->CR1 |= 0x01;
while (1)
{
                __WFI();
}
}

StopMode_2:SYS_CLK=4MHz,VDD=3.3V,I=2.84uA
static/image/hrline/4.gif
int main(void)
{
LL_Init();
SystemClock_Config();
MX_GPIO_Init();

/* USER CODE BEGIN 2 */
      SCB->SCR |= 0x04;
      PWR->CR1 &= ~(0x00000005ul);
      PWR->CR1 |= 0x02;
while (1)
{
                __WFI();
}
}


StandbyMode:SYS_CLK=4MHz,VDD=3.3V,I=0.145uA
static/image/hrline/4.gif
int main(void)
{
LL_Init();
SystemClock_Config();
MX_GPIO_Init();

/* USER CODE BEGIN 2 */
        SCB->SCR |= 0x04;
        PWR->CR1 &= ~(0x00000004ul);
        PWR->CR1 |= 0x03;
while (1)
{
                __WFI();
}
}
万用表太次了,测更低的怕误差太大,误了大家,所以Shutdown模式就不继续测了,但从上面的结果看出基本和ST手册描述一致,因此能够得出结论是ST的这款L4+太强大,心脏不好的可以大量使用,让你心情一下子就变好了:victory:,最后上传一个芯片手册,大家到6.3.5节去看能耗相关的测试参数指标吧,很不错!!!






Veiko 发表于 2018-1-8 17:49

本帖最后由 Veiko 于 2018-1-8 18:08 编辑

USB例程【JoyStickMouse】

static/image/hrline/1.gif
第一步:修改电路跳线
    根据原理图说明,USB接口为设备端时,取掉SB198和SB200,接到SB199和SB201上,具体看下图:



以前开发USB使用ST提供的USB库提方便的,今天才知道还有更方便的,Cube集成了USB库,对于STM32L4R5来说有Host和Device库,这里演示了一个JoyStickMouse的功能,基本上所有代码都在Cube里面点击生成,然后主循环小改一下(增加了USB状态判断和数据发送)就OK了:



当然,对于STM32系列带USB接口的芯片来说,USB功能是比较强大的,有很多个端点,例程中只有到EP0RX,EP0TX,和EP1,在有需求的情况下,你完全可以做成USB复合设备(比如2个或3个USB转串/USB鼠标+USB键盘+USB转串:victory:),更详细的这里不多说,网上前辈们的资料也是一摩尔多。。。

Veiko 发表于 2018-2-28 16:41

有一段时间没有更新了,今天更新一个比较简单的程序:STM32L4R5ZI的I2C1通过DMA方式对AT24C08进行读写的例程,引脚是PG13和PG14.
由于用到了PG端口,因此要打开VDDIO2,这个就请参照STM32L4R5ZI的参考手册以及LL库说明来操作了,具体的也可以看我I2C初始化部份的代码。
还有一个要注意的就是DMA的初始化,l4R5的DMA1初始化时不光要打开DMA1的外设时钟,还要打开DMAMUX1时钟,不多说了,车要开了,快上车,代码写得比较急,主要是实现功能,可能有一小部份多余的代码,大家自行审验哦,反正功能是没有问题的,挺好用:sexy:


Veiko 发表于 2018-1-1 21:36

本帖最后由 Veiko 于 2018-1-4 11:43 编辑

例程:
(1) SPI从机数据发送(Keil 5 project)

Veiko 发表于 2018-1-1 21:36

占楼项目发布:lol

Veiko 发表于 2018-1-1 21:37

本帖最后由 Veiko 于 2018-1-2 09:22 编辑

占楼总结:lol

strong161 发表于 2018-1-1 22:58

祝元旦快乐,新年新气像

Veiko 发表于 2018-1-2 09:34

strong161 发表于 2018-1-1 22:58
祝元旦快乐,新年新气像

谢谢,同乐同乐!
页: [1]
查看完整版本: 【NUCLEO-L4R5ZI评测】——开箱体验