全部产品

HaaS100

更新时间:2021-04-27 11:18:24

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

固件下载和烧录

内容如下:

.
├── PyQt4/
├── qt4_plugins/
├── bin/
├── dld_cfg/
├── dld_main/
├── doc/
├── images/
├── log/
├── ota_bin/
│   ├── boot_info.bin
│   ├── factory.bin
│   ├── littlefs.bin
│   ├── ota_boot1.bin
│   ├── ota_boot1_sec.bin
│   ├── ota_boot2a.bin
│   ├── ota_rtos.bin
│   ├── ota_rtos_ota.bin
│   ├── ota_rtos_ota.bin.xz
│   └── pub_otp.bin
├── haas1000_dld_cfg.yaml
├── haas1000_write_flash_main.exe
├── productline_cfg.xml
├── productline_config.ui
├── productline_config_en.ui
├── CheckComfirm.ui
├── programmer2001.bin
├── qt.conf
├── setportdlg.ui
├── setportdlg_en.ui
└── setupdlg.ui

烧录方式1:其中ota_bin目录存放了轻应用固件,可以在编译出任意基于HaaS100的产物后,用此ota_bin目录下的内容,替换掉 AliOS-Things/platform/mcu/haas1000/release/write_flash_gui/ota_bin/ 目录下的内容。

烧录方式2:如果使用Windows系统,可以执行 haas1000_write_flash_main.exe 图形化工具完成烧录。

参考 HaaS100快速开始 - 烧录

说明

HaaS100 轻应用开发方式日志串口的波特率是115200

开发工具

下载命令行工具

打开示例应用

下载示例应用代码包

这里通过一个简单的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工具的目录下,然后用户可以选择任意一种热更新方式(本地或在线)下载应用代码到开发板。

本地热更新

  • 设置单板到下载模式

设备通电或者复位之后,立即按下复位键旁边的用户按键(长按键)不松手,直到LED1间歇性快速双闪,说明设备已进入本地下载模式,此时松开按键。

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

./amp.exe seriallist
COM77

./amp.exe serialput ./app COM77

Note:此处的串口号是debug的串口号,在使用命令推送脚本时要断开串口连接,否则推送不成功。

  • 运行应用示例

在线热更新

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

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

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

amp

附录

硬件资源介绍

排针接口

排针接口

板载LED灯序号图

板载LED灯序号图

硬件资源映射表

功能/接口

PIN/IO/资源映射

轻应用 port 配置

I2C1

SDA2 SCL2

0

I2C2

SDA3 SCL3

1

ADC0

ADC0

0

ADC1

ADC1

1

ADC2

ADC2

2

PWM0

PWM0

0

PWM1

PWM1

1

PWM2

PWM2

2

PWM3

PWM3

3

UART0

默认板级log打印

0

UART2

UART2_TXD UART2_RXD

2

GPIO

GPIO41 GPIO40 GPIO47 GPIO46

33 32 39 38

LED

LED1 LED2 LED3 LED4 LED5

40 41 36 35 34

SPI

SPI0_MISO SPI0_MOSI SPI0_CLK SPI0_CS0

0

功能列表(部分)

  • 文件系统 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
        }
    },
    "repl": "enable", 
    "debugLevel":"DEBUG"
}