<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[muselab]]></title><description><![CDATA[开源，创意，分享]]></description><link>https://www.muselab-tech.com/</link><image><url>https://www.muselab-tech.com/favicon.png</url><title>muselab</title><link>https://www.muselab-tech.com/</link></image><generator>Ghost 2.18</generator><lastBuildDate>Thu, 09 Oct 2025 03:04:17 GMT</lastBuildDate><atom:link href="https://www.muselab-tech.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[开源USB3.0 读卡器]]></title><description><![CDATA[一个开源的USB 3.0读卡器，最高速度可达100MB/s]]></description><link>https://www.muselab-tech.com/kai-yuan-usb3-0-du-qia-qi/</link><guid isPermaLink="false">68e71e06cdf49d00012c3933</guid><category><![CDATA[DIY]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Thu, 09 Oct 2025 02:39:00 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2025/10/1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2025/10/1-1.jpg" alt="开源USB3.0 读卡器"><p>制作了一个开源的USB 3。0读卡器，使用GL3224方案，最高传输速度可达100MB/s</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/1.jpg" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><p>为了能适配目前现有的外壳，所以板子做的比较大，实际尺寸可以做的更小，SPI-Flash使用W25Q80DVUXIE，封装比较小，类似QFN，如果不带SPI-Flash也可以使用，不过则只能跑到 USB 2。0高速的速度，传输速度只有40-50MB/s。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/2.jpg" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><p>背面加了一个拨动开关，拨到W-LOCK则打开写保护，只能读不能写，适合插入到陌生的电脑中读取使用（如打印店）</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/Top-layer.png" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><p>四层板，阻抗匹配，等长走线，其中USB 3.0 差分阻抗匹配 90欧姆，SDIO 为50欧姆单端阻抗，走线需要做等长，使用嘉立创提供的阻抗计算工具，USB 3。0走线线宽设计为6.23mil, SDIO走线线宽为6.16mil，具体计算如下图所示：</p><p></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/USB-3.0-track-width.png" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/SDIO-track-width.png" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><p>在我的电脑上测试，传输速度如下，连续读的速度基本上能达到95MB/s以上</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/10/speed-test.png" class="kg-image" alt="开源USB3.0 读卡器"></figure><!--kg-card-end: image--><p>github资料链接，内有源文件，可自行制作</p><p><a href="https://github.com/wuxx/SD-Reader-GL3224">https://github.com/wuxx/SD-Reader-GL3224</a></p>]]></content:encoded></item><item><title><![CDATA[nanoCH57x开发板]]></title><description><![CDATA[支持2.4GHz RF 裸发及BLE 5.0的RISC-V开发板]]></description><link>https://www.muselab-tech.com/nanoch57xkai-fa-ban/</link><guid isPermaLink="false">68c2392bcdf49d00012c38df</guid><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Thu, 11 Sep 2025 03:03:11 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2025/09/ch57x-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2025/09/ch57x-1.jpg" alt="nanoCH57x开发板"><p>WCH发布的CH572/CH570是集成蓝牙及2.4GHz的RISC-V MCU，支持BLE 5.0低功耗蓝牙，特色是支持2.4GHz基带的GFSK收发，裸发的2.4GHz RF用来做一些实时性的数据传输、无线遥控应该会比较合适。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/09/ch57x.jpg" class="kg-image" alt="nanoCH57x开发板"></figure><!--kg-card-end: image--><p>芯片资源，该有的都有了，做一些简单的小应用足够了，跑个RTOS也没问题。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2025/09/CH572.jpg" class="kg-image" alt="nanoCH57x开发板"></figure><!--kg-card-end: image--><p>天线的设计使用的是WCH提供的参考方案，测试了一下信号质量还可以，目前我只做了CH572，后续会增加CH570，CH570的区别是砍掉了蓝牙，其他功能则完全一致。</p><p>资料链接：<a href="https://github.com/wuxx/nanoCH57x">https://github.com/wuxx/nanoCH57x</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[nanoCH32V003开发板]]></title><description><![CDATA[又是一块RISC-V开发板]]></description><link>https://www.muselab-tech.com/nanoch32v003kai-fa-ban/</link><guid isPermaLink="false">63f9686516b23f0001fa4261</guid><category><![CDATA[MCU]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Sat, 25 Feb 2023 01:55:05 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2023/02/1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2023/02/1-1.jpg" alt="nanoCH32V003开发板"><p>nanoCH32V003 是MuseLab基于沁恒CH32V003F4U6芯片推出的开发板，板载24M晶振，引出所有IO口，TYPE-C USB供电，方便客户进行快速的原型验证及开发。</p><p>CH32V003应该是目前市面上价格最低的RISC-V MCU芯片了，单价小于1元，同价位的芯片中主频也相对较高。不过注意此芯片使用的是单线调试下载，只能使用WCH官方的WCHLink-E进行下载，没有USB，也不支持串口ISP下载。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2023/02/CH32V003F4U6.png" class="kg-image" alt="nanoCH32V003开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2023/02/1.jpg" class="kg-image" alt="nanoCH32V003开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2023/02/2.jpg" class="kg-image" alt="nanoCH32V003开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2023/02/3.jpg" class="kg-image" alt="nanoCH32V003开发板"></figure><!--kg-card-end: image--><p>除了可以使用官方的MounRiver开发外，也可完全使用开源的工具链进行编译下载，具体可参考github资料。</p><p><strong>参考</strong></p><p><a href="https://github.com/wuxx/nanoCH32V003">https://github.com/wuxx/nanoCH32V003</a></p>]]></content:encoded></item><item><title><![CDATA[nanoCH32V305开发板]]></title><description><![CDATA[相比CH32V203，CH32V305的Flash和SRAM空间更大，且支持一路USB高速主机/设备]]></description><link>https://www.muselab-tech.com/nanoch32v305kai-fa-ban/</link><guid isPermaLink="false">638fe1ebba28660001361cb4</guid><category><![CDATA[MCU]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Wed, 07 Dec 2022 00:58:36 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/12/1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/12/1-1.jpg" alt="nanoCH32V305开发板"><p>和nanoCH32V203区别不大，架构为RISC-V IMAFC，最高主频仍为144MHz。相比CH32V203，CH32V305的Flash和SRAM空间更大，且支持一路USB高速主机/设备。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/12/1.jpg" class="kg-image" alt="nanoCH32V305开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/12/2.jpg" class="kg-image" alt="nanoCH32V305开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/12/4.jpg" class="kg-image" alt="nanoCH32V305开发板"></figure><!--kg-card-end: image--><h3 id="-">资源框图</h3><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/12/CH32V305RBT6.png" class="kg-image" alt="nanoCH32V305开发板"></figure><!--kg-card-end: image--><p>由于Flash和SRAM空间更大一些，所以移植了一个LVGL demo，128KB对于完整组件的LVGL还是偏小，裁剪了大量模块才编译通过，具体可以参考github仓库。</p><h3 id="github-">github仓库</h3><p><a href="https://github.com/wuxx/nanoCH32V305">https://github.com/wuxx/nanoCH32V305</a></p>]]></content:encoded></item><item><title><![CDATA[nanoCH32V203开发板]]></title><description><![CDATA[nanoCH32V203 是MuseLab基于沁恒CH32V203C8T6芯片推出的开发板，板载双TYPE-C USB接口，LCD接口，SD卡接口，可通过USB口下载烧录，方便客户进行快速的原型验证及开发]]></description><link>https://www.muselab-tech.com/nanoch32v203kai-fa-ban/</link><guid isPermaLink="false">637efd2cba28660001361c92</guid><category><![CDATA[MCU]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Thu, 24 Nov 2022 05:43:31 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/11/3.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/11/3.jpg" alt="nanoCH32V203开发板"><p></p><p>nanoCH32V203 是MuseLab基于沁恒CH32V203C8T6芯片推出的开发板，板载双TYPE-C USB接口，LCD接口，SD卡接口，可通过USB口下载烧录，方便客户进行快速的原型验证及开发。这颗芯片的特点是基于RISC-V架构，主频最高可达144MHz，且支持2路USB接口，一路支持Host/Device，另一路支持Device，另外比较有特点的是集成了触摸按键和OPA运放，其他资源则和普通的C8T6系列的芯片没有太大差异。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/11/CH32V203C8T6.png" class="kg-image" alt="nanoCH32V203开发板"></figure><!--kg-card-end: image--><p>最令人惊讶的是这颗芯片的极低的价格，批量的价格在2.x，这个价位在同系列的芯片中属于是低的不能再低了，要知道大概2-3年前，就算没有缺芯片的时候，就我所知，市面上C8T6的芯片（包括ST、GD等厂商）也不会低于5元。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/11/5.jpg" class="kg-image" alt="nanoCH32V203开发板"></figure><!--kg-card-end: image--><p></p><p>可使用USB直接下载，或者使用WCH官方的下载器WCHLink进行下载调试，使用官方的IDE MounRiver Studio开发，使用上也是比较方便的，也可在linux下完全使用开源的工具链和开源的烧录软件wchisp开发，具体可参考github</p><p><a href="https://github.com/wuxx/nanoCH32V203/">https://github.com/wuxx/nanoCH32V203/</a></p>]]></content:encoded></item><item><title><![CDATA[DIY天线旋转器（卫星跟踪）AntRunner介绍]]></title><description><![CDATA[自己DIY的天线旋转器，用于卫星跟踪，业余无线电通信 by BG5DIW。
]]></description><link>https://www.muselab-tech.com/diytian-xian-xuan-zhuan-qi-wei-xing-gen-zong-antrunnerjie-shao/</link><guid isPermaLink="false">631ae9731f87ed0001d3ab17</guid><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Fri, 09 Sep 2022 07:27:08 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/09/1-2-1-.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/09/1-2-1-.jpg" alt="DIY天线旋转器（卫星跟踪）AntRunner介绍"><p>这个项目实际上去年已经完成了，耽搁到今年，总算有个交代。。。拒绝烂尾项目，从我做起。后续会继续推出更多的操作视频，敬请关注 Bilibili 账户"主音-x"。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/09/1-2-1--1.jpg" class="kg-image" alt="DIY天线旋转器（卫星跟踪）AntRunner介绍"></figure><!--kg-card-end: image--><p>底层的驱动代码已经合并入hamlib官方开源仓库</p><p><a href="https://github.com/Hamlib/Hamlib/pull/1031">https://github.com/Hamlib/Hamlib/pull/1031</a></p><p>实际使用的介绍可参考以下视频</p><p><a href="https://www.bilibili.com/video/BV1yP4y1o7kn/?vd_source=662ec3cab6ff1e9812ca169583bf46e2">https://www.bilibili.com/video/BV1yP4y1o7kn/?vd_source=662ec3cab6ff1e9812ca169583bf46e</a>2</p><p>github 上的原理和使用介绍，以及相关软件</p><p><a href="https://github.com/wuxx/AntRunner">https://github.com/wuxx/AntRunner</a></p><p>感兴趣的朋友也可以加QQ群一起交流 751580759</p>]]></content:encoded></item><item><title><![CDATA[USB高速协议转接桥]]></title><description><![CDATA[基于沁恒CH347，USB 2.0高速设备(带宽480Mbps)，支持USB转 UART/I2C/SPI/JTAG/GPIO，可用于存储器、传感器和各类外设的测试。]]></description><link>https://www.muselab-tech.com/usbgao-su/</link><guid isPermaLink="false">6306df191f87ed0001d3aaa5</guid><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Thu, 25 Aug 2022 12:38:00 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/08/1-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/08/1-2.jpg" alt="USB高速协议转接桥"><p>基于沁恒CH347制作了一批小板子，USB 2.0高速设备(带宽480Mbps)，支持USB转 UART/I2C/SPI/JTAG/GPIO，可用于日常的传感器和外设的测试。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/1-2-1.jpg" class="kg-image" alt="USB高速协议转接桥"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/2.jpg" class="kg-image" alt="USB高速协议转接桥"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/4-1.jpg" class="kg-image" alt="USB高速协议转接桥"></figure><!--kg-card-end: image--><h2 id="-"><br>特点</h2><ul><li>USB 2.0高速设备，带宽480Mbps</li><li>高速双串口，支持最高波特率9Mbps</li><li>I2C接口，可用于操作EEPROM或者各类传感器</li><li>SPI接口，支持2路片选信号，可分时操作2个SPI从设备，最高频率可达36MHz，可用于操作SPI屏幕、Flash存储器，以及各类传感器等。</li><li>JTAG接口，4线标准JTAG协议，高速传输，最高频率可达60MHz，配合上位机可以实现MCU、DSP、FPGA的下载调试。</li><li>GPIO控制，可通过API实现GPIO的通用控制。</li></ul><h2 id="--1"><br>工作模式</h2><p>CH347支持4种工作模式，不同的功能实现由模式配置，分别由引脚DTR1和RTS1控制</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>模式</th>
<th>DTR1</th>
<th>RTS1</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
<td>UART0 + UART1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>0</td>
<td>UART1 + I2C + SPI (VCP Mode)</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>1</td>
<td>UART1 + I2C + SPI (HID Mode)</td>
</tr>
<tr>
<td>3</td>
<td>0</td>
<td>0</td>
<td>UART1 + JTAG</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p><br>WCH原厂当前提供了Windows的DLL库和示例demo（和原厂沟通当前正在实现Linux下的相关库，过一段时间也会发布），demo可用于验证各个接口的基本功能，配合DLL库用户可实现自身的应用或者测试。从功能上看，CH347T相当于FT2232H的替代，同样是基于USB 2.0高速接口，不过CH347支持的各个接口的频率更高一些，通过调用提供的现成的API接口，实现自己的应用也会更简单一些，同时在当前市场上普遍缺芯片且芯片价格居高不下的情况下，CH347T在同类产品中也具有相当的性价比。</p><h2 id="--2">参考资料</h2><p><a href="https://github.com/wuxx/USB-HS-Bridge">https://github.com/wuxx/USB-HS-Bridge</a></p><p><a href="https://www.wch.cn/downloads/CH347EVT_ZIP.html">https://www.wch.cn/downloads/CH347EVT_ZIP.html</a></p>]]></content:encoded></item><item><title><![CDATA[智能开关逆向并刷入Tasmota固件]]></title><description><![CDATA[制作一个完全由你自己控制的智能插座]]></description><link>https://www.muselab-tech.com/zhi-neng-kai-guan-ni-xiang-bing-shua-ru-tasmotagu-jian/</link><guid isPermaLink="false">62e8c7301f87ed0001d3a9d7</guid><category><![CDATA[DIY]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Tue, 02 Aug 2022 07:05:05 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/08/1-1.jpg" medium="image"/><content:encoded><![CDATA[<h3 id="-">缘起</h3><img src="https://www.muselab-tech.com/content/images/2022/08/1-1.jpg" alt="智能开关逆向并刷入Tasmota固件"><p>目前市面上的智能插座产品也已经很丰富了，不过往往和厂商的APP绑定，而且一般都需要强制联网才可以正常使用，无法达到个人的定制DIY需求，例如我个人的一些需求：</p><p>1 不想联网、或者没有WiFi路由器的情况下使用智能插座</p><p>2 不想安装厂商提供的APP，需要任意手机可直接使用浏览器控制</p><p>3 希望可以从命令行配置查询，这样可以配合树莓派脚本完成联动，和树莓派上的传感器配合可实现各种场景控制。</p><p>4 智能开关自身可接入其他传感器，实现更丰富的应用</p><p>5 可随意根据自己需求DIY固件，增加新功能</p><h3 id="--1">求索</h3><p>自己用PCB制作虽然也可以，不过往往缺少外壳、220V插座具有一定安全风险、做出来成品也会比较粗糙。所以当前最好的方式应该是采购市面上现有的成熟产品，并逆向出相关IO口，然后刷入开源的系统进行DIY。由于基于ESP8266/ESP32的资料最为丰富，可玩性更强，经过反复的搜索，最终在某鱼上大概以13元左右价格买了一批基于ESP8266的智能插座。从开关的标签说明上看，是属于华清智芯科技有限公司(<a href="http://www.smartchip.com.cn/">http://www.smartchip.com.cn/</a>)出的一款智能插座产品，不过在其官网上已无法搜索到相关的信息，推测应该是属于老旧的淘汰产品线，其成色做工尚可。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/6-1.jpg" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/8-1.jpg" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/1-1-1.jpg" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"></figure><!--kg-card-end: image--><h3 id="-gpio">逆向GPIO</h3><p>经过一番测试倒腾， 逆向出来了GPIO，各个功能说明如下：</p><!--kg-card-begin: markdown--><pre><code>继电器：GPIO4 拉高吸合，拉低断开
红灯：和继电器连在一起的，继电器开启的时候红灯亮
绿灯：GPIO16 拉高点亮，拉低熄灭按键开关：GPIO5 按下和GND连接
按键开关左边的2个焊盘：上面的焊盘为GPIO0，下面的焊盘为GND，短接上电即可进入bootloader
下载口：位于左下方，且已经有丝印标记5V, G, TX, RX
</code></pre>
<!--kg-card-end: markdown--><h3 id="-diy-">烧录DIY固件</h3><p>拆开背后的一颗螺丝，外壳为卡扣结构，用撬棍从两侧慢慢撬开，即可露出内部的PCB进行烧录固件。这里烧录的是目前较为流行的智能家居Tasmota固件，支持WEBUI配置、OTA升级、定时器规则，以及MQTT接入，另外也支持多种传感器的接入，更详细的信息可参考源码仓库 <a href="https://github.com/arendst/Tasmota">https://github.com/arendst/Tasmota</a><br>固件烧录需要先短接GPIO0和GND（按键开关左边的2个焊盘）， 然后连接左侧的4个插针5V, GND, TX, RX，ESP8266上电后会进入bootloader模式，输入以下命令烧录固件</p><!--kg-card-begin: markdown--><pre><code>$esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash -fs 4MB -ff 80m 0x00000 tasmota-CN.bin
esptool.py v3.3-dev
Serial port /dev/ttyACM0
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:06:76:40
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash will be erased from 0x00000000 to 0x0009bfff...
Flash params set to 0x034f
Compressed 637296 bytes to 455065...
Wrote 637296 bytes (455065 compressed) at 0x00000000 in 124.2 seconds (effective 41.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

</code></pre>
<!--kg-card-end: markdown--><h3 id="--2">配置</h3><p>烧录成功后即可重新组装开关，并将开关插入220V电源插座中，正常会出现一个 tasmota-xxxx-xxxx 的wifi热点，此热点无需输入密码，可直接连接。然后浏览器打开192.168.4.1，即可登录到后台。第一次登陆会提示连接到路由器，可在后台设置连接到自己的路由器，连接好之后会弹出路由器分配的IP地址，后续操作会更方便一些。例如连接到我的路由器后，分配的IP地址为192.168.123.233，即可输入新的IP地址进入后台进行操作</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2022/08/Image.png" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"><figcaption>任意浏览器输入IP地址即可进入后台主界面</figcaption></figure><!--kg-card-end: image--><p>进入后台后，先重新设置模块类型，设置 -&gt; 模块设置 -&gt; 选择模块类型为 Generic (18)，然后点击保存，系统会作为新模块重启。稍等片刻重新进入，即可进行新模块的配置，根据之前逆向出来的资料，按照如图所示的配置即可</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/Image-1.png" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"></figure><!--kg-card-end: image--><p>配置完系统会重启，重启后即可开始正常使用，可点击网页界面上的开关控制，也可通过按压开关上的按键进行控制。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/08/Image-2.png" class="kg-image" alt="智能开关逆向并刷入Tasmota固件"></figure><!--kg-card-end: image--><p>也可通过命令行控制，如下所示</p><!--kg-card-begin: markdown--><pre><code>#打开开关
$curl http://192.168.123.233/cm?cmnd=POWER+ON

#闭合开关
$curl http://192.168.123.233/cm?cmnd=POWER+OFF

#开关切换（当前开关状态为打开则关闭，为关闭则打开）
$curl http://192.168.123.233/cm?cmnd=POWER+TOGGLE
</code></pre>
<!--kg-card-end: markdown--><h3 id="--3">参考资料</h3><p><em>固件仓库，内有烧录脚本可直接烧录</em></p><p><a href="https://github.com/wuxx/smart_switch_hack/tree/master/image/smartchip">https://github.com/wuxx/smart_switch_hack/tree/master/image/smartchip</a></p><p><em>Tasmota 仓库</em></p><p><a href="https://github.com/arendst/Tasmota">https://github.com/arendst/Tasmota</a></p>]]></content:encoded></item><item><title><![CDATA[迷你串口工具]]></title><description><![CDATA[最高支持6Mbps波特率，支持硬件流控，支持可调IO电平的串口工具]]></description><link>https://www.muselab-tech.com/mi-ni-chuan-kou-gong-ju/</link><guid isPermaLink="false">62872bc36c6ed00001eadd86</guid><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Fri, 20 May 2022 05:50:16 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/05/nanoUART-top.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/05/nanoUART-top.jpg" alt="迷你串口工具"><p>基于CH343P制作了一批迷你串口工具，TYPE-C接口，引出了流控信号和常用modem的信号（虽然可能也很少使用到），支持对外5V/3.3V供电，IO电平可调 1.8V/2.5V/3.3V/5V/外部VREF，硬件原理图开源。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/05/nanoUART-2.jpg" class="kg-image" alt="迷你串口工具"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/05/nanoUART-top-1.jpg" class="kg-image" alt="迷你串口工具"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/05/nanoUART-bottom.jpg" class="kg-image" alt="迷你串口工具"></figure><!--kg-card-end: image--><p>所有资料已提交至github<br><a href="https://github.com/wuxx/nanoUART">https://github.com/wuxx/nanoUART</a></p>]]></content:encoded></item><item><title><![CDATA[开源快充诱骗工具PDTricker]]></title><description><![CDATA[开源快充诱骗工具PDTricker]]></description><link>https://www.muselab-tech.com/kai-yuan-kuai-chong-you-pian-gong-ju/</link><guid isPermaLink="false">6243f04e6c6ed00001eadd1c</guid><category><![CDATA[DIY]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Wed, 30 Mar 2022 06:02:24 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/03/PDTricker-5.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/03/PDTricker-5.jpg" alt="开源快充诱骗工具PDTricker"><p>PDTricker 是MuseLab设计的PD诱骗工具，使用沁恒的ch224k和ch552t实现，支持PD3.0/2.0，可通过按键配置输出5V/9V/12V/15V/20V， 硬件原理图开源， 软件源码开源，您也可自行修改源码定制实现个性化需求。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/03/PDTricker-1.jpg" class="kg-image" alt="开源快充诱骗工具PDTricker"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/03/PDTricker-2.jpg" class="kg-image" alt="开源快充诱骗工具PDTricker"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/03/PDTricker-wire.jpg" class="kg-image" alt="开源快充诱骗工具PDTricker"></figure><!--kg-card-end: image--><p>实际上市面上已经有很多快充诱骗工具了，部分实现也是使用CH224k，不过基本上都是不开源的，所以我制作了一款开源的实现，输入和输出端都设计使用的是TYPE-C接口，搭配自制的TYPE-C转鳄鱼夹线，使用起来更加方便一点，当然也可以自行焊接电源线使用。</p><p>CH224k的诱骗方式比较简单，控制3个IO口高低即可实现不同的电源电压输出，不过需要注意能否诱骗成功和具体的充电头有关系，失败的时候对应的蓝灯会闪烁，CH552T端的源码也比较简单，读取按键控制3个IO即可，注意输出电源的电压获取是通过电阻分压ADC读取得出，注意电阻的比例分压出的电压最高不要超过3.3V，避免烧坏ADC采样IO口。</p><h2 id="-">资料链接：</h2><p><a href="https://github.com/wuxx/PDTricker">https://github.com/wuxx/PDTricker</a></p><p><a href="http://wch.cn/">http://wch.cn/</a></p>]]></content:encoded></item><item><title><![CDATA[nanoESP32-S3开发板]]></title><description><![CDATA[发布nanoESP32-S3开发板]]></description><link>https://www.muselab-tech.com/nanoesp32-s3kai-fa-ban/</link><guid isPermaLink="false">619ef6276c6ed00001eadc9a</guid><category><![CDATA[espressif]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Thu, 25 Nov 2021 02:53:55 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2022/06/nanoESP32-S3-1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2022/06/nanoESP32-S3-1-1.jpg" alt="nanoESP32-S3开发板"><p>nanoESP32-S3开发板已经发布，使用乐鑫官方ESP32-S3-WROOM-1-N8模组，还是同样的配方，板载了一个ESPLink调试器，支持串口/JTAG调试/拖拽烧录，双TYPE-C USB，ESP32-S3和ESP32-S2的区别在于S3拥有更大的SRAM和Flash，且同时支持WiFi和蓝牙，外设相比也更加丰富。更详细的说明可参考datasheet，开发板的资料已经提交在<a href="https://github.com/wuxx/nanoESP32-S3">https://github.com/wuxx/nanoESP32-S3</a></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/06/nanoESP32-S3-1.jpg" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/06/nanoESP32-S3-2.jpg" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2022/06/nanoESP32-S3-3.jpg" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image--><p>另外还单独发布了一个ESPLink下载器，支持串口/JTAG调试/ 烧录，可拖拽烧录乐鑫ESP全系列芯片，包括ESP8266/ESP32/ESP32-S2/ESP32-C3/ESP32-S3，支持固件升级，可随时支持乐鑫发布的最新芯片。支持自动复位烧录、冷复位/热复位等。详细资料可参考<a href="https://github.com/wuxx/ESPLink">https://github.com/wuxx/ESPLink</a></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/11/esplink-1.png" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/11/esplink-2.png" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/11/esplink-3.jpg" class="kg-image" alt="nanoESP32-S3开发板"></figure><!--kg-card-end: image-->]]></content:encoded></item><item><title><![CDATA[nanoESP32-C3开发板]]></title><description><![CDATA[nanoESP32-C3开发板，基于乐鑫ESP32-C3，RISC-V WiFi+BLE]]></description><link>https://www.muselab-tech.com/nanoesp32-c3kai-fa-ban/</link><guid isPermaLink="false">6106459c6c6ed00001eadc11</guid><category><![CDATA[MCU]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Sun, 01 Aug 2021 07:03:45 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2021/08/nanoESP32-C3-1.jpg" medium="image"/><content:encoded><![CDATA[<h2 id="-">介绍</h2><img src="https://www.muselab-tech.com/content/images/2021/08/nanoESP32-C3-1.jpg" alt="nanoESP32-C3开发板"><p>这款芯片实际上去年12月份乐鑫官方已经宣布发布，然而貌似直到目前才正式量产。根据乐鑫发布的初版手册来看，ESP32-C3是设计带USB外设的，不过应该是第一次流片失败，目前发布的技术手册里已经没有USB了，或许将来会修复？</p><p>当前市面上已经有一些基于RISC-V的MCU量产，如GD32VF103、CH32V103、BL602等，不过目前个人感觉仍然不算是特别流行，原因很简单：RISC-V并不是什么灵丹妙药，实际上对于商用的产品研发来说，最重要的是成本/性能/亮点/开发生态/技术支持，几乎所有开发者都是用C开发，调用SDK提供的接口，大部分时候对于底层根本没有感知，也不需要关心（当然如果要深入解决某些问题必须要了解底层），试问ESP32的xtensa架构和汇编语言有多少人熟悉和掌握？这些并不影响其在商业市场上的成功，一个封装完善的SDK即可可以屏蔽所有的底层细节，提供良好的开发体验。</p><p>或许RISC-V的免授权费在大规模量产时可以有一些成本优势，如果其他的条件如果无法满足需求，得到市场的认可可能需要一个漫长的过程。</p><p>个人认为ESP32-C3会是RISC-V的一个强力推动者，性价比对标ESP8266，使用成熟的esp-idf框架开发（其实这些才是最重要的），相信可以快速的投入商用的市场中，普通的爱好者也可以从中仔细研究学习RISC-V的原理，一个开放的指令架构确实会更有趣，也具有更大的学习价值。</p><h2 id="--1">模组规格</h2><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Component</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td>MCU</td>
<td>32bit RISC-V ESP32-C3FN4 up to 160MHz</td>
</tr>
<tr>
<td>ROM</td>
<td>384KB</td>
</tr>
<tr>
<td>SRAM</td>
<td>400KB(16KB for cache)</td>
</tr>
<tr>
<td>Flash</td>
<td>4MB</td>
</tr>
<tr>
<td>WiFi</td>
<td>IEEE 802.11bgn</td>
</tr>
<tr>
<td>Bluetooth</td>
<td>BLE 5.0 &amp; mesh</td>
</tr>
<tr>
<td>GPIO</td>
<td>22</td>
</tr>
<tr>
<td>SPI</td>
<td>3</td>
</tr>
<tr>
<td>UART</td>
<td>2</td>
</tr>
<tr>
<td>I2C</td>
<td>1</td>
</tr>
<tr>
<td>RMT</td>
<td>2T+2R</td>
</tr>
<tr>
<td>DMA</td>
<td>3T+3R</td>
</tr>
<tr>
<td>LED-PWMC</td>
<td>6 channel</td>
</tr>
<tr>
<td>TWAI</td>
<td>1</td>
</tr>
<tr>
<td>ADC</td>
<td>2 x 12bit, 6 channel</td>
</tr>
<tr>
<td>Temp sensor</td>
<td>1</td>
</tr>
<tr>
<td>Timer</td>
<td>6</td>
</tr>
<tr>
<td>Security</td>
<td>OTP/AES/SHA/RSA/RNG/HMAC</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>这块开发板和市面上普通的ESP32开发板相比，我将原先的USB转串口芯片（通常是CP2102或者CH340）换成了运行DAPLink的MCU，并对DAPLink源码进行了一些定制，在提供USB转串口的功能的同时，另外增加了拖拽烧录和JTAG调试功能，以方便用户更方便的进行开发调试。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/08/--2.jpg" class="kg-image" alt="nanoESP32-C3开发板"></figure><!--kg-card-end: image--><h3 id="usb-to-serial">USB-to-Serial</h3><p>兼容传统的ESP32使用，可使用串口进行烧录或者调试输出，使用举例如下：</p><!--kg-card-begin: markdown--><pre><code>$idf.py -p /dev/ttyACM0 flash monitor
$esptool.py --chip esp32c3 \
           -p /dev/ttyACM0 \
           -b 115200 \
           --before=default_reset \
           --after=hard_reset \
           --no-stub \
           write_flash \
           --flash_mode dio \
           --flash_freq 80m \
           --flash_size 2MB \
           0x0     esp32c3/bootloader.bin \
           0x8000  esp32c3/partition-table.bin \
           0x10000 esp32c3/blink_100.bin
</code></pre>
<!--kg-card-end: markdown--><h3 id="--2">拖拽烧录</h3><p>板载的下载器ESPLink支持拖拽烧录，将开发板上电之后，PC将会出现一个名为ESPLink的虚拟U盘，此时只需将flash镜像文件拖拽至ESPLink虚拟U盘中，稍等片刻，即可自动完成烧录。此功能使得烧录无需依赖任何外部工具以及操作系统， 典型的使用场景列举如下：快速的原型验证、在云端服务器进行编译、然后在任意PC上烧录、或者在商业的产品中实现固件的快速升级。</p><p>注意：flash镜像文件为三个文件(bootloader.bin/partition-table.bin/app.bin)拼接而成，需要将bootloader.bin填充至0x8000，partition-table.bin填充至0x10000，然后将三个文件直接合并。tools目录下提供了一个脚本以供使用，举例如下：</p><!--kg-card-begin: markdown--><pre><code>$./tools/esppad.sh bootloader.bin partition-table.bin app.bin flash_image.bin
</code></pre>
<!--kg-card-end: markdown--><h3 id="jtag-">JTAG调试</h3><p>ESPLink 支持使用jtag调试ESP32-C3, 对于想学习RISC-V 架构汇编原理图的爱好者非常有用，若您是商用产品的开发者，这也可以方便的让您在系统崩溃时查找原因。具体使用说明如下：</p><blockquote>Openocd 安装</blockquote><!--kg-card-begin: markdown--><pre><code>$git clone https://github.com/espressif/openocd-esp32.git 
$cd openocd-esp32 $./bootstrap 
$./configure --enable-cmsis-dap 
$make -j 
$sudo make install
</code></pre>
<!--kg-card-end: markdown--><blockquote>烧录efuse</blockquote><p>efuse JTAG_SEL_ENABLE bit需要烧录来启用jtag功能.</p><!--kg-card-begin: markdown--><pre><code>$espefuse.py -p /dev/ttyACM0 burn_efuse JTAG_SEL_ENABLE
</code></pre>
<!--kg-card-end: markdown--><blockquote>Attach to ESP32-C3</blockquote><p>将GPIO10 拉低到GND以启用GPIO的JTAG功能，上电开发板然后执行以下脚本，若一切正常，则可检测到ESP32-C3的idcode</p><!--kg-card-begin: markdown--><pre><code>$sudo openocd -f tcl/interface/cmsis-dap.cfg -f tcl/target/esp32c3.cfg
Open On-Chip Debugger  v0.10.0-esp32-20201202-30-gddf07692 (2021-03-22-16:48)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz

force hard breakpoints
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : CMSIS-DAP: SWD  Supported
Info : CMSIS-DAP: JTAG Supported
Info : CMSIS-DAP: FW Version = 0255
Info : CMSIS-DAP: Serial# = 0800000100430028430000014e504332a5a5a5a597969908
Info : CMSIS-DAP: Interface Initialised (JTAG)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : High speed (adapter_khz 10000) may be limited by adapter firmware.
Info : clock speed 10000 kHz
Info : cmsis-dap JTAG TLR_RESET
Info : cmsis-dap JTAG TLR_RESET
Info : JTAG tap: esp32c3.cpu tap/device found: 0x00005c25 (mfg: 0x612 (Espressif Systems), part: 0x0005, ver: 0x0)
Info : datacount=2 progbufsize=16
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40101104
Info : Listening on port 3333 for gdb connections
</code></pre>
<!--kg-card-end: markdown--><h3 id="debug">Debug</h3><p>attach 成功之后，另外打开一个终端窗口，可以使用telnet或者gdb来进行调试</p><blockquote>Debug with Gdb</blockquote><!--kg-card-begin: markdown--><pre><code>$riscv32-esp-elf-gdb -ex 'target remote 127.0.0.1:3333' ./build/blink.elf
(gdb) info reg
(gdb) s
(gdb) continue
</code></pre>
<!--kg-card-end: markdown--><blockquote>Debug with telnet</blockquote><!--kg-card-begin: markdown--><pre><code>$telnet localhost 4444
&gt;reset
&gt;halt
&gt;reg
&gt;step
&gt;reg pc
&gt;resume
</code></pre>
<!--kg-card-end: markdown--><p>参考</p><blockquote>nanoESP32-C3</blockquote><p><a href="https://github.com/espressif/esp-idf">https://github.com/espressif/esp-idf</a></p><blockquote>esp-idf</blockquote><p><a href="https://github.com/espressif/esp-idf">https://github.com/espressif/esp-idf</a></p><blockquote>esp32-c3 get-started</blockquote><p><a href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/">https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/</a></p><blockquote>esp32-c3</blockquote><p><a href="https://www.espressif.com/zh-hans/p">https://www.espressif.com/zh-hans/p</a></p>]]></content:encoded></item><item><title><![CDATA[一起来玩树莓派Pico]]></title><description><![CDATA[有趣的Pico]]></description><link>https://www.muselab-tech.com/picokuo-zhan-ban/</link><guid isPermaLink="false">607faf3cd6ce4a0001d75f77</guid><category><![CDATA[Pico]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Wed, 21 Apr 2021 05:16:58 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2021/04/20210127144649_Raspberry-Pi-Pico-front.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2021/04/20210127144649_Raspberry-Pi-Pico-front.jpg" alt="一起来玩树莓派Pico"><p>今年一月底，树莓派基金会发布了一款低成本、高性能的微控制器开发板Raspberry Pi Pico，售价4美元（国内的价格在30上下），主芯片为基金会自行研发的RP2040芯片，7×7mm QFN-56 封装，具体规格如下：</p><!--kg-card-begin: markdown--><p>– 双核 Arm Cortex-M0 + @ 133MHz<br>
– 芯片内置 264KB SRAM 和 2MB 的板载闪存<br>
– 通过专用 QSPI 总线支持最高 16MB 的片外闪存<br>
– DMA 控制器<br>
– 30 个 GPIO 引脚，其中 4 个可用作模拟输入<br>
– 2 个 UART、2 个 SPI 控制器和 2 个 I2C 控制器<br>
– 16 个 PWM 通道<br>
– USB 1.1 主机和设备支持<br>
– 8 个可编程 I/O（PIO）状态机，用于自定义外围设备支持<br>
– 支持 UF2 的 USB 大容量存储启动模式，用于拖放式编程</p>
<!--kg-card-end: markdown--><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2021/04/image.png" class="kg-image" alt="一起来玩树莓派Pico"><figcaption>引脚说明</figcaption></figure><!--kg-card-end: image--><p><br>有很多爱好者可能会觉得Pico从性价比、可玩性上看并不如ESP32，然而，我认为ESP32固然有其各方面的优势，Pico亦有其闪光点，而且两者的市场定位并不相同，ESP32聚焦于物联网市场，面向实际商用的产品，而Pico则很明显受众是全世界的电子爱好者，其竞争对手实际上是Arduino（更明确的说应该是基于atmega128/atmega2560的Arduino开发板），Pico的双核（极限可调整内核电压超频到400MHz），多Bank SRAM（意味着总线上的master可以同时快速访问不同Bank的SRAM，可以达到极高的数据吞吐率），以及最有趣的PIO子系统，均有极大的可玩性，同时可使用C-SDK或者micropython开发，兼顾性能和快速实现，树莓派基金会提供的详细的文档和教程，以及放出的Pico开发板的原理图及PCB，均显示出了极大的诚意和支持。<br>目前在各路高手的开发下，已经实现了很多有趣的项目，一下选取目前几个比较有意思的介绍：</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/mountains.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2021/04/two_displays.jpg" class="kg-image" alt="一起来玩树莓派Pico"><figcaption>Pico PIO输出HDMI显示，甚至实现了双屏HDMI输出</figcaption></figure><!--kg-card-end: image--><p>项目地址：x<a href="https://github.com/Wren6991/PicoDVI">https://github.com/Wren6991/PicoDVI</a><br></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/EwYOU8xWYAQK8lL.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2021/04/EwYOU9HWgAUuSmX.jpg" class="kg-image" alt="一起来玩树莓派Pico"><figcaption>Pico PIO驱动以太网</figcaption></figure><!--kg-card-end: image--><p>项目地址：x<a href="https://github.com/sandeepmistry/pico-rmii-ethernet">https://github.com/sandeepmistry/pico-rmii-ethernet</a><br></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2021/04/picolo-sdr-featured.jpg" class="kg-image" alt="一起来玩树莓派Pico"><figcaption>实现软件自定义无线电（SDR）</figcaption></figure><!--kg-card-end: image--><p>项目地址：x<a href="https://github.com/luigifcruz/pico-stuff/tree/main/apps/piccolosdr">https://github.com/luigifcruz/pico-stuff/tree/main/apps/piccolosdr</a><a href="https://www.hackster.io/news/luigi-cruz-turns-the-raspberry-pi-pico-into-a-software-defined-radio-with-the-piccolosdr-project-0085e14ef96d">https://www.hackster.io/news/luigi-cruz-turns-the-raspberry-pi-pico-into-a-software-defined-radio-with-the-piccolosdr-project-0085e14ef96d</a><br></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.muselab-tech.com/content/images/2021/04/EvvgpXMXMAE1z1N.jpg" class="kg-image" alt="一起来玩树莓派Pico"><figcaption>采样吉他信号并通过MIDI输出</figcaption></figure><!--kg-card-end: image--><p>项目地址：x<a href="https://www.hackster.io/news/raspberry-pi-pico-converts-electric-guitar-signals-to-midi-89bb5f61998f">https://www.hackster.io/news/raspberry-pi-pico-converts-electric-guitar-signals-to-midi-89bb5f61998f</a><br><br>Pico上最有意思的应该是其PIO子系统，其提供了类似FPGA的灵活的硬件能力，可以实现各种各样的协议，而且由于PIO子系统的时钟可以和主CPU一致，其甚至可以实现几百M的高速协议。PIO子系统实际上可以看成是一个单独的处理器，只不过其整体设计都是为控制IO实现的，使用汇编语言进行编程，利用汇编编译器pioasm编译成二进制后存入PIO内部SRAM，然后启动PIO状态机执行。</p><p><br>为方便Pico的使用，我制作了两块Pico扩展板，一块为安装到树莓派上的扩展板，支持树莓派3/4，利用树莓派提供的串口和SWD接口，同时两侧引出排针，可以用树莓派方便的进行开发及测试，（树莓派基金会发布的官方教程即为使用树莓派和pico对接进行开发）</p><p><em>Pico树莓派扩展板</em></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/1-6.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/2-1.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/3-1.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><p><br>另一块则是和DAPLink对接，同样利用了DAPLink提供的串口和SWD接口，同时两侧引出插针，由于PIO子系统提供的灵活的IO能力，非常适合和PMOD标准对接，故额外又引出了PMOD标准接口，方便挂接各种标准PMOD外设，目前已经适配的有2。2.8寸LCD，WS2812灯板，以及PMOD-SWITCH、PMOD-LED等。<br><em>Pico PMOD扩展板</em></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/4-1.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/1--2--1.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/04/2--2--1.jpg" class="kg-image" alt="一起来玩树莓派Pico"></figure><!--kg-card-end: image--><p><br>原理图、源码和固件已经全部提交在<a href="https://github.com/wuxx/RPI-HAT-Pico-BreakoutBoard">https://github.com/wuxx/RPI-HAT-Pico-BreakoutBoard</a>和 <a href="https://github.com/wuxx/pico-lab">https://github.com/wuxx/pico-lab</a>，感兴趣的朋友可以参考。</p>]]></content:encoded></item><item><title><![CDATA[iCESugar-pro 开源FPGA开发板]]></title><description><![CDATA[iCESugar-pro 是基于Lattice LFE5U-25F设计的一款开源FPGA开发板，板载32MB SDRAM，32MB SPI-Flash，支持启动RISC-V Linux，板载iCELink调试器经过精心设计，支持拖拽烧录，调试串口，以及双JTAG接口，只需一根TYPE-C线即可进行开发测试，开发板使用DDR SODIMM 接口引出106个可用IO，可配合底板进行扩展测试。]]></description><link>https://www.muselab-tech.com/icesugar-pro-kai-yuan-fpgakai-fa-ban/</link><guid isPermaLink="false">60431c30d6ce4a0001d75f30</guid><category><![CDATA[FPGA]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Sat, 06 Mar 2021 06:12:45 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2021/03/iCESugar-pro-1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2021/03/iCESugar-pro-1-1.jpg" alt="iCESugar-pro 开源FPGA开发板"><p>iCESugar-pro 是基于Lattice LFE5U-25F设计的一款开源FPGA开发板，板载32MB SDRAM，32MB SPI-Flash，支持启动RISC-V Linux，板载iCELink调试器经过精心设计，支持拖拽烧录，调试串口，以及双JTAG接口，只需一根TYPE-C线即可进行开发测试，开发板使用DDR SODIMM 接口引出106个可用IO，可配合底板进行扩展测试。</p><p>这应该是这个系列的最后一款开发板了，使用Lattice ECP5系列FPGA，这个系列的功能性能要比先前的ice40系列强很多（实测可以跑198MHz的RISC-V）单板规格如下：</p><h3 id="ecp5">ECP5</h3><p>LFE5U-25F-6BG256C (24K LUT)</p><h3 id="sdram">SDRAM</h3><p>IS42S16160B (32MB)</p><h3 id="spi-flash">SPI-Flash</h3><p>W25Q256JV (32MB)</p><h3 id="clock">Clock</h3><p>25MHz 外部时钟</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/03/iCESugar-pro-1.jpg" class="kg-image" alt="iCESugar-pro 开源FPGA开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/03/iCESugar-pro-2.jpg" class="kg-image" alt="iCESugar-pro 开源FPGA开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/03/iCESugar-pro-3.jpg" class="kg-image" alt="iCESugar-pro 开源FPGA开发板"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/03/--4.jpg" class="kg-image" alt="iCESugar-pro 开源FPGA开发板"></figure><!--kg-card-end: image--><p>使用DDR SODIMM接口引出了 106个GPIO（就是树莓派 CM3的金手指接口），可以自行设计底板使用，QQ群内也有群主设计的底板原理图和PCB，可以自行打样。</p><p>运行linux基于vexriscv，使用了litex框架（一个法国的团队基于nmigen实现的），具体可以参考github，有更详细的介绍。</p><!--kg-card-begin: markdown--><pre><code>        __   _ __      _  __
       / /  (_) /____ | |/_/
      / /__/ / __/ -_)&gt;  &lt;
     /____/_/\__/\__/_/|_|
   Build your hardware, easily!

 (c) Copyright 2012-2020 Enjoy-Digital
 (c) Copyright 2007-2015 M-Labs

 BIOS built on Nov 11 2020 09:43:40
 BIOS CRC passed (9f19f473)

 Migen git sha1: cc6e76e
 LiteX git sha1: 275932f5

