御坂10032号 发表于 2024-5-23 20:41

SparkFun Pro nRF52840 Mini蓝牙开发板 开箱及其搭建开发环境

<div class='showpostmsg'> 本帖最后由 御坂10032号 于 2024-5-23 22:08 编辑

<p><span style="color:#e67e22;"><strong><span style="font-size:22px;">题外话</span></strong></span></p>

<p>大家好,很荣幸能够获取到这次来之不易的测评机会。由于快递原因我是在21号拿到这个板子的。 昨天研究了一下如何搭建开发环境。今天就整理了一下给大家做一个开箱和搭建环境的教程.</p>

<p>这篇报告包括以下两个部分:</p>

<ol>
        <li>开箱</li>
        <li>搭建开发环境(这款开发板实际上中文资料不是很多。所以在花费了一些时间来整理资料)</li>
</ol>

<p>&nbsp;</p>

<p><span style="color:#e67e22;"><span style="font-size:22px;"><strong>开箱</strong></span></span></p>

<p>&nbsp;</p>

<p><strong>正面照</strong></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>背面照</strong>:</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>这款开发板的内核时基于Arm Cortex-M4. 具有1MB的Flash 和 256K的Ram. 同时支持低功耗蓝牙。以及蓝牙5的Mesh. 同时支持USB模式。 外设提供了对UART 和 I2C以及SPI,ADC. PWM,RTC 和PWM的支持。<a href="https://www.sparkfun.com/products/15025" target="_blank">数据参考</a></p>

<p>&nbsp;</p>

<p>这款开发板还是非常小巧的,上电后需要手动将开关拨动到On。这时芯片才会正常工作,同时这个开发板提供了一个外部供电的小插槽,可以非常方便的使用电池供电,比如一节18650电池。电压范围在2.5到3.6V</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>我这里整理了一些官方资料的链接:</p>

<ol>
        <li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/nrf52840-breakout-mdbt50q-v10.pdf">Schematic</a>(原理图)</li>
        <li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/nrf52840-breakout-mdbt50q-v10.zip">Eagle Files</a>&nbsp;(工程文件)</li>
        <li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/nRF52840Mini_Graphical_Datasheet.pdf">Graphical Datasheet</a>&nbsp;(PIN 定义信息)</li>
        <li><a href="https://learn.sparkfun.com/tutorials/sparkfun-pro-nrf52840-mini-hookup-guide">Hookup Guide</a>&nbsp;(官方的一个入门指南介绍)</li>
        <li><a href="https://cdn.sparkfun.com/assets/learn_tutorials/8/2/0/Raytac_MDBT50Q.pdf">Datasheet</a>&nbsp;(MDBT50Q, 模组的数据手册)&nbsp;</li>
        <li><a href="https://github.com/adafruit/Adafruit_nRF52_Bootloader">Bootloader Source Code</a>&nbsp;(BootLoader 的源码)</li>
        <li><a href="https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK">Nordic nRF5 SDK</a></li>
        <li><a href="https://github.com/adafruit/Adafruit_nRF52_Arduino">Arduino Core for nRF Boards</a></li>
        <li><a href="https://github.com/adafruit/circuitpython/tree/master/ports/nrf">CircuitPython nRF Port</a></li>
        <li><a href="https://github.com/sparkfun/nRF52840_Breakout_MDBT50Q">GitHub</a></li>
</ol>

<p><span style="color:#e67e22;"><strong><span style="font-size:22px;">环境搭建</span></strong></span></p>

<p>&nbsp;</p>

<p>本文默认你已经安装好了Arduino IDE</p>

<p>&nbsp;</p>

<p>1- 打开Arduino IDE,在界面左上角点击<strong>文件,</strong>选择<strong>首选项,</strong>在<strong>其他开发板管理地址</strong>处新增如下开发板地址</p>

<pre>
<code>https://adafruit.github.io/arduino-board-index/package_adafruit_index.json</code></pre>

<p>2- 保存后重启Arduino IDE</p>

<p>3- 打开开发板管理器安装<strong>Adafruit nRF52 by Adafruit</strong>的支持</p>

<p>4- 不会觉得到这里就结束了吧?</p>

<p>5- Clone这个<a href="https://github.com/sparkfun/nRF52840_Breakout_MDBT50Q/tree/master" target="_blank">仓库</a>的所有文件到本地</p>

<p>6- 打开你本地安装的这个NRF52目录</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>7-&nbsp; 把你克隆仓库里的sparkfun_nrf52840_mini 文件夹拷贝到上述截图位置(上述已经拷贝好)</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>8- 编辑Nrf52下的Boards.txt</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>9- 在文件的底部加上下述内容</p>

<pre>
<code>#**********************************************
# SparkFun Pro nRF52840 Mini
#**********************************************
sparkfunnrf52840mini.name=SparkFun Pro nRF52840 Mini

# DFU Mode with CDC only
sparkfunnrf52840mini.vid.0=0x1B4F
sparkfunnrf52840mini.pid.0=0x002A

