全部产品

HaaS100

更新时间:2020-09-22 19:39:38

HaaS 100效果图

HaaS100简介

HaaS100硬件规格

硬件与系统环境

硬件连接与启动

  • 电源适配器供电

  • 使用MicroUSB数据线连接开发板与PC

系统环境

Windows

安装USB串口驱动,在设备管理器中可以看到以下串口:

Windows串口驱动

macOS

安装USB串口驱动,在dev目录下可以看到以下串口:

crw-rw-rw-  1 root  wheel   18,   4  9 21 16:23 /dev/tty.SLAB_USBtoUART

开发工具

下载命令行工具

打开示例应用

下载示例应用代码包

这里通过一个简单的LED闪灯的用例来介绍。

下载应用代码包,LED闪灯用例的代码目录如下所示:

app
├── app.json    # 应用与板级配置
└── app.js       # 用户代码

参考硬件资源介绍,已经在app.json中配置好LED3对应的port口为36。

{
    "version": "1.0.0",
    "io": {
        "LED3": {
            "type": "GPIO",
            "port": 36,
            "dir": "output",
            "pull": "pulldown"
        }
    },
    "debugLevel": "DEBUG"
}

在app.js中的用例逻辑如下:首先根据LED灯的配置创建一个GPIO实例,然后启动定时器,周期性的通过GPIO读写接口开关LED灯。

var gpio = require('gpio');

var led3 = gpio.open({
  id: 'LED3',
  success: function() {
      console.log('gpio: open led success')
  },
  fail: function() {
      console.log('gpio: open led failed')
  }
});

var vol = 0;

setInterval(function() {
  vol = 1 - vol;
  led3.writeValue(vol);
  console.log('led set value ' + vol);
}, 1000);

应用代码热更新到目标硬件

将应用代码拷贝到amp工具的目录下,然后用户可以选择任意一种热更新方式(本地或在线)下载应用代码到开发板。

本地热更新

  • 设置单板到下载模式

  • 通过amp工具完成本地热更新

  • 运行应用示例

在线热更新

  • 更新完成后自动执行应用

应用示例运行后,可以观察到LED3灯按照每秒钟一次的频率闪烁。

在线热更新不涉及单板模式的切换,可直接参考应用热更新完成,更新完成后自动运行应用示例,可以观察到LED3灯按照每秒钟一次的频率闪烁。

amp

附录

硬件资源介绍

排针接口

排针接口

板载LED灯序号图

板载LED灯序号图

硬件资源映射表

功能/接口PIN/IO/资源映射轻应用 port 配置
I2C1SDA2 SCL20
I2C2SDA3 SCL31
ADC0ADC00
ADC1ADC11
ADC2ADC22
PWM0PWM00
PWM1PWM11
PWM2PWM22
PWM3PWM33
UART0默认板级log打印0
UART2UART2_TXD UART2_RXD2
GPIOGPIO41 GPIO40 GPIO47 GPIO4633 32 39 38

LED

LED1 LED2 LED3 LED4 LED5

40 41 36 35 34

SPISPI0_MISO SPI0_MOSI SPI0_CLK SPI0_CS00

功能列表(部分)

  • 文件系统 FS

  • 系统信息 SYSTEM

  • 键值对存储 KV

  • 硬件I/O

    • UART

    • GPIO

    • I2C

    • SPI

    • ADC

    • PWM

  • 网络协议

    • UDP

    • TCP

    • MQTT

    • HTTP

  • 高阶功能

    • IoT 阿里云IoT平台连接组件

app.json 参考示例

{
    "io":{
        "D1":{
            "type":"GPIO",
            "port":32,
            "dir":"output",
            "pull":"pulldown"
        },
        "D2":{
            "type":"GPIO",
            "port":33,
            "dir":"output",
            "pull":"pulldown"
        },
        "D3":{
            "type":"GPIO",
            "port":38,
            "dir":"output",
            "pull":"pulldown"
        },
        "D4":{
            "type":"GPIO",
            "port":39,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED1":{
            "type":"GPIO",
            "port":40,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED2":{
            "type":"GPIO",
            "port":41,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED3":{
            "type":"GPIO",
            "port":36,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED4":{
            "type":"GPIO",
            "port":35,
            "dir":"output",
            "pull":"pulldown"
        },
        "LED5":{
            "type":"GPIO",
            "port":34,
            "dir":"output",
            "pull":"pulldown"
        },
        "I2C1":{
            "type":"I2C",
            "port":0,
            "addrWidth":7,
            "freq":100000,
            "mode":"master",
            "devAddr":118
        },
        "I2C2":{
            "type":"I2C",
            "port":0,
            "addrWidth":7,
            "freq":100000,
            "mode":"master",
            "devAddr":118
        },
        "ADC0":{
            "type":"ADC",
            "port":0,
            "sampling":12000000
        },
        "ADC1":{
            "type":"ADC",
            "port":1,
            "sampling":12000000
        },
        "ADC2":{
            "type":"ADC",
            "port":2,
            "sampling":12000000
        },
        "PWM0":{
            "type":"PWM",
            "port":0
        },
        "PWM1":{
            "type":"PWM",
            "port":1
        },
        "PWM2":{
            "type":"PWM",
            "port":2
        },
        "PWM3":{
            "type":"PWM",
            "port":3
        },
        "UART2":{
            "type":"UART",
            "port":2,
            "dataWidth":8,
            "baudRate":115200,
            "stopBits":1,
            "flowControl":"disable",
            "parity":"none"
        },
        "SPI0":{
            "type":"SPI",
            "port":0,
            "mode":"master",
            "freq":3250000
        }
    },
    "debugLevel":"DEBUG"
}

FAQ

下载运行模式

通过控制拉高或者拉低GPIO41引脚,单板可以在下载模式和运行模式之间切换。单板下载模式中,不会执行应用程序,只会等待接收下载串口传过来的代码,单板位于运行模式中,会正常执行应用程序。

  • 切换到下载模式

将GPIO41拉高,然后按下复位键,重启完成后,单板进入下载模式

  • 切换到运行模式

将GPIO41拉低,然后按下复位键,重启完成后,单板进入运行模式