智能硬件william hill官网
直播中

罗阳

12年用户 14经验值
擅长:模拟技术 嵌入式技术 控制/MCU
私信 关注
[讨论]

【RedBear Duo试用体验】之 RedBear Duo 初体验

        2013年在seeedstudio上买过一块 Spark Core 开发板,作为物联网元年的产品,开发板上ti那块号称Smart (Link) Config 的WIFI芯片CC3000当时可谓红极一时。当时花了19.9美刀等了足足3个月才拿到板子。也许是缘分使然,无意间在电子发烧友william hill官网 看到Redbear DUO的试用活动,因为看着外形很像Spark core 所以在申请试用的时候顺便写了玩过spark core开发板之类的话,收到试用审核通过通知后查看Red bear Duo开发板资料才惊觉,原来Duo开发板是 Particle Photon开发板的衍生版,而Particle Photon正是Spark Core开发板的升级,歪打正着,这样一下子就解释了为什么我的第一次申请这么顺利了!

Spark Core 和 Redbear Duo合影。

使用前的准备
       Duo开发板自带一块博通的WiFi & BLE 芯片,可谓自带“云梯”,设计者也是将这一优点发挥到了极致,让开发人员可以没有编译器,没有下载器,所有的一切都交给Particle Cloud,写完的代码直接通过Particle Dev 等工具一键上云,编译-下载都在云上完成。但是,萝卜白菜各有所爱。自认为作为一个“资深”嵌入式开发人员本人并不喜欢这种方式,首先,对网络太过依赖;其次,少了编译-下载这个过程让我着实不习惯(算不算职业病啊?)。所以,我打算使用USB线进行下载。
1. 安装 Duo Application USB Driver
将Duo通过USB线与电脑连接,系统会提示安装USB驱动失败,如下图。

右击,感叹号的驱动,选择更新驱动,在官方提供的固件包中选择驱动并安装,如下图。


正确安装驱动后可以通过串口调试软件如:PuTTY等打开对应虚拟串口输入i或v查看Duo的设备信息。感觉这个驱动是使用Arduino IDE进行编程时要用到的,同时Redbear官方的一个叫做DuoSetupCLI 的命令行工具也要用到。下面是驱动正常安装后查询设备信息的截图:

2. 安装 dfu-util 驱动
升级固件和下载用户程序需要用到 dfu-util 工具,所以也需要安装dfu-util模式下的 u***驱动程序。首先,让Redbear Duo进入 dfu 下载模式(按住 setupreset 这两个按键,再松开 reset 按键并保持 setup 按键一直按住,观察RGB led灯变化,当出现 黄色 灯闪烁时放开 setup 按键,此时已经进入 dfu 模式了) 。进入 dfu 模式,电脑系统会提示安装USB驱动失败。这个暂时不用管,因为按照官方说明文档需要下载Zadig软件工具。下载完运行 Zadig 这个软件,并按照提示安装 "libu***K" 这个驱动,如下图所示:

固件升级及 DFU-Util 工具使用
要升级固件程序或者利用USB线进行用户程序下载需要在电脑上安装配置 dfu-util 工具,可以从dfu-util 官网 下载 Windows 系统版的安装软件,下载安装后需要配置dfu-util 的路径至系统环境变量,具体为:右击“ 我的电脑 ” --> “ 属性 ” --> “ 高级系统设置 ” --> “ 高级 ” --> “ 环境变量 ” , 在 path 键值对中填入安装的 dfu-util 目录路径,保存退出。如下图所示:

由于上一步我们已经将驱动安装完成现在可以在系统命令行工具下调用" dfu-util -l "打印设备的信息并验证工具是否配置好,正确的显示信息如下所示:

信息中的 2b04:d058 就是设备的 USB ID ,通过以上信息可以看出 Duo的存储被分为三块,具体可以查看Redbear 官网文档 FirmwareArchitectureOverview,里面有详细讲到Redbear Duo中内外存储的具体分配,其中如下图表,非常清晰的比对了各种模式下的存储分布:

在官方文档FirmwareDeploymentGuide中有详细的 dfu-util 使用介绍,这里总结如下:
  • -d : 指定DFU设备的USB ID。Duo 的 USB ID 是"2b04:d058"
  • -a : 指定要操作的存储器. Duo 有三种存储器类型。
    • 0 : 操作除bootloadr以外的内部存储空间
    • 1 : 操作应用程序 DCT 存储空间
    • 2 : 操作外部SPI flash存储空间
  • -s : 指定要操作的存储器的相对地址
  • -D : 指定要下载的 .bin 路径
  • -U : 指定要上传(保存)的 .bin 文件路径
  • :leave : 和上面的选项一起使用,用于使设备退出 DFU 模式, e.g. -s 0x80C0000:leave.