--=============== SoC ==================--
CPU:            VexRiscv_Linux @ 50MHz
BUS:            WISHBONE 32-bit @ 4GiB
CSR:            8-bit data
ROM:            64KiB
SRAM:           8KiB
L2:             8KiB
SDRAM:          32768KiB 16-bit @ 50MT/s (CL-2 CWL-2)

--========== Initialization ============--
Initializing SDRAM @0x40000000...
Switching SDRAM to software control.
Switching SDRAM to hardware control.
Memtest at 0x40000000 (2MiB)...
  Write: 0x40000000-0x40200000 2MiB
   Read: 0x40000000-0x40200000 2MiB
Memtest OK
Memspeed at 0x40000000 (2MiB)...
  Write speed: 11MiB/s
   Read speed: 10MiB/s

--============== Boot ==================--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
             Timeout
Booting from SDCard in SPI-Mode...
Booting from boot.json...
Copying Image to 0x40000000 (4545524 bytes)...
[########################################]
Copying rootfs.cpio to 0x40800000 (8029184 bytes)...
[########################################]
Copying rv32.dtb to 0x41000000 (1987 bytes)...
[########################################]
Copying emulator.bin to 0x41100000 (9600 bytes)...
[########################################]
Executing booted program at 0x41100000

--============= Liftoff! ===============--
VexRiscv Machine Mode software built Mar 23 2020 16:55:03
--========== Booting Linux =============--
[    0.000000] No DTB passed to the kernel                                          
[    0.000000] Linux version 5.0.13 (florent@lab) (gcc version 8.3.0 (Buildroot 2019.08-rc2-00011-gad9efda578)) #1 Thu Sep 12 14:20:26 CEST 2019
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: bootconsole [sbi0] enabled
[    0.000000] Initial ramdisk at: 0x(ptrval) (8388608 bytes)
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000041ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000041ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000041ffffff]
[    0.000000] elf_hwcap is 0x1101
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: mem=32M@0x40000000 rootwait console=liteuart earlycon=sbi root=/dev/ram0 init=/sbin/init swiotlb=32
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 19812K/32768K available (3415K kernel code, 148K rwdata, 509K rodata, 140K init, 216K bss, 12956K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0xb8812736b, max_idle_ns: 440795202655 ns
[    0.000422] sched_clock: 64 bits at 50MHz, resolution 20ns, wraps every 4398046511100ns
[    0.004800] Console: colour dummy device 80x25
[    0.007486] Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=200000)
[    0.009456] pid_max: default: 32768 minimum: 301
[    0.026679] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.028428] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.121644] devtmpfs: initialized
[    0.189497] random: get_random_bytes called from setup_net+0x4c/0x188 with crng_init=0
[    0.200282] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.202998] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.220630] NET: Registered protocol family 16
[    0.579278] clocksource: Switched to clocksource riscv_clocksource
[    1.118845] NET: Registered protocol family 2
[    1.149705] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
[    1.152735] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    1.154585] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    1.156926] TCP: Hash tables configured (established 1024 bind 1024)
[    1.164153] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.165932] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.197310] Unpacking initramfs...
[    5.478529] Initramfs unpacking failed: junk in compressed archive
[    5.518894] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    6.441722] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    6.443061] io scheduler mq-deadline registered
[    6.444868] io scheduler kyber registered
[    9.806243] f0001000.serial: ttyLXU0 at MMIO 0xf0001000 (irq = 0, base_baud = 0) is a liteuart
[    9.809098] printk: console [liteuart0] enabled
[    9.809098] printk: console [liteuart0] enabled
[    9.810562] printk: bootconsole [sbi0] disabled
[    9.810562] printk: bootconsole [sbi0] disabled
[    9.863872] libphy: Fixed MDIO Bus: probed
[    9.874843] i2c /dev entries driver
[    9.993741] NET: Registered protocol family 10
[   10.037459] Segment Routing with IPv6
[   10.042318] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   10.141414] Freeing unused kernel memory: 140K
[   10.142302] This architecture does not have kernel memory protection.
[   10.144239] Run /init as init process
mount: mounting tmpfs on /dev/shm failed: Invalid argument
mount: mounting tmpfs on /tmp failed: Invalid argument
mount: mounting tmpfs on /run failed: Invalid argument
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Initializing random number generator... [   16.221885] random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: OK
Starting dropbear sshd: [   19.262912] random: dropbear: uninitialized urandom read (32 bytes read)
OK

