tag 标签: micropython

相关帖子
相关博文
  • 2025-2-23 22:23
    290 次阅读|
    0 个评论
    【富芮坤FR3068x-C】基于REPL MicroPython实现本地音乐播放
    收到富芮坤开发板已经有很久了,今天与大家分享基于REPL MicroPython实现本地音乐播放。什么是REPL?其实REPL是Read-Eval-Print Loop 的缩写,中文可以理解为“读取-求值-输出循环”。它是一种交互式编程环境,允许用户输入代码并立即看到执行结果。REPL 是许多编程语言(如 Python、JavaScript 等)的常见特性。在 MicroPython 中,REPL 是一个非常重要的工具,它允许开发者通过串口与 MicroPython 设备(如 ESP32、ESP8266、Raspberry Pi Pico 等)进行交互式编程和调试。 本次根据官方提供的题目方向,与大家分享基于REPL MicroPython实现本地音乐播放的操作。 拿到FR3068x-C低功耗开发板首先是跑了一下关于官方提供的例程,例程基于是在官网下载的,使用的是keil打开,打开例程如下“富芮坤FR3068E-基础开发文件_202412\富芮坤FR3068E-基础开发文件_202412\sdk__202411\examples\evb_demo\lvgl_demo\MDK-ARM” 在编译的时候,发现有2个错误,按理来说官方提供的例程不会有编译报错的问题,但是确实是报错了,报错如下: ../Src/main.c(138): error: call to undeclared function 'rtc_running'; ISO C99 and later do not support implicit function declarations ../Src/main.c(323): error: call to undeclared function 'rgb_controller_reinit'; ISO C99 and later do not support implicit function declarations 这两个错误可以如下解决: 解开main.c中被屏蔽的头文件 //#include "fr_device_rtc.h" 在main.c中新增 #include "driver_st7282_rgb_hw.h" 在app_config.h中修改: #define ENABLE_PSRAM 0 再次编译发现会编译通过,没有error,这时就可以将生成的bin烧录在开发板之中。生成的bin文件Project_burn.bin路径如下:富芮坤FR3068E-基础开发文件_2024121\富芮坤FR3068E-基础开发文件_202412\sdk__202411\examples\evb_demo\lvgl_demo\MDK-ARM\output 接下来讲讲烧录,烧录使用官方提供的烧录工具即可,也可以使用daplink,其实官方板载是有个daplink的,但是daplink与屏幕引脚复用了,如果使用daplink的话,需要按住复位然后点击烧录的一瞬间松开复位(该操作需要重复若干次,即可实现烧录成功),硬件方面需要将PB10和PB11用跳线的方式跳接到SWDC和SWDO。如果用keil烧录的话,还需要将路径为“富芮坤FR3068E-基础开发文件_2024121\富芮坤FR3068E-基础开发文件_202412\sdk__202411\components\tools\keil”中的关于FR3068E的flm算法,复制到keil的Keil_v5\ARM\Flash之中才可以。本次使用的是串口烧录,串口烧录比较简单,官方板载的烧录器支持USB虚拟串口,因此不需要外接其他的线,保证PB5和PB1接入到RX和TX上即可,这样就可以利用板载的虚拟串口与FR3068E进行串口通讯。串口烧录的话就需要打开下图软件,同时知道虚拟串口在电脑的设备管理器中占用的是COM几,在这里选择好,把波特率设置为115200,打开串口,同时将要烧录的固件加载好即可。在硬件部分上电串口接好之后,按下复位键,即可实现自动烧录程序固件,该时间较长,看进度条和提示框提示即可,在提示烧录成功正常固件以成功烧录。 接下来就是基于REPL MicroPython实现本地音乐播放,由于不是很会MicroPython。所以这里参考借鉴了大佬qinyunti的工程,在这里致敬感谢,大佬的项目地址如下,各位看官需要请跳转: https://gitee.com/qinyunti/fr3068-e-c-micropython 根据大佬移植的程序固件,了解到,操作就是基于串口与 MicroPython 设备(这里指FR3068E)进行交互式编程和调试。将生成好的固件烧录开发板之中,本次需要自己接入一个扬声器,接入方法如下图所示。 既然都知道REPL是一种交互式编程环境,那我们就可以把它理解成ssh的操作了,之前大家都推荐使用SecureCRT,那我们就利用SecureCRT来实现数据的交互“音乐播放”吧。 关于SecureCRT简单配置一下,按照如下配置即可。步骤就是先创建一个回话,选择串口通讯,接下来选择正确接入开发板的串口和波特率,这里注意波特率是921600。 接下来就是配置会话交互,不然你就只能看到接收窗口,而不能输入内容。要输入内容需要如下配置: 进入到这里之后,就可以进行数据交互了,接下来就是要看交互命令是否可用呀,这时候最常用的就是help命令了,输入help命令,接收窗口会有数据返回,则代表固件烧录成功,并且已经支持了REPL。 看到help命令是不是很熟悉啊,跟ssh或者win命令差不多啊,OK,我们接着往下走,既然需要播放音乐,我们就需要加载音乐啊,本次需要利用ssh传输音频到开发板之中,然后进行播放。 传输指令如下: rxfile 2:/libiekaichuhua.wav 1921024 指令解释:rxfile:rxfile name len,传输文件,格式为名字,长度 filepath 表示文件路径,如2:/libiekaichuhua.wav filesize 表示wav文件的大小,以字节为单位,如libiekaichuhua.wav文件在磁盘的大小为 1921024 字节 将编辑好的命令,复制到交互窗口之中,如下图所示。 将命令发送之后,会有返回CCCC,这是等待接收数据的状态,接下来就是需要将数据加载上去了。加载音频操作如下:点击传输,发送xmodem,接下来选择要发送的文件即可。 接下来就会有显示开始传输字样,速度较慢,需要等待一些时间。当传输至100%之后,并且没有报错,则说明传输成功了。接下来就可以播放了。 操作命令参考: 打开功放 dacpa 1 播放音频 dacplay 2:/ libiekaichuhua.wav 停止播放 dacstop 调整音量 dacvolume 5 关闭功放 dacpa 0 这里需要打开功放,播放音频,调整音量,停止播放几个操作,均测试没问题。 至此,关于基于REPL MicroPython实现本地音乐播放得以顺利完成,这里着重感谢大佬@qinyunti分享的移植工程,感谢富芮坤电子与面包板社区的给力活动,得以学习这么优秀的MCU,品其MCU性能很是强大,关于lvgl界面做的十分流畅,后续做关于智能家居方面的产品确实是一个不错的方案选择。最后祝社区与富芮坤电子越来越好,生态做的越来越棒
  • 热度 1
    2025-2-17 10:14
    273 次阅读|
    0 个评论
    【富芮坤FR3068x-C】REPL MicroPython 播放本地音频实践
    MicroPython 简介 MicroPython 是一个精简且高效的 Python 实现,专为微控制器和嵌入式系统设计。它允许开发者使用 Python 语言在资源受限的硬件(如单片机、开发板等)上编写程序,极大地简化了嵌入式开发的过程。它的特点如下: 1. 特点 轻量化 :MicroPython 的代码库非常紧凑,适合运行在内存和存储空间有限的设备上。 兼容性 :支持大部分 Python 3 的语法和标准库,同时针对嵌入式环境进行了优化。 实时性 :提供了实时操作的功能,适合需要快速响应的应用场景。 硬件交互 :内置对 GPIO、UART、I2C、SPI 等硬件接口的支持,方便直接与硬件通信。 2. 应用场景 MicroPython 常用于以下领域: 物联网 (IoT) :控制传感器、执行器和其他 IoT 设备。 教育 :作为学习嵌入式开发和编程的工具。 原型开发 :快速构建硬件原型,验证概念。 自动化 :实现家庭自动化、工业自动化等应用。 3. 支持的硬件平台 MicroPython 可以运行在多种硬件平台上,包括但不限于: ESP8266 和 ESP32(Wi-Fi 模块) STM32 系列微控制器 Pyboard(官方开发板) Raspberry Pi Pico(RP2040 芯片) 4. 开发工具 WebREPL :通过 Wi-Fi 或串口连接设备,进行远程调试和代码上传。 Thonny :一款简单易用的 IDE,支持 MicroPython 开发。 Mu Editor :专为初学者设计的轻量级编辑器,支持 MicroPython。 VS Code 插件 :Visual Studio Code 提供了丰富的插件来支持 MicroPython 开发。 5. 学习资源 官方文档: https://docs.micropython.org 社区论坛: https://forum.micropython.org GitHub 仓库: https://github.com/micropython/micropython REPL MicroPython 工程 第一次接触MicroPython工程,感觉移植适配到一个新的平台适配工作还是挺大的。当前项目除了需要适配,还需要在 MicroPython 中新增模块,绑定开发板上的硬件播放本地音频文件,至少需要支持SD卡、文件系统、音频播放的硬件(DAC)等等。 这里偷懒,直接使用大佬 qinyunti 的工程,项目地址: https://gitee.com/qinyunti/fr3068-e-c-micropython 工程结构 裁剪了官方的 fr3068-e sdk,只保留了启动文件、驱动、蓝牙驱动、FreeRTOS,删除了 LVGL。 音频播放工程的关键代码都放在了 examples/evb_demo/lvgl_demo/src 目录下: easylogger 日志组件 fr_bt 富芮坤蓝牙应用层 fr_device 板级驱动 py 是MicroPython核心源码 py_port 是针对此款开发板的适配层,并新增了命令 shell 一个命令行组件,开机默认运行这个shell,串口接收命令 硬件环境 完成本次任务需要的硬件环境如下: SD卡,存储音频文件。 喇叭,播放音频 富芮坤 FR3068x-C 开发板,运行 MicroPython 固件 音频文件转换 使用 ffmpeg 工具把 MP3 文件转换为 WAV 文件。 从第15秒钟开始转换音乐文件 ffmpeg/ffmpeg.exe -i apple.mp3 -ac 1 -ar 16000 -acodec pcm_s16le -ss 00:00:15 -t 00:01:15 apple.wav 部分shell命令 传输音频文件 开发板和上位机通过串口传输文件,使用 Xmodem 或者 Ymodem,需要在开发板实现对应的 shell 命令,并支持把文件写入 SD 卡。 开发板shell命令接收音频文件 rxfile filepath filesize filepath 表示文件在SD上的文件路径,例如 2:/apple.wav filesize 表示wav文件的大小,以字节为单位,例如 apple.wav 文件在磁盘的大小为 2400130 字节 例如开发板shell命令中输入 rxfile 2:/apple.wav 2400130 命令,然后在上位机工具通过 Xmodem 发送 apple.wav 文件,如下图所示: 传输完毕,开发板打印 res:1 shell 播放音频 打开功放 dacpa 1 关闭功放 dacpa 0 播放音频 dacplay 2:/apple.wav 停止播放 dacstop 调整音量 dacvolume 20 micropython 播放音频 从shell进入micropython环境,输入命令 micropython。 从 micropython 环境退出,按住 ctrl+d 组合键。 输入以下代码播放音频 python import pyb audio = pyb.AUDIO(1) # 开始播放 audio.play("2:/apple.wav") # 停止播放 audio.stop() # 调节音量 audio.volume(5) # PA 开 audio.mute(0) # PA 关 audio.mute(1) 视频演示
  • 热度 3
    2025-2-12 09:19
    653 次阅读|
    4 个评论
    【富芮坤FR3068x-C】从入门编译烧录到使用micropython播放音乐
    0、资料下载 FR3068E-C开发板官网资料下载地址: https://www.freqchip.com/sjds 下载开发文档即可。另外有官方培训视频地址: https://www.bilibili.com/video/BV12qqmYCE8U 1、Keil开发环境配置及编译烧录 先参照网络上的教程安装Keil和python3,keil建议安装5.35及以上版本。 废话不多说,先直接打开这个路径下的工程sdk__202411\examples\evb_demo\lvgl_demo\MDK-ARM\Project.uvprojx 1.1、配置工程 先按照下图步骤,配置工程的器件和调试参数 上图3的地方是加载这个路径的文件..\..\..\..\components\tools\keil\debug_xip_flash.ini 上图编译完成后运用的脚本命令是: "..\..\..\..\components\tools\keil\post_process.bat" "@L" "#L" "$J" 接下来配置下载算法,先将\components\tools\keil目录下的*.FLM文件拷贝到Keil的安装目录下的\Keil_v5\ARM\Flash目录下面。然后按照下图进入下载算法页面。 然后最终的配置情况如下: 值得注意的是,如果版本比5.35小,比如我的是5.30,需要 最先 做如下配置: 然后才能出现文档中ARMCM33_DSP_FP的器件选择。 1.2、烧录 工程配置编译通过后,的打印信息如下: 并且sdk__202411\examples\evb_demo\lvgl_demo\MDK-ARM\output目录下会生成5个Projict开头的文件,分别是:Project.bin、Project.txt、Project.hex、Project_burn.bin、Project_mp_burn.bin 然后进行烧录,我们会发现烧录器识别不到芯片,如下图 这是因为开发板自带了程序,然后对应的烧录引脚被程序使用了,或者程序休眠了,这样都是不会识别到主控芯片的,我们可以通过串口烧录。 还有就是因为主控是双核设计,所以也建议不使用调试器在线调试,直接使用串口打印的方法调试。而且因为swd和LCD引脚共用,接通PB10和SWD,屏幕会因此会花屏。 打开解压后的烧录工具,路径是:烧录工具\FreqChip_Download V1.3.8.7\FreqChip_Download V1.3.8.7\FreqChip_Download.exe 然后按照下图配置加载工程烧录文件Project_burn.bin 然后打开串口,打开烧录 然后按下电路板的复位按键,可以看到已连接和烧录进度的信息。 烧录成功后会提示“烧录成功”信息。 然后重新配置串口波特率,复位系统,即可看见工程的串口打印信息。 1.3、demo工程演示视频 审核难通过,就不发了。 2、使用micropython播放音乐 这里参考的是论坛大牛qinyunti的开源项目,开源地址是: https://gitee.com/qinyunti/fr3068-e-c-micropython.git 代码编译烧录后复位重启首次打印信息如下: shell的帮助命令help 格式化文件系统mkfs 2:/和挂载文件系统mountfs 2:/ 查看flash文件系统剩余空间free 2:/ 使用xmodem协议传送音频文件到flash文件系统 传输速度有点低啊,才3KB/sec,传输到一半时已经到了937K,这个时候按下Ctrl+c终止传输如下 然后列出文件ls 2:/就可以看到传输的haikuotiankong.wav文件了,大小是960078个字节 使用micropython演示两个变量相加{a=11,b=22,print(a+b)} 使用micropython播放接收的音频文件 播放文件的时候可以使用audio.stop()结束播放 相关函数解释 audio.mute(1) 静音 audio.mute(0) 不静音 audio.volume(1)可以听到声音变小 最后使用Ctrl+d可以退出micropython环境。
  • 热度 35
    2020-3-30 13:33
    9914 次阅读|
    0 个评论
    【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境
    喜欢今日头条,偶然看到广告,半个多月前交了8.9元,报名参加了头条上Python的四天培训课,呵呵,总算是有了零的开始(还是有点收获的,见 https://www.sohu.com/a/381128744_120248280 )。三天前搜到这个电子工程世界论坛,马上注册了ID,发现这里可能是学习交流MicroPython的最大平台....... 春节新冠疫情过后,我入手了一块支持MicroPython的开发板(性价比还行,百多元),国产自主知识产权的K210芯片,从零开始学习,尝试动手做实验。 自2018年9月6日,嘉楠科技推出自主设计研发的全球首款基于RISC-V的量产商用边缘智能计算芯片勘智K210,至今使用K210芯片的开发板已经很多了,比如号称第一款采用RISC-V芯片设计的香蕉Pi板BPI-K210,还有KD233、Sipeed M1(荔枝丹),MAIX Bit,M5Stick-V,MAIX GO,pyAI- K210,MAIX Dock,PaddlePi-K210和Maixduino等。 图为香蕉Pi板BPI-K210 最后选择Maixduino的理由挺简单的,就是这款开发板的版型能够兼容Arduino UNO的许多资源,相对来说其生态环境要好一些。作为测试的简单实验,半个月左右,先后尝试了在Maixduino上,配置Arduino IDE与PlatformIO IDE开发环境(win10)。 https://cn.bbs.sipeed.com/d/102-maixduino2-arduinowin10 https://cn.bbs.sipeed.com/d/154-maixduino8-platformio-idewin10 1、安装开发板串口驱动 正常情况下,win10 ,linux3.0+ ,mac os都可以自动识别并安装串口驱动。如果遇到驱动失败,可以去 FTDI 官网下载对应的 VCP 驱动程序。 https://www.ftdichip.com/Drivers/VCP.htm win驱动下载地址: http://www.ftdichip.com/Drivers/CDM/CDM21228_Setup.zip 如果到驱动安装不正确,请彻底卸载原驱动,下载官方驱动,切断网络并安装驱动即可解决问题。 2、下载K210开发板固件,更新MaixPy固件相当于给开发板烧录系统,使用Type C 线连接开发板和电脑,下载开发板固件,方式有两种: (1)GitHub发布的固件(下载最新版本) https://codeload.github.com/sipeed/MaixPy/zip/master 2)官方最新提交的固件版本 https://dl.sipeed.com/MAIX/MaixPy/release/master/ 这里选择了v0.5.0_31版本 打开后应该是选择最后这个(固件完整版) 通常一个固件文件中至少有四个文件,以“maixpy_v0.5.0_31_gd3e71c0”固件为例,具体说明如下: eif_maixpy_v0.5.0_31_gd3e71c0.7z: 普通用户不用关心,用于死机调试; maixpy_v0.5.0_31_gd3e71c0_m5stickv:M5STACK环境; maixpy_v0.5.0_31_gd3e71c0_minimum: MaixPy固件最小集合,不支持 MaixPy IDE, 不包含OpenMV的相关算法; maixpy_v0.5.0_31_gd3e71c0.bin:完整版的MaixPy固件。 这里我们需要使用maixpy_v0.5.0_31_gd3e71c0.bin:完整版的MaixPy固件。 3、下载烧录软件kflash_gui 应用,直接下载GitHub项目工程,下载完成点击“kflash_gui.exe”文件安装。 资料页 https://github.com/sipeed/kflash_gui 下载页面 https://github.com/sipeed/kflash_gui/releases 只下载了V1.5版本,其他还在下载之中....... 出错了,无法安装kflash_gui.exe 后来只好把所有版本都下载,逐一试试....... 经测试,1.24、1.25和1.32都能打开(这里使用v1.32版本来烧录固件) 红点标注处的几个选项要选好 附:kflash_gui 特性 支持 *.bin 和 *.kfpgk 文件, 支持文件选择器选择 支持开发板选择 可选择程序烧录到 Flash 或者 SRAM 自动检测电脑上的串口 波特率可编辑 黑白两种皮肤可供选择 界面支持中英文切换 支持烧录进度显示和烧录速度显示 支持取消下载进程 支持合并多个 bin 文件为一个 bin 文件 支持把 kfpkg 文件转换为一个 bin 文件 支持使能 bin 文件 自动识别文件是不是固件 kflash_gui 使用方法 下载文件(kflash_gui_v*.*) 下载地址:release页面 解压, 并双击 kflash_gui.exe 或 kflash_gui 可以自行建快捷方式或者固定到开始页面或者固定要任务栏方便使用; 如果是 Linux, 可以修改 kflash_gui.desktop 里面的路径, 然后用管理员身份复制到/usr/share/application 目录, 然后就可以在系统菜单里面找到kflash_gui的图标了,点击即可打开 选择 bin 文件或者 kfpkg 文件, 如果是bin文件需要指定地址,如果是固件需要指定0x0000地址 选择开发板 选择烧录到开发板的哪个位置 Flash(速度慢但是重新上电还可运行) 或者 SRAM(RAM中运行,下载快断电丢失程序) 选择串口 选择波特率,推荐1.5M 点击 下载 按钮来开始下载 如果需要取消,点击 取消 按钮 4、下载MaixPy IDE,MaixPy 使用Micropython 脚本语法,所以不像 C语言 一样需要编译,要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上(这里使用V0.5.0), 否则MaixPy IDE上会连接不上, 使用前尽量检查固件版本和IDE 版本,都更新到最新版以保障能正常使用。 https://cn.dl.sipeed.com/MAIX/MaixPy/ide https://dl.sipeed.com/MAIX/MaixPy/ide/_/v0.2.4/maixpy-ide-windows-0.2.4.exe 5、下载结束,进行安装 6、测试运行MaixPy IDE (1)确定开发板:工具——选择开发板——Maixduino (2)安装驱动,选择端口 工具——打开终端——串行端口——COM6——115200 (3)开始连接 图标绿色变红色表示已连接,见底栏,显示固件版本 V0.5.0 7、使用串口工具 (1)连接硬件 连接 Type C 线, 一端电脑一端开发板 查看设备是否已经正确识别: 在 Windows 下可以打开设备管理器来查看 如果没有发现设备, 需要确认有没有装驱动以及接触是否良好 (2)下载串口工具 (a) putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html (b)xshell https://xshell.en.softonic.com/download (3)然后选择串口模式, 然后设置串口和波特率,打开串口。 4)检查固件版本 使用串口终端PuTTY打开串口,然后复位(或按ctrl+D),看输出的版本信息,与github 或者 master 分支 的固件版本对比,根据当前版本情况考虑升级到最新版本。这里烧录的固件版本是“ v0.5.0-31-gd3e71c0” 。 (5)串口终端PuTTY的控制命令: CTRL-A-在空白行上,进入原始REPL模式 CTRL-B-在空白行上,进入常规REPL模式 CTRL-C-中断正在运行的程序 CTRL-D-在空白行上,对电路板进行软复位 CTRL-E-在空白行上进入粘贴模式 (6)有关可用模块的列表,请键入help('modules') KPU gc random uio Maix hashlib re ujson __main__ heapq sensor ulab _boot image socket uos _thread json struct urandom _webrepl lcd sys ure array machine time usocket audio math touchscreen ustruct binascii math ubinascii utime board micropython ucollections utimeq builtins modules ucryptolib uzlib cmath nes uctypes video collections network uerrno zlib errno os uhashlib fpioa_manager pye_mp uheapq Plus any modules on the filesystem 8、Hello world! #尝试搭建K210的Micropython开发环境(Win10) #实验程序之一:串口打印‘hello maixpy’,固件版本号
  • 热度 11
    2020-3-29 12:34
    5704 次阅读|
    1 个评论
    【雕爷学编程】MicroPython动手做(01)——春节后入手了K210开发板
    Python的开放、简洁、黏合正符合了现发展阶段对人工智能、大数据分析、可视化、各种平台程序协作产生了快速的促进作用。自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢经过了太漫长的时间,然而可能也与国情与发展需求有着相当的关系。总之,越来越多人开始使用Python。 MicroPython是在单片机上跑的Python。官方的开发板是PYBoard,但是这个板子比较少见,价格也比较贵。幸好MicroPython支持多种开发板,我们可以在其他开发板上很好的运行MicroPython,效果是一样的。基于32-bit的ARM处理器,比如说STM32F4和F7系列等,也支持cc3200、esp32和esp8266(常用wifi模块-以后玩可做互联网用途),树莓派,香蕉派还有BBC Micro:bit开发板等。 春节新冠病毒疫情过后,我入手了一块支持MicroPython的开发板,国产自主知识产权的K210芯片,从零开始学习,尝试动手做实验。 2018年9月6日,嘉楠科技推出自主设计研发的全球首款基于RISC-V的量产商用边缘智能计算芯片勘智K210。该芯片依托于完全自主研发的AI神经网络加速器KPU,具备自主IP、视听兼具与可编程能力三大特点,能够充分适配多个业务场景的需求。作为嘉楠科技自主研发的边缘侧AI芯片,勘智K210兼具高能耗比和灵活性。在算力方面,勘智K210可在0.3W的条件下提供1TOP的算力支持,充分适配在多数业务场景中低功耗约束下的算力需求。 在芯片集成度方面,勘智K210采用视听一体化设计。在机器视觉上,芯片基于自主研发的神经网络加速器KPU,可完成基于神经网络的图像分类任务,进行人脸识别与检测,以及实时获被检测目标的分类。在听觉能力上,芯片自带APU语音处理单元,最高可支持8路音频数据及16个方向,无需占用CPU即可实现声源定向、声场成像、波束形成、语音识别与唤醒等功能。 在算法定制化方面,勘智K210在可编程能力上呈现出更高的灵活性。首先,相比ARM等架构,勘智K210采用RISC-V架构,拥有更强的可定制化能力,便于开发者根据具体应用场景定制算法。其次,芯片搭载FPIOA现场可编程IO阵列,支持TensorFlow、Keras、Darknet、PaddlePaddle和Caffe等主流AI编程框架,以及全面的开发文档,对开发者十分友好。此外,芯片内置64位双核处理器架构,分为计算核与应用核,能够为开发者提供足以应对复杂业务场景的计算资源。 K210系统架构 K210 包含 RISC-V 64 位双核 CPU,每个核心内置独立 FPU. K210 的核心功能是机器视觉与听觉,其包含用于计算卷积人工神经网络的 KPU 与用于处理麦克风阵列输入的 APU. 同时 K210 具备快速傅里叶变换加速器,可以进行高性能复数 FFT 计算。因此对于大多数机器学习算法,K210 具备高性能处理能力。K210 内嵌 AES 与 SHA256 算法加速器,为用户提供基本安全功能。K210 拥有高性能、低功耗的 SRAM,以及功能强大的 DMA,在数据吞吐能力方面性能优异。K210 具备丰富的外设单元,分别是:DVP、JTAG、OTP、FPIOA、GPIO、UART、SPI、RTC、I²S、I²C、WDT、Timer 与 PWM,可满足海量应用场景。 基于RISC-V开源指令集 RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经四代RISC处理器原型芯片。每一代RISC处理器都是在同一人带领下完成,那就是加州大学伯克利分校的David A. Patterson教授。与大多数ISA相反,RISC-V ISA可以免费地用于所有希望的设备中,允许任何人设计、制造和销售RISC-V芯片和软件。图1展示了此前的四代RISC处理器原型芯片。它虽然不是第一个开源的的指令集(ISA),但它很重要,因为它第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计服务器CPU,家用电器cpu,工控cpu和用在比指头小的传感器中的cpu。 与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。RISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。截至2017年5月,RISC-V已经确立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。 勘智K210成支持RISC-V NOMMU范本 如果谈及嵌入式领域,RISC-V或许是你绝对绕不过的一个知识点。虽然ARM依旧是移动端的霸主,但RISC-V被外界赋予了太多意义,架构本身适合于颇具前景的嵌入式开发,其免费开源的特性也在当前的国际环境中备受关注,俨然成为移动端领域的新晋网红。 RISC-V大势所趋,市场上也涌现了一些基于该架构的芯片与开发模组,例如很多开发者正在使用的勘智K210。去年底,名为Jean-Luc的资深工程师分享了将Linux5.1系统部署在K210处理器上的工作。同时,他也在文中引用了西部数据的分享,勘智K210被作为支持RISC-V NOMMU的示范列入其中。 在AI领域,神经网络属于计算密集型场景,人脸识别等算法往往会受到边缘侧应用场景的功耗限制。嘉楠表示ARM在实际计算的过程中往往会伴随大量的能耗,并不是非常经济的架构。公开资料显示,嘉楠是RISC-V联盟中前五家使用RISC-V架构的厂商之一。在勘智系列AI芯片的研发中,嘉楠使用了RISC-V RocketChip,减少了大量相关的工作量,也节省了大量的研发人力成本,以及IP授权的成本。 目前,勘智K210及其开发模组受到不少开发者的青睐,吸引了来自百度、阿里等国内顶尖AI团队的目光。例如嘉楠为百度AI开发平台PaddlePaddle定制开发模组PaddlePi-K210,打通了PaddlePaddle 模型设备端部署解决方案。开发人员不需要硬件更改,使用公版模具就可以一直做到样品阶段。在前沿项目的探索上,勘智K210兼容阿里最新TinyML算法模型,是可用于探索TinyML科研项目的RV平台。 Maixduino 基于MAIX模块,是用于AI + IoT应用的RISC-V 64开发板。与其他Sipeed MAIX dev不同。主板Maixduino采用Arduino Uno外形设计,板载ESP32模块和MAIX AI模块。MAIX是Sipeed专门设计的产品系列,专为在边缘运行AI而设计。将AI模型从云端移动到网络边缘的设备,在这些设备上运行速度更快,成本更低,隐私性更高。 CPU:带FPU的双核64位RISC-V;400MHz神经网络处理器 QVGA@60FPS/VGA@30FPS图像识别 板载ESP32模块支持2.4G 802.11.b/g/n和蓝牙4.2 Arduino Uno外形,Arduino兼容接口 板载全向I 2 S数字输出MEMS麦克风 用于DVP相机的24P 0.5mm FPC连接器 8位MCU LCD 24P 0.5mm FPC连接器 基于卷积神经网络的机器视觉 支持自弹式micro SD卡支架 重置和启动按钮;3W DAC+PA音频输出 连接USB Type-C电缆以完成下载 用于机器听觉的高性能麦克风阵列处理器 支持MaixPy IDE、Arduino IDE、OpenMV IDE和PlatformIO IDE 支持Tiny-Yolo、Mobilenet和TensorFlow Lite,用于深度学习 标配Sipeed_OV2640摄像头 OV2640主要参数 可以支持定制FPC长度,镜头角度(70-160度)可以支持定制FPC长度,镜头角度(70-160度) 感光阵列1632x1232 最大格式UXGA IO电压1.7V-3.3V 模拟电压2.5-3.0v(内部LDO给核供电1.2V) 功耗工作TBD 休眠<20μA 温度操作-30℃到70℃ 稳定工作0℃到50℃ 输出格式(8位)YUV/YCbCr4:2:2 RGB565/555/444 GRB4:2:2 Raw RGB Data 光学尺寸1/4" 视场角70度 最大贞率15fps SXGA 灵敏度1.3V/(Lux-sec) 信噪比40 dB 动态范围50 dB 浏览模式逐行 电子曝光1行到1247行 像素面积2.2μm x 2.2μm 暗电流15mV/s at 60℃ 工作电流40mA 标配ST7789驱动器芯片2.4寸LCD屏(24P 320X240) 1. 模块名称:液晶显示模块 2. 型号:KD024C-4 3. 同类型型号: 4. 兼容型号: 5. 显示模式:TFT 6. 显示色彩:65/262K 7. 分辨率: 240*320 8. 点距:0.153 (H) x 0.153 (V) 9. 视角:12:00 10. 控制IC:ST7789V 11. 显示类型:全透型,常白 12. 外形尺寸:42.72*60.26*2.6mm 13. 可视面积:38.32*50.56 mm 14. 点阵区面积:36.72*48.96mm 15. 亮度:300cd/m2 16. 对比度:500 17. 接口类型: 8/9/16/18位8080并口 16/18位RGB接口 3/4线SPI接口 18. 引脚数:24 19. 引脚距离:0.5mm 20. 连接类型: FPC插接型 21. 工作电压:3.3V 22. 背光灯颜色及类型: 白色LED背光 23. 背光电路:4 LED 并联, 共阳 If=80mA, Vf =3.2V 24. 使用寿命:100000h 25. 工作温度:-20----70°C 26. 储存温度:-30----80°C 27. 质量体系认证:ISO9001:2008 28. 产品认证:RoHS
相关资源