描述
<div>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">* 1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">基于</span>SF32LB52的小智ai</p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">*2、项目属性</h3>
<hr>
<p style="line-height:1.8;">#第十届立创电赛#SF32LB52小智ai</p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">* 3、开源协议</h3>
<hr>
<p style="line-height:1.8;">GPL3.0开源协议;</p>
<p> </p>
<h3 style="line-height:1.8;">*4、硬件部分</h3>
<hr>
<p>主控用的是 [立创·开源SF32LB52模组](https://item.szlcsc.com/45024582.html),一款蓝牙低功耗芯片,频率 240MHz,集成 8MB PSRAM 和 16MB Flash,支持锂电池直接供电。BLE 连接功耗(1S间隔)仅需 7μA,BT连接功耗(1S间隔)仅需 10μA,BLE + BT 双连接功耗比同行单BT连接功耗还能降低 60%。</p>
<p>模组支持 BT PAN 功能可以直接连接手机上网,相比 WIFI 功耗更低,更加适合电池场景,带屏连接功耗仅 30mA。</p>
<p>在本项目中,直接让电池电源直连模组的电源输入引脚 VSYS。这里需要注意该模组电压范围要求 3.7V~4.7V。3.3V 和 5V 供电都不行。</p>
<p>模组的 VDD33_VOUT2 是由软件控制输出的,需要芯片正常启动后才有输出3V3。</p>
<p>主控用的是 [立创·开源SF32LB52模组](https://item.szlcsc.com/45024582.html),一款蓝牙低功耗芯片,频率 240MHz,集成 8MB PSRAM 和 16MB Flash,支持锂电池直接供电。BLE 连接功耗(1S间隔)仅需 7μA,BT连接功耗(1S间隔)仅需 10μA,BLE + BT 双连接功耗比同行单BT连接功耗还能降低 60%。</p>
<p>模组支持 BT PAN 功能可以直接连接手机上网,相比 WIFI 功耗更低,更加适合电池场景,带屏连接功耗仅 30mA。</p>
<p>在本项目中,直接让电池电源直连模组的电源输入引脚 VSYS。这里需要注意该模组电压范围要求 3.7V~4.7V。3.3V 和 5V 供电都不行。</p>
<p>模组的 VDD33_VOUT2 是由软件控制输出的,需要芯片正常启动后才有输出3V3。</p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">*5、软件部分</h3>
<hr>
<div>
<h3>烧录和使用方法</h3>
<h4>前置准备</h4>
<div>在开始之前,我们需要进行一些前置工具,请确保完成以下的步骤:</div>
<ol>
<li>
<div>sftool: 用于SF32系列SoC芯片的烧录</div>
</li>
<li>
<div>下载固件: 开发板的固件位于 <a href="https://github.com/78/xiaozhi-sf32/releases" target="_blank">https://github.com/78/xiaozhi-sf32/releases</a>,我们下载最新release版本的压缩包。需要注意的是,我们一共需要<code>bootloader.bin</code>、<code>ER_IROM2.bin</code>、<code>ER_IROM3.bin</code>、<code>ER_IROM1.bin</code> 和<code>ftab.bin</code>这五个文件。 建议先下载sftool工具,下载完成后将这些文件放在sftool文件夹中,与sftool.exe同一路径。</div>
</li>
<li>
<div>开发板对应固件:小汤圆直插版(立创训练营): sf32lb52-xty-ai-tht.zip</div>
</li>
</ol>
<h4>下载sftool</h4>
<div>sftool 是一个开源软件,可以在<a href="https://github.com/OpenSiFli/sftool" target="_blank">GitHub</a> 上找到它的源码。不过我们现在并不需要关心源码,只需要下载编译好的二进制文件即可。</div>
<div>我们可以在<a href="https://github.com/OpenSiFli/sftool/releases" target="_blank">Release</a> 页面中找到最新版本的sftool,其中最靠前的版本并且有着<code>Latest</code>绿色标签的就是最新版本。例如我现在的最新版本上<code>0.1.5</code>,看起来是这样的:</div>
<div><img src="//" alt=""></div>
<div>接下来我们需要选择合适的版本。我们需要根据自己的操作系统和CPU架构来选择合适的版本。sftool支持Linux、Windows和MacOS等操作系统,支持x86_64和aarch64等CPU架构。例如我们是<code>Windows 64bit</code>操作系统,我们就应该选择<code> sftool-0.1.5-x86_64-pc-windows-msvc.zip</code>这个版本,同样的,如果是<code>Windows 32bit</code>的版本,我们就应该选择<code>sftool-0.1.5-i686-pc-windows-msvc.zip</code>这个文件镜像下载。特别的,如果您找不到您系统的文件,那可能需要点击一下<code>Show all assets</code>按钮。</div>
<div><img src="//" alt=""></div>
<div>下载完成之后,我们需要解压这个文件,解压之后我们会得到一个命令行工具,在windows上它的后缀是<code>.exe</code>(sftool.exe),在Linux和MacOS上没有后缀(sftool)。需要注意的是,windows的资源管理器可能会忽略文件的后缀名,因此看起来可能也是<code>sftool</code>。</div>
<div>
<div>
<div>
<div>对于中国大陆地区用户,可以无法访问<code>Github</code>,因此可使用国内镜像加速链接。例如原链接为:<code>https://github.com/OpenSiFli/sftool/releases/download/0.1.5/sftool-0.1.5-x86_64-pc-windows-msvc.zip</code>,那么我们就将<code>github.com</code>替换为<code>downloads.sifli.com/github_assets</code>,变成<code>https://downloads.sifli.com/github_assets/OpenSiFli/sftool/releases/download/0.1.5/sftool-0.1.5-x86_64-pc-windows-msvc.zip</code>,就可以加速下载了。</div>
</div>
</div>
</div>
<h4>sftool 命令格式及使用方法</h4>
<div>sftool是一个命令行工具,它有一套自己的命令格式,一般的命令规则如下:</div>
<pre> </pre>
<div>sftool [选项] [选项值] [命令] [命令选项]</div>
<pre> </pre>
<h5>全局选项</h5>
<ul>
<li>
<div><code>-c, --chip </code>: 目标芯片类型 (目前支持SF32LB52)</div>
</li>
<li>
<div><code>-m, --memory </code>: 存储类型 [nor, nand, sd] (默认: nor)</div>
</li>
<li>
<div><code>-p, --port </code>: 串行端口设备路径</div>
</li>
<li>
<div><code>-b, --baud </code>: 闪存/读取时使用的串口波特率 (默认: 1000000)</div>
</li>
<li>
<div><code>--before </code>: 连接芯片前的操作 [no_reset, soft_reset] (默认: no_reset)</div>
</li>
<li>
<div><code>--after </code>: 工具完成后的操作 [no_reset, soft_reset] (默认: soft_reset)</div>
</li>
<li>
<div><code>--connect-attempts </code>: 连接尝试次数,负数或0表示无限次 (默认: 7)</div>
</li>
<li>
<div><code>--compat</code> : 兼容模式,如果经常出现超时错误或下载后校验失败,则应打开此选项。</div>
</li>
</ul>
<h5>写入闪存命令</h5>
<pre> </pre>
<div># Linux/Macsftool -c SF32LB52 -p /dev/ttyUSB0 write_flash [选项] <文件@地址>...# Windowssftool -c SF32LB52 -p COM9 write_flash [选项] <文件@地址>...</div>
<pre> </pre>
<h5>写入闪存选项</h5>
<ul>
<li>
<div><code>--verify</code>: 验证刚写入的闪存数据</div>
</li>
<li>
<div><code>-u, --no-compress</code>: 传输期间禁用数据压缩</div>
</li>
<li>
<div><code>-e, --erase-all</code>: 在编程前擦除所有闪存区域(不仅仅是写入区域)</div>
</li>
<li>
<div><code><文件@地址></code>: 二进制文件及其目标地址,如果文件格式包含地址信息,@地址部分是可选的</div>
</li>
</ul>
<h5>示例</h5>
<div>Linux/Mac:</div>
<pre> </pre>
<div># 写入单个文件到闪存sftool -c SF32LB52 -p /dev/ttyUSB0 write_flash app.bin@0x12020000# 写入多个文件到不同地址sftool -c SF32LB52 -p /dev/ttyUSB0 write_flash bootloader.bin@0x12010000 app.bin@0x12020000 ftab.bin@0x12000000# 写入并验证sftool -c SF32LB52 -p /dev/ttyUSB0 write_flash --verify app.bin@0x12020000# 写入前擦除所有闪存sftool -c SF32LB52 -p /dev/ttyUSB0 write_flash -e app.bin@0x12020000</div>
<pre> </pre>
<div>Windows:</div>
<pre> </pre>
<div># 写入多个文件到不同地址sftool -c SF32LB52 -p COM10 write_flash bootloader.bin@0x12010000 app.bin@0x12020000 ftab.bin@0x12000000# 其它同上</div>
<pre> </pre>
<h4>烧录固件</h4>
<div>使用<a href="https://docs.sifli.com/projects/xiaozhi/sftool.html" target="_blank">sftool工具</a>烧录固件,打开终端之后输入如下命令(Windows): !!!需要注意的是:命令中的 ./sftool.exe 中的斜杠,在不同操作系统中有不同的表现: windows是反斜杠,linux是斜杠。</div>
<div>下面是1.2.0-1.2.2版本的烧录命令:</div>
<pre> </pre>
<div>./sftool.exe -p COM3 -c SF32LB52 write_flash bootloader.bin@0x12010000 ftab.bin@0x12000000 ER_IROM2.bin@0x12A28000 ER_IROM3.bin@0x12228000 ER_IROM1.bin@0x12020000</div>
<pre> </pre>
<div>1.3.0版本则应该使用下列命令:</div>
<pre> </pre>
<div>./sftool.exe -p COM3 -c SF32LB52 write_flash bootloader.bin@0x12010000 ftab.bin@0x12000000 ER_IROM2.bin@0x12A28000 ER_IROM3.bin@0x12268000 ER_IROM1.bin@0x12020000</div>
<pre> </pre>
<div>
<div>
<div>
<div><code>bootloader.bin</code>、<code>ER_IROM2.bin</code>、<code>ER_IROM3.bin</code>、<code>ER_IROM1.bin</code> 和<code>ftab.bin</code>是你下载的固件文件名,建议使用绝对路径引用,如果路径中出现中文或者空格请用<code>"</code>将路径括起来。 其中<code>COM3</code>是你连接开发板的串口号,可能会有所不同,请根据实际情况修改。 可以打开设备管理器查看对应串口号:'COM'后面接着的数字就是串口号</div>
</div>
</div>
</div>
<div>没有意外的话,烧录完成之后会自动重启运行,屏幕应该被点亮。</div>
<h4>蓝牙使用注意事项</h4>
<div>
<div>
<div>
<div>在连接板子设备之前,请打开手机的蓝牙网络共享功能!!!</div>
</div>
</div>
</div>
<h5>Android蓝牙使用注意事项</h5>
<div>以下是Android手机的蓝牙设置界面,通过打开个人热点共享中的蓝牙共享网络功能。</div>
<div><img src="//" alt=""><img src="//" alt=""><img src="//" alt=""></div>
<div> </div>
<h5>iOS蓝牙使用注意事项</h5>
<div>iOS同样需要打开蓝牙共享网络功能,以下是参考步骤</div>
<div><img src="//" alt=""><img src="//" alt=""><img src="//" alt=""></div>
<div> </div>
<div>⚠ 注意 如果iOS在蓝牙列表未看见sifli-pan 设备,请尝试重启手机。</div>
<h3>开始使用</h3>
<div>正确烧录固件后,开发板初始化界面如下:</div>
<div><img src="//" alt=""></div>
<h4>激活设备</h4>
<div>烧录固件之后,确保蓝牙共享网络已打开,这时,手机就可以连接蓝牙 sifli-pan 设备了。 以下是Android手机连接状态示例图:</div>
<div><img src="//" alt=""></div>
<div>⚠ 注意:一般情况下,Android连接成功后,连接的蓝牙设备会显示正在向设备共享网络(iOS不会显示),我们可以以此确定是否成功开启蓝牙网络共享</div>
<div>⚠ 连接上sifli-pan设备后,开发板会有连接画面提示,此时按下对话按键(参考对应硬件支持查看对话按键),xiaozhi则会提示需要登录到控制面板,填设备码。</div>
<div><img src="//" alt=""><img src="//" alt=""></div>
<div>1</div>
<div><img src="//" alt=""><img src="//" alt=""></div>
<div>3</div>
<div>2</div>
<div>4</div>
<div> </div>
<div>⚠ 这个时候,打开浏览器,输入网址:<a href="https://xiaozhi.me/" target="_blank">https://xiaozhi.me</a>。浏览器用手机或者电脑都可以。 进入小智 AI 的网页后,点击控制台,用手机号登录。</div>
<div>新建智能体填写,最后添加设备码。</div>
<div>这个时候拔掉开发板上的数据线再接入就可以正常使用了</div>
</div>
<p style="line-height:1.8;"> </p>
</div>
评论(0)