MAX78000FTHR简单介绍与初次上手

news2024/11/17 21:21:08

特点

MAX78000FTHR是基于MAX78000的小型板微控制器单元(MCU)。

该 MCU 面向在边缘运行的人工智能 (AI) 应用程序。在这种情况下,“边缘”并不意味着技术的前沿(尽管这就是芯片);这意味着靠近需要它的地方,甚至靠近传感器,而不是在数据中心附近的某个地方。例如,边缘是在您的家中或汽车中,甚至是您穿的东西。在边缘运行的 AI 应用程序完全可以自行完成工作,而无需将复杂的计算分包给云服务。为此,它需要大量的处理能力,这就是为什么 MAX78000 将 ARM Cortex-M4 处理器与浮点单元 (FPU)、卷积神经网络 (CNN) 加速器和 RISC-V 内核组合成一个单个设备。

此外,生活在边缘的设备不应该消耗大量能量,因此 MAX78000 还专为超低功耗运行而设计。MAX78000节能且功能强大,据其制造商称,它可以在不到 1/100的时间内进行 AI 推理(即回答“这张照片中是谁?”或“那是什么声音?”等问题)其他嵌入式解决方案的能量。

卷积神经网络

CNN 是一种特殊的神经网络,其核心使用卷积。卷积是图像和信号处理中经常遇到的数学运算,您可以将其视为一种(匹配)滤波。CNN 是一组过滤器,用于检查输入信号的某些特征。CNN 在声音和图像处理应用中特别有用,因此 MAX78000 还集成了相机接口和用于流式音频的I2S也就不足为奇了。它的 CNN 针对 1D(声音)和 2D(图像和视频)处理进行了优化。

除了已经提到的模块和外设之外,MAX78000 还包括微控制器中常见的最常见外设以及一些与物联网安全相关的特殊功能,例如随机数发生器 (RNG) 和 AES 加密引擎。

MAX78000FTHR

是一个小型模块 — 66 × 23 mm — 具有 MAX78000、微型 VGA 摄像头、数字麦克风、立体声音频 I/O、microSD 卡插槽、1 MB QSPI RAM、SWD 调试器/编程器USB 端口和锂聚合物电池充电器。还有两个用户 RGB LED 和两个用户按钮以及与 Adafruit Feather 外形兼容的扩展连接器。一个单独的 JTAG 连接器可用于对 RISC-V 内核进行编程和调试。

MAX78000FTHR 板具有两个扩展连接器。微型摄像头位于 GPIO 引脚 P0_5 和 P0_6 的右侧;microSD 卡连接器位于电路板的背面。

当连接到计算机时,该板被识别为一个复合 USB 设备,包括一个 DAP 链接加上 CMSIS DAP WebUSB、一个大容量存储设备和一个串行端口。该板预装了音频关键字发现 (KWS) 演示。如果您启动串行终端并将其连接到开发板的串行端口,您将看到使用演示的说明。

你能用它做什么?

开箱即用,该演示可识别英文单词“Zero”到“Nine”、“Go”、“Stop”、“Left”、“Right”、“Up”、“Down”、“On”和“Off” . 当它检测到“Go”这个词时,演示会进入数字识别模式,在这种模式下,它会按照扬声器的指令闪烁 LED 灯的次数。也就是说,说“六”后,LED 会闪烁六次。“停止”返回正常模式。串行监视器显示有关演示对其性能的信心程度的信息。

为了超越预加载的演示应用程序(例如实现系统控制,如切换 GPIO 或通过另一个接口传输数据),需要一个开发环境。为此,Maxim 准备了 Maxim Micros SDK,您可以从他们的网站免费下载。

SDK 是一个基于 Eclipse 的工具链,也可以与 Maxim 的其他基于 ARM 的 MCU 一起使用。它包含 Eclipse IDE、MinGW、用于 ARM 和 RISC-V 处理器的 GCC 工具链、OpenOCD 和一些其他实用程序。此外,SDK 还包含库、示例和文档;简而言之,这就是您在 Windows 上运行所需的全部内容。

开始吧

启动 Eclipse MaximSDK 并选择或定义一个工作区。确保路径中没有空格。如果存在,则 Eclipse 将无法编译项目,或者您的工作区可能不在应有的位置。