Welcome to Buildroot
buildroot login: root
                __   _
               / /  (_)__  __ ____ __
              / /__/ / _ \/ // /\ \ /
             /____/_/_//_/\_,_//_\_\
                   / _ \/ _ \
   __   _ __      _\___/_//_/ __             _
  / /  (_) /____ | |/_/__| | / /____ __ ____(_)__ _____  __
 / /__/ / __/ -_)&gt;  &lt;/___/ |/ / -_) \ // __/ (_-&lt;/ __/ |/ /
/____/_/\__/\__/_/|_|    |___/\__/_\_\/_/ /_/___/\__/|___/

 32-bit VexRiscv CPU with MMU integrated in a LiteX SoC

login[81]: root login on 'console'
root@buildroot:~# uname -a
Linux buildroot 5.0.13 #1 Thu Sep 12 14:20:26 CEST 2019 riscv32 GNU/Linux
root@buildroot:~# cat /proc/cpuinfo
processor       : 0
hart            : 0
isa             : rv32ima
mmu             : sv32
uarch           : spinalhdl,vexriscv

root@buildroot:~# cat /proc/meminfo
MemTotal:          19952 kB
MemFree:            7756 kB
MemAvailable:       7208 kB
Buffers:               0 kB
Cached:             9260 kB
SwapCached:            0 kB
Active:              380 kB
Inactive:              0 kB
Active(anon):        380 kB
Inactive(anon):        0 kB
Active(file):          0 kB
Inactive(file):        0 kB
Unevictable:        9260 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:           408 kB
Mapped:             2236 kB
Shmem:                 0 kB
KReclaimable:        584 kB
Slab:               2124 kB
SReclaimable:        584 kB
SUnreclaim:         1540 kB
KernelStack:         176 kB
PageTables:           60 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:        9976 kB
Committed_AS:       1672 kB
VmallocTotal:     524287 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:               32 kB
root@buildroot:~#
</code></pre>
<!--kg-card-end: markdown--><h2 id="-">参考</h2><h3 id="icesugar-pro">iCESugar-pro</h3><p><a href="https://github.com/wuxx/icesugar-pro">https://github.com/wuxx/icesugar-pro</a></p><h3 id="linux-on-litex-vexriscv">linux-on-litex-vexriscv</h3><p><a href="https://github.com/litex-hub/linux-on-litex-vexriscv">https://github.com/litex-hub/linux-on-litex-vexriscv</a></p><h3 id="linux-on-litex-vexriscv-prebuilt">linux-on-litex-vexriscv-prebuilt</h3><p><a href="https://github.com/antmicro/linux-on-litex-vexriscv-prebuilt">https://github.com/antmicro/linux-on-litex-vexriscv-prebuilt</a></p>]]></content:encoded></item><item><title><![CDATA[Windows 安装FPGA开源工具链]]></title><description><![CDATA[借助msys2 环境，简单输入几条命令，便可以在windows上轻松搭建基于ice40或者ecp5的整套FPGA开源工具链]]></description><link>https://www.muselab-tech.com/windows-an-zhuang-fpgakai-yuan-gong-ju-lian/</link><guid isPermaLink="false">600bd313d6ce4a0001d75ee3</guid><category><![CDATA[FPGA]]></category><dc:creator><![CDATA[主音]]></dc:creator><pubDate>Sat, 23 Jan 2021 07:56:19 GMT</pubDate><media:content url="https://www.muselab-tech.com/content/images/2021/01/ksnip_20210123-155500.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.muselab-tech.com/content/images/2021/01/ksnip_20210123-155500.png" alt="Windows 安装FPGA开源工具链"><p>当前，借助msys2 环境，简单输入几条命令，便可以在windows上轻松搭建基于ice40或者ecp5的整套FPGA开源工具链，msys2是基于cygwin和mingw的一套开发环境，使用msys2可以在windows上获得和linux几乎一致的开发环境，借用官方的话来说: “It provides a native build environment, based on open source software, and makes you feel right at home when you are already comfortable with Linux. ”</p><p>1 从msys2官网下载 <a href="https://link.zhihu.com/?target=https%3A//www.msys2.org/" rel="nofollow noreferrer">msys2-x86_64-20201109.exe</a>，双击并连续点击下一步安装即可</p><p>2 开始菜单输入mingw，进入msys2 的控制台窗口</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-1.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><p>3. 同步软件源</p><!--kg-card-begin: code--><pre><code>#pacman -Syu</code></pre><!--kg-card-end: code--><p>4. 安装工具链</p><!--kg-card-begin: code--><pre><code>#pacman -S mingw-w64-x86_64-eda</code></pre><!--kg-card-end: code--><p>分别选择yosys、nextpnr、icestorm、icesprog软件包安装即可，亦可根据自己需求选择其他软件包安装如gtkwave, verilator等。</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-2.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><p>5. 安装完成后，即可开始综合布线、烧录</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-3.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-4.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><p>亦可使用nextpnr的gui工具查看布局布线结果</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-5.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/image-6.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image--><!--kg-card-begin: image--><figure class="kg-card kg-image-card"><img src="https://www.muselab-tech.com/content/images/2021/01/ksnip_20210114-193613.png" class="kg-image" alt="Windows 安装FPGA开源工具链"></figure><!--kg-card-end: image-->]]></content:encoded></item></channel></rss>