这里我们用的最多的就是更新固件和烧写下载用户程序了,具体命令如下所示:
  • 更新整个 DCT:
    dfu-util -d 2b04:d058 -a 0 -s 0x8004000 -D fac-dct-r1.bin
  • 更新 system part 1:
    dfu-util -d 2b04:d058 -a 0 -s 0x8020000 -D duo-system-part1-v2.4.0.bin
  • 更新 system part 2:
    dfu-util -d 2b04:d058 -a 0 -s 0x8040000 -D duo-system-part2-v2.4.0.bin
  • 下载用户程序: dfu-util -d 2b04:d058 -a 0 -s 0x80C0000 -D duo-user-part.bin

以上烧写程序时需要特别注意相对地址(即: -s 后面的值),若填写出错会使设备不能正常启动。以下是烧写系统固件时的截图:

玩转Arduino IDE
记得上一次用Arduino IDE已经是1年以前了,那会自己用Eagle CAD 设计了一块基于Atmega 644P 的 Arduino开发板,好像硬件和固件还是借鉴Microduino的。一直以为Arduino IDE 是开发 8 位 AVR的专属软件想不到Duo也能用。特别是新版的Arduino IDE 安装板子固件库的过程让我眼前一亮,记得以前安装需要下载板子的固件库并手动安装,现在只需要联网并点击下载安装就能一步到位(有点像Eclipse IDE),真的很方便。按照 Redbear 官方的文档说明,下载 Arduino 安装文件,安装后打开 Arduino IDE,分别选择 "文件" -> "首选项" 在弹出的菜单中填入redbear提供的开发板固件包地址:" https://redbearlab.github.io/arduino/package_redbear_index.json ", 保存后,再分别选择 “ 工具 ” -> “ 开发板管理器 ”,在弹出的菜单中找到 Redbear Duo ,并点击安装,如下图所示:

好了,有了IDE终于可以“动真格”了,首先来个点灯程序,在Arduino IDE 中分别选择“工具” -> “Readbear Duo (Native USB Port)”,然后在“文件” -> “示例” 中找到Duo 的 Blink 点灯程序,代码如下:


  1.         #if defined(ARDUINO)
  2.         SYSTEM_MODE(SEMI_AUTOMATIC);
  3.         #endif
  4.         
  5.         int led1 = D0;
  6.         int led2 = D7;
  7.         
  8.         void setup() {
  9.           pinMode(led1, OUTPUT);
  10.           pinMode(led2, OUTPUT);
  11.         }
  12.         
  13.         void loop() {
  14.           digitalWrite(led1, HIGH);
  15.           digitalWrite(led2, HIGH);
  16.         
  17.           delay(1000);
  18.         
  19.           digitalWrite(led1, LOW);
  20.           digitalWrite(led2, LOW);
  21.         
  22.           delay(1000);
  23.         }

有了Arduino IDE 的支持,编译,烧写,一气呵成!想掉链子都难啊!
写到这,不得不佩服 Redbear 团队的用心。首先,文档写得很是详细。虽然 Redbear Duo 作为 Particle Photon的衍生版但是看完 Particle 官方的 Photon 文档发现并没有Duo的文档详细,一些在Photon中没讲明白的地方在Duo中都能很好的补充。其次,Redbear 的官方william hill官网 很活跃,各种问题无论大小都能在1天内得到回答,我在开始使用过程中遇到过烧完程序Duo进入SOS模式的情况,抱着试试的态度用蹩脚的英文在上面试着提了一问,结果马上就得到答复并很快得到解决。作为Redbear Duo 的初次体验,只能写到此了。

参考资料


回帖(7)

michael_llh

2016-8-25 09:35:34
不错,写的挺详细的!
举报

罗阳

2016-8-25 10:59:45
引用: michael_llh 发表于 2016-8-25 09:35
不错,写的挺详细的!

谢谢,我会再接再厉的。为这篇博文憋了老些天了,真是“看花容易绣花难”啊!感觉能在william hill官网 发帖都是好样的!
举报

michael_llh

2016-8-25 11:09:04
引用: lyphotoes 发表于 2016-8-25 10:59
谢谢,我会再接再厉的。为这篇博文憋了老些天了,真是“看花容易绣花难”啊!感觉能在william hill官网 发帖都是好样的!

恩呢,加油!
举报

张永恒123

2016-8-28 14:47:59
您好,我也收到了这个开发板但是我什么都不了解,对这个开发板的开发环境什么都不懂从哪学起啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分