当 IDE 打开时,您将看到一个可以忽略并关闭的欢迎屏幕。您现在可以创建新项目或导入现有项目。

要创建一个新项目,展开C/C++行并选择Maxim Microcontrollers向导,单击Next并输入项目名称。再次单击Next ,在打开的对话框中,将Chip type设置为MAX78000,board type 设置为FTHR_RevA,以及CMSIS-DAP的适配器类型。作为示例类型,选择与您计划做的最相似的内容,然后单击Finish创建项目。

选择合适的包

现在您必须首先修复该项目,因为即使您选择了 MAX78000FTHR 板,该项目也是为 MAX78000EVKIT 创建的。请记住这一点,因为 SDK 中的几乎所有内容都默认使用此工具包。有两种方法可以选择正确的电路板(您甚至可以同时使用两种方法,但效果不会更好):

  • 指定makefile 使用的板部分中,取消注释FTHR_RevA板并注释掉EvKit_V1图 4)。完成后保存文件。

makefile 默认为 MAX78000EVKIT,在与 MAX78000FTHR 一起使用之前必须进行编辑。

编辑 build 命令,可通过C/C++ Build部分中的项目属性对话框访问。将BOARD=FTHR_RevA添加到构建命令框(图 5)并单击按钮Apply and Close

如果您希望保持 makefile 不变,则将 MAX78000FTHR 板定义添加到项目的构建命令中。

可以肯定的是,在继续之前清理项目。Clean 可从Project菜单或在Project Explorer窗口中右键单击项目后使用。

现在构建并运行或调试项目。单击运行(带有白色三角形的绿点)或调试(小错误)可能会弹出一个名为Create, manage and run configurations的窗口。如果是,请展开GDB OpenOCD Debugging行并选择您的项目,然后再继续。

如果您在调试模式下启动,程序将在 main 开始处停止。使用“运行”菜单中的可用命令来逐步执行程序并检查变量。

导入示例

从“文件”菜单中,单击“导入...”以导入示例。展开第一行General,然后选择向导Existing Projects into Workspace。进入根目录。对于 SDK 示例,这是 MaximSDK\Examples\MAX78000。这将为您提供示例列表,您可以从中选择要导入的示例。如果您愿意,您甚至可以将它们全部导入。

要继续我们之前开始的关键字发现之旅,请取消全选,然后检查kws20_demo。还要检查将项目复制到工作区,因为我们要修改示例并且我们希望保留原始文件。

请注意,有一些项目需要不在其包含文件夹中的文件。复制项目时不会复制这些文件,编译将失败。您必须自己复制这些文件或编辑生成文件以修复这些文件的路径。例如,cats-dogs_demo项目需要Common文件夹,因此也复制该文件夹(而不是使用原始示例,或者更糟糕的是,将示例文件夹作为工作区)。

导入示例项目后,如上所述更改其目标板。构建示例并尝试一下。如果一切正常,您可以对其进行修改。

我更改了 KWS 演示,以便在听到On一词时使引脚 P2.3 变为高电平并在识别到单词Off时清除该引脚。根据关键字,LED 将为绿色 ( On ) 或红色 ( Off )。如果识别出另一个关键字,LED 变为蓝色,但引脚不改变状态。引脚 P2.4 表示信心。当推理置信度太低 (≤95%) 时,此引脚变为低电平。

最后,我添加了 UART2。此串行端口在扩展头上可用,因此它可以连接到另一个系统以处理通过此链接传入的数据。所有被识别概率高于 95% 的关键字都通过此链接发送。关键字OnOff以'Y,'开头,其他关键字以'N,'开头。如果置信度较低,则字符串以“?,”开头。随意将这种任意编码方案更改为对您的应用程序更有用的东西。

你可以从 GitHub下载我的项目。在那里,您还可以找到猫/狗检测器演示的引脚切换版本,它在 UART2 上输出额外数据。

MAX78000FTHR:需要考虑的事项