# DFU Mode with CDC + MSC (UF2)
sparkfunnrf52840mini.vid.1=0x1B4F
sparkfunnrf52840mini.pid.1=0x0029

# Application with CDC + MSC
sparkfunnrf52840mini.vid.2=0x1B4F
sparkfunnrf52840mini.pid.2=0x8029

# CircuitPython
sparkfunnrf52840mini.vid.2=0x1B4F
sparkfunnrf52840mini.pid.2=0x802A

sparkfunnrf52840mini.bootloader.tool=bootburn

# Upload
sparkfunnrf52840mini.upload.tool=nrfutil
sparkfunnrf52840mini.upload.protocol=nrfutil
sparkfunnrf52840mini.upload.use_1200bps_touch=true
sparkfunnrf52840mini.upload.wait_for_upload_port=true
#sparkfunnrf52840mini.upload.native_usb=true

# Build
sparkfunnrf52840mini.build.mcu=cortex-m4
sparkfunnrf52840mini.build.f_cpu=64000000
sparkfunnrf52840mini.build.board=NRF52840_FEATHER
sparkfunnrf52840mini.build.core=nRF5
sparkfunnrf52840mini.build.variant=sparkfun_nrf52840_mini
sparkfunnrf52840mini.build.extra_flags=-DNRF52840_XXAA {build.flags.usb}
sparkfunnrf52840mini.build.vid=0x1B4F
sparkfunnrf52840mini.build.pid=0x5284
sparkfunnrf52840mini.build.usb_manufacturer="SparkFun"
sparkfunnrf52840mini.build.usb_product="nRF52840 Mini Breakout"

# SofDevice Menu
# Ram &amp; ROM size varies depending on SoftDevice (check linker script)

sparkfunnrf52840mini.menu.softdevice.s140v6=s140 6.1.1 r0
sparkfunnrf52840mini.menu.softdevice.s140v6.build.sd_flags=-DS140
sparkfunnrf52840mini.menu.softdevice.s140v6.build.sd_name=s140
sparkfunnrf52840mini.menu.softdevice.s140v6.build.sd_version=6.1.1
sparkfunnrf52840mini.menu.softdevice.s140v6.build.sd_fwid=0x00B6
sparkfunnrf52840mini.menu.softdevice.s140v6.build.ldscript=nrf52840_s140_v6.ld
sparkfunnrf52840mini.menu.softdevice.s140v6.upload.maximum_size=815104
sparkfunnrf52840mini.menu.softdevice.s140v6.upload.maximum_data_size=248832

# Debug Menu
sparkfunnrf52840mini.menu.debug.l0=Level 0 (Release)
sparkfunnrf52840mini.menu.debug.l0.build.debug_flags=-DCFG_DEBUG=0 -Os
sparkfunnrf52840mini.menu.debug.l1=Level 1 (Error Message)
sparkfunnrf52840mini.menu.debug.l1.build.debug_flags=-DCFG_DEBUG=1 -Os
sparkfunnrf52840mini.menu.debug.l2=Level 2 (Full Debug)
sparkfunnrf52840mini.menu.debug.l2.build.debug_flags=-DCFG_DEBUG=2 -Os
sparkfunnrf52840mini.menu.debug.l3=Level 3 (Segger SystemView)
sparkfunnrf52840mini.menu.debug.l3.build.debug_flags=-DCFG_DEBUG=3 -Os</code></pre>

<p>&nbsp;</p>

<p>10 - 之后重启你的Arduino IDE,这时搜索SparkFun 你就可以看到这个Mini开发板了</p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><span style="color:#e67e22;"><span style="font-size:22px;"><strong>点灯:</strong></span></span></p>

<p>&nbsp;</p>

<p>接下来简单的带大家点亮一下LED, 首先根据原理图得知这个USer的LED被连接到了PIN7上。我们只需要给7号PIN一个高电平,那么就可以点亮这个LED</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>幸运的是官方也给出了demo,按照下面的步骤即可找到官方的Blink步骤。</p>

<p>&nbsp;</p>

<p></p>

<p>&nbsp;</p>

<p>此时你如果打开这个代码点击LED的Pin定义你会发现,这个PIN定义已经已经被改成了PIN7, <span style="color:#e74c3c;"><strong>注意一定要在开发板管理器中先选中这个开发板,如果你不选中的话,那么这个PIN定义可能会变成其他开发板的LED定义</strong></span></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>此时烧录完毕的话你会发现LED开始闪烁。</p>

<p>&nbsp;</p>

<p>8e8fdd2a032919e48a08677ffc15f121<br />
&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:22px;"><span style="color:#e67e22;"><strong>总结</strong></span></span>:虽然官方给出了搭建教程,但是由于中文资料较少,搭建起来还是有一定的难度的。需要一定的英语阅读能力。尤其是在拷贝txt文件内容的时候容易出错。我上述已经修改好了需要拷贝的文件内容,按照上述教程就不会出错</p>
</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>
页: [1]
查看完整版本: SparkFun Pro nRF52840 Mini蓝牙开发板 开箱及其搭建开发环境