当您准备开始使用 MAX78000FTHR 时,请记住以下几点。

  • I/O 端口上的电压电平默认为 1.8 V。当使用函数MXC_GPIO_Config配置引脚时,您可以通过填写mxc_gpio_cfg_t结构的vssel字段来更改每个引脚。对于 3.3 V,您需要MXC_GPIO_VSSEL_VDDIOH(默认为MXC_GPIO_VSSEL_VDDIO,末尾没有“H”)。
  • UART2 的 TX 和 RX 等备用引脚功能也存在电压电平问题。但是,它们的引脚配置结构在某种程度上是只读的,因此您无法更改vssel字段。一种解决方法是首先复制结构,修改副本,然后像任何其他引脚一样使用它来(重新)配置引脚。如果您知道这样做的更好方法,请告诉我。
  • 函数MXC_GPIO_OutPut不允许我设置引脚的值,我不得不使用MXC_GPIO_OutSetMXC_GPIO_OutClr代替。原因似乎是传入的引脚值。零按预期工作,但不是 1。要使其工作,请将其传递为 -1(减一,即 0xffffffff)...
  • Maxim在 GitHub 上为 MAX78000 板和工具创建了存储库,您可以在其中找到包括教程和示例在内的所有内容的最新版本。
  • SDK 附带 MinGW 作为 Eclipse 的替代方案。因此,如果您更喜欢控制台而不是 IDE,那么您也已准备就绪。
  • MAX78000FTHR 上的微型相机上可能有一些保护膜(图 6)。在尝试基于相机的应用程序之前,请务必将其删除。

开始试验

您现在已经准备好开始使用 MAX78000FTHR 板来试验机器学习和人工智能了。在这篇文章中,我们只触及了这个强大的板子的表面,接下来还会有一些更深入的文章。在这里,我们向您展示了如何设置开发环境以及如何修改一些示例,以便在自定义应用程序中使用预训练的 AI 示例。

我们尚未涉及的主题之一是 AI 培训。尽管这是一项耗时且耗费资源的任务,但如果您希望 AI 应用程序处理您的数据,则必须完成此任务。有关如何执行此操作的更多信息,请参见GitHub 上的 Maxim 存储库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vector对于自定义类型的操作(memcpy浅拷贝问题)

目录 如果对于不涉及资源管理的自定义类型的操作(Date): 对涉及资源管理类操作(String): 一、插入四个元素(代码正常编译没有任何资源泄露问题) 二、当插入第五个元素时&#xf…

【C++进阶】Map 和 Set(详解)

🌈欢迎来到C专栏~~Map 和Set (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&am…

【JavaScript】DOM 的概念、获取DOM元素和操作元素属性

文章目录【JavaScript】DOM 的概念、获取DOM元素和操作元素属性一. 概念二. DOM 操作(1) 获取DOM元素的方式1. document 获取元素方法2. 通过 HTML5 新增的方法获取案例:登录界面密码显示与隐藏(2) 读写元素内部的结构内容1. 改变元素节点里的内容2. 改变元素节点的…

操作系统的基本概念、功能、目标

文章目录🎀前言:本篇博客知识总览🪂操作系统所处位置📖操作系统的概念🎯操作系统的功能和目标🪅1.操作系统作为系统资源的管理者🪅2.操作系统作为用户与计算机硬件之间的接口🪅3.操作…

连接数据库和简单操作数据库

连接数据库和简单操作数据库JDBC程序编写步骤创建一个演员表数据库表的连接前置工作五种连接方式方式五的配置文件配置文件里面的内容通过JDBC进行对actor表操作。ideal执行后的结果数据库actor表结果JDBC程序编写步骤 1.注册驱动-加载Driver类 2.获取连接-得到Connection 3.执…

【阶段一】Python快速入门04篇:运算符、循环语句、条件语句与函数

本篇的思维导图: 运算符 算术运算符 算术运算就是常规的加、减、乘、除类运算。下表为基本的算术运算符及其示例。 描述 代码

【C++常用容器】STL基础语法学习map容器

目录 ●map基本概念 ●map构造和赋值 ●map大小和交换 ●map插入和删除 ●map查找和统计 ●map排序(map初始排序顺序为从小到大,用仿函数将其改为从大到小) ●map基本概念 map中的所有元素都是pair,pair中第一个元素为key&a…

【WeThinkIn出品】2022年度总结

Rocky Ding公众号:WeThinkIn写在前面 【WeThinkIn出品】栏目专注于分享Rocky的最新思考与经验总结,包含但不限于技术领域。欢迎大家一起交流学习💪 这篇文章发布的时候,应该已经是2023年了。在这里Rocky祝大家元旦快乐&#xff01…

前端最常用的几个线上设计网站

文章目录前言CoDesign 腾讯自研设计平台【墙裂推荐】蓝湖- 高效的产品设计协作平台【墙裂推荐】zeplin Deliver on the promise of design 【国外,不推荐】总结前言 随着IT技术的不断进步,很多团队都将很对线下工作转移到了线上,不仅便捷&a…

Ae 效果详解:毛边

Ae菜单:效果/风格化/毛边Effects/Stylize/Roughen Edges毛边 Roughen Edges效果可使得 Alpha 通道的边缘变粗糙,可以为图像添加各种边缘效果。通过分形影响改变边缘样式,并可增加颜色以模拟铁锈和其他类型的腐蚀。此效果可为文本或图形提供自…

算法之数组常见题目

数组是存储在连续内存空间上的相同类型数据的集合。在数组中可以方便地通过下标索引的方式获取对应的数据。 需要注意的是: 数组的下标都是从0开始的。数组在内存空间是连续的,所以删除或者增添元素时难免要移动其他元素的地址,只能覆盖。 …

【Kubernetes | Pod/容器】如何修改 Pod 中容器的守护进程

目录题1. 环境设定1.1 创建名为 vmware-nginx 的 Pod2. 查看容器默认守护进程2.1 查看容器所在节点2.2 查看容器ID2.3 查看容器中运行的进程信息3. 修改容器默认守护进程3.1 类比 Docker3.2 修改 YAML 文件改变默认守护进程参数说明4. 验证4.1 删除旧的 vmware-nginx.yaml 容器…

质性分析软件nvivo的学习(一)

1、软件安装: 科研也是需要投资的,建议淘宝购买软件,价格60米。 2、软件基础使用说明: 说明:以下笔记来源都是通过B站视频自学总结的,您可以选择通过下面的B站视频学习,也可以选择通过我总结的内容速学。…

(Week 9)图论(C++,Dijkstra,Floyd)

文章目录【深基18.例3】查找文献(C,图的遍历)题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1解题思路:【模板】floyd(C)题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样…

内核内存管理

1.内核内存管理框架 内核将物理内存等分成N块4KB,称之为一页,每页都用一个struct page来表示,采用伙伴关系算法维护 内核地址空间划分图: 3G~3G896M:低端内存,直接映射 虚拟地址 3G 物理地址 细分为&a…

我国软件供应链安全现状学习分析整理分享 附完整下载地址

声明 本文是学习2021年中国软件供应链安全分析报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 一、前言 数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一&#…

MATLAB | 绘图复刻(五) | 带树状图的环形热图

本期教大家如何绘制带树状图的环状热图,要复刻的图片长这样: 复刻效果: 需要安装Statistics and Machine Learning Toolbox即统计与机器学习工具箱!!! 需要安装Statistics and Machine Learning Toolbox即…

对DataFrame的数据进行指定运算的DataFrame.transform()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 对DataFrame中所有数据实施指定运算 例如:df1.transform(np.abs) 选择题 关于以下python代码说法错误的一项是? import pandas as pd import numpy as np df pd.DataFrame({&…

上班摸鱼软件

上班摸鱼软件前言思路采集组合自动下单发QQ报告结语前言 疫情几年,在家时间多,上班时间少。没事多在网上闲逛,偶然在知乎上看到一篇文章,说是买球也能稳赚不赔。我研究了一下,还真是这么回事。 简单来说,就…

转换通达信分钟数据,包括5分钟和1分钟数据

目录 1 前言 2 操作演示 3 代码 4 软件下载 5 stockpy整体功能介绍 1 前言 真正的市场高手不但要熟练掌握日线,对分钟线也要进行深入研究。缠中说禅在他的博客中讲到,年、季、月、周、日、60分钟、30分钟、5分钟、1分钟研究道理是相同的。粒度越细&…