1、概述
HaaS EDU K1 作为一款专用于教育的开发套件,整体配置的的资源非常丰富。其内置了高性能MCU-HaaS1000,集成了超大大容量的存储,高达18MB的RAM以及16M的flash,并且支持扩展卡,配备了丰富的外设以及传感器。关于整体硬件介绍,有兴趣可参考HaaS EDU K1硬件介绍。
HaaS1000 是一颗专为IoT智能硬件打造的SoC。如图1所示,HaaS1000 集成了 Wi-Fi 802.11 b/g/n 和蓝牙5.0的MAC、PHY和射频单元,也集成了音频编解码器,以及双核Cortex-M33 Star的MCU子系统和双核Cortex-A7的AP子系统,另外还支持 OPI PSRAM 和 QSPI NOR Flash。具体可参考HaaS1000 芯片手册。
图1 HaaS1000 架构图
2、内存以及存储
板子集成了boot ROM, SRAM, 片上PSRAM 和片上 NOR flash.
- 64KB boot ROM
- 2.5MB SRAM, MCU和AP可以通过以下组合共享SRAM,以支持多种应用场景(MCU/AP)
- 256KB/2.25MB
- 512KB/2MB
- 1MB/1.5MB
- 1.5MB/1MB
- 2MB/512KB
- 2.5MB/0KB
- 16MB 片上 16位 PSRAM
- 16MB 片上 NOR flash
分区表
16M的flash共分为十一个分区,每个分区均可读写。具体信息如下:
序号 |
分区名 |
起始地址 |
长度 |
读写权限 |
说明 |
1 |
boot1 |
0x0 |
0x10000 |
读写 |
一级引导区 |
2 |
boot_info |
0x10000 |
0x2000 |
读写 |
引导信息 |
3 |
boot2A |
0x12000 |
0x18000 |
读写 |
二级引导区A |
4 |
RTOSA |
0x2A000 |
0x578000 |
读写 |
文件系统A |
5 |
boot2B |
0x5A2000 |
0x18000 |
读写 |
二级引导区B |
6 |
RTOSB |
0x5BA000 |
0x578000 |
读写 |
文件系统B |
7 |
littleFS |
0xB32000 |
0x4AE000 |
读写 |
用户空间文件系统 |
8 |
boot1_sec |
0xFE0000 |
0x10000 |
读写 |
一级引导区sec |
9 |
boot2_info |
0xFF0000 |
0x1000 |
读写 |
boot2信息区 |
10 |
KV |
0xFF1000 |
0xD000 |
读写 |
kv分区 |
11 |
factory |
0xFFE000 |
0x2000 |
读写 |
工厂区 |
3、外设资源
板卡 集成了各种外围接口。
- 1路USB 2.0 高速接口
- 1路eMMC4.41/SD3.0/SDIO3.0 主机接口, 单数据速率高达50MHz
- 3路UART接口,支持流控和波特率可配置,最高6Mbps
- 2路 SPI主模式接口,支持串行LCD,速率最高50MHz
- 2路I2C主模式接口,速率最高1.4M bps
- 4通道I2S或8通道TDM接口
- 4路I2S或者 8路 TDM 接口
- 1路SPDIF 接口 (包含发送和接收)
- 4个PWM
- 40个带有独立中断的GPIO(有些和外设共用相同的pin脚)
- 3路10 bit GPADC
3.1、GPIO
HaaS1000共有P0~P4共5组,每组8个,共40个GPIO,每根GPIO都可以通过PUNMAX自由配置,每个GPIO包含6个可选function。具体可选功能列表如下所示:
绝大多数IO都进行了分配,可供外部扩展直接使用的只有直接有6个;
功能模块 |
原理图网络名 |
管脚名称 |
GPIO MAPPING |
||
Function |
Function 1 |
Function 2 |
|||
OLED |
SPI1_DIO |
Y11 |
SPI1_DIO |
pwm3 |
SPI0_CS1 |
SPI1_CLK |
V11 |
SPI1_CLK |
pwm1 |
SPI0_CS2 |
|
SPI1_DI0 |
W10 |
SPI1_DI0 |
pwm2 |
SPI0_DI1 |
|
OLED_RST |
U10 |
SPI1_CS0 |
pwm0 |
SPI0_DI2 |
|
AP3216C_INT |
T5 |
GPIO_P4_7 |
WF_UART_RTS |
|
|
I2C_SCL1 |
F11 |
GPIO_P0_2 |
I2S0_WS |
I2C_M1_SCL |
|
I2C_SDA1 |
E12 |
GPIO_P0_3 |
I2S0_SCK |
I2C_M1_SDA |
|
SPI0_CS0 |
B9 |
GPIO_P0_6 |
SDMMC_DATA5 |
SPI0_CS0 |
|
SD卡 |
SDMMC0_D2 |
F7 |
GPIO_P1_0 |
SDMMC_DATA2 |
|
SDMMC0_D3 |
E6 |
GPIO_P1_1 |
SDMMC_DATA3 |
|
|
SDMMC0_CMD |
M12 |
GPIO_P1_2 |
SDMMC_CMD |
|
|
SDMMC0_CLK |
N12 |
GPIO_P1_3 |
SDMMC_CLK |
I2S_MCLK |
|
SDMMC0_D0 |
D9 |
GPIO_P1_4 |
SDMMC_DATA0 |
|
|
SDMMC0_D1 |
C7 |
GPIO_P1_5 |
SDMMC_DATA1 |
|
|
SDMMC0_DET_L |
Y6 |
GPIO_P3_1 |
SPI1_CS2 |
|
|
蜂鸣器 |
PWM0 |
N10 |
GPIO_P2_6 |
pwm0 |
SPI1_DI1 |
LED |
LED3 |
AA5 |
GPIO_P4_2 |
I2S0_DI1 |
|
LED4 |
AA4 |
GPIO_P4_3 |
I2S0_DI0 |
|
|
LED5 |
R4 |
GPIO_P4_4 |
WF_UART_RX |
|
|
KEY |
KEY1 |
M13 |
GPIO_P2_7 |
pwm1 |
SPI1_CS1 |
KEY2 |
D7 |
GPIO_P2_4 |
pwm2 |
CLK_REQ_OUT |
|
KEY3 |
E8 |
GPIO_P2_5 |
pwm3 |
CLK_REQ_IN |
|
KEY4 |
W6 |
GPIO_P3_2 |
SPI1_CS3 |
|
|
MPU6050 |
MPU6050_INT |
Y9 |
GPIO_P4_1 |
I2S0_DI2 |
UART2_RTS |
|
QMC5883L_INT |
T4 |
GPIO_P4_6 |
WF_UART_CTS |
|
|
AP3216C_INT |
T5 |
GPIO_P4_7 |
WF_UART_RTS |
|
|
BMI160_INT1 |
W8 |
GPIO_P4_0 |
I2S0_DI3 |
UART2_CTS |
|
BMI160_INT2 |
V7 |
GPIO_P3_3 |
SPI1_DI3 |
|
UART串口 |
UART_RX |
U12 |
GPIO_P1_6 |
UART0_RXD |
I2C_M0_SCL |
UART_TX |
V13 |
GPIO_P1_7 |
UART0_TXD |
I2C_M0_SDA |
|
扩展接口 |
I2C_SCL1 |
F11 |
GPIO_P0_2 |
I2S0_WS |
I2C_M1_SCL |
I2C_SDA1 |
E12 |
GPIO_P0_3 |
I2S0_SCK |
I2C_M1_SDA |
|
UART2_RXD |
D11 |
GPIO_P2_2 |
I2C_M1_SCL |
UART2_RXD |
|
UART2_TXD |
C12 |
GPIO_P2_3 |
I2C_M1_SDA |
UART2_TXD |
|
SPI0_DI0 |
B10 |
GPIO_P0_4 |
SDMMC_DATA7 |
SPI0_DI0 |
|
SPI0_CLK |
E10 |
GPIO_P0_5 |
SDMMC_DATA6 |
SPI0_CLK |
|
SPI0_CS0 |
B9 |
GPIO_P0_6 |
SDMMC_DATA5 |
SPI0_CS0 |
|
SPI0_DIO |
C10 |
GPIO_P0_7 |
SDMMC_DATA4 |
SPI0_DIO |
|
SWDIO |
C8 |
GPIO_P0_0 |
I2S0_SDI |
UART2_RXD |
|
SWCLK |
F9 |
GPIO_P0_1 |
I2S0_SDO |
UART2_TXD |
3.2、KEY
HaaS EDU k1板载了四个可编程按键,分别是K1,k2, K3,K4。
四个按键对应的GPIO分别是:
按键名称 |
对应的GPIO映射 |
GPIO模式 |
K1 |
GPIO_P2_7 |
输入模式 |
K2 |
GPIO_P2_4 |
输入模式 |
K3 |
GPIO_P2_5 |
输入模式 |
K4 |
GPIO_P3_2 |
输入模式 |
3.3、LED
HaaS EDU k1板载了三个可编程led,分别是L1,L2,L3,分别为红、绿、蓝三个单色灯。
对应的GPIO分别是:
LED名称 |
对应的GPIO映射 |
GPIO模式 |
L1 |
GPIO_P4_4 |
输出模式 |
L2 |
GPIO_P4_3 |
输出模式 |
L3 |
GPIO_P4_2 |
输出模式 |
3.4、Watchdog
看门狗用到的是外置的,芯片用到的是ADM706S。
图 2 ADM706S引脚图
默认的超时周期为1.6s, WDI管脚有电平转换就会重置定时器(喂狗成功,否则就会重启主MCU)。
3.5、ADC
HaaS EDK K1的ADC有3路,分别是GPADC0,GPADC1,GPADC2。
引脚 |
引脚编号 |
说明 |
GPADC0 |
M4 |
ADC输入引脚0 |
GPADC1 |
F5 |
ADC输入引脚1 |
GPADC2 |
G6 |
ADC输入引脚2 |
其中两路已经分配,GADC0用于测量模拟麦克风音量,如下图:
图 3 GADC0连接示意图
GADC1用于检测电池电压,如下图:
图 4 GADC1连接示意图
GADC2外接备用,如下图:
图 5 GADC2连接示意图
三路ADC 均为7通道 10bit。精度为1/1024。
3.6、PWM
HaaS1000芯片内内置了4个PWM管脚,分别是:
引脚名 |
复用GPIO |
描述 |
PWM0 |
P2_6 |
PWM0管脚 |
PWM1 |
P2_7 |
未使用 |
PWM2 |
P2_4 |
未使用 |
PWM3 |
P2_5 |
未使用 |
其中只有PWM0配成了PWM模式,其他均作为普通GPIO,如下图所示:
图 6 PWM0接口示意图
3.7、SPI
HaaS EDU k1 包含了两路主模式SPI接口,支持串行LCD,速率最高50MHz。
其中一路SPI1接到了OLED屏幕上,另一路SPI0接到扩展口备用。
原理图如下:
SPI1 接口示意图
SPI0 接口示意图
3.8、I2C
HaaS100包含2路I2C主模式接口,速率最高1.4M bps,但是HaaS EDU k1 只接出来1路I2C1,遇板子上的I2C器件相连,具体请参考个原理图,为了方便扩展,并且30pin扩展口也已经引出来。
从地址占用:
I2C器件 |
从地址 |
说明 |
MPU6050 |
0X69 |
6轴陀螺仪加速度传感器 |
QMC5883L |
0X0d |
磁力计 |
SPL06 |
0X76 |
气压传感器 |
Si7006 |
0x40 |
温湿度传感器 |
AP3216C |
0X1e |
光线接近传感器 |
注:如果通过扩展口接入新的I2C器件是,请注意I2C从地址不要冲突。
3.9、SD卡
HaaS EDU k1 包含了一个SD卡接口,位于设备正面左侧。最大支持64GB,依托于芯片的eMMC4.41/SD3.0/SDIO3.0 主机接口, 单数据速率高达可50MHz。
3.10、timer
系统定时器分为两种,一种是硬件定时器,一种是软件定时器。
本产品只提供软件定时器供开发者使用,每个软件定时器都保存着自己的到期时间即时间超时处理函数。软件定时器管理模块会需要扫描所有的软件定时器设定,每个timer到期之后呼叫其预设的时间超时处理函数。
3.11、中断
程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,CPU暂停当前程序的运行,自动转入预先设定好的的中断服务程序,处理完后,再返回原来的程序继续运行,这整个过程称为中断。
HaaS EDU K1系统中用到的中断很多,比如UART的接收中断、GPIO输入中断、DMA传输中断等等。
3.12、WIFI
HaaS EDU K1的Haas1000芯片自带的WIFI功能,支持2.4G/5G,WIFI天线巧妙的隐藏在壳体内部。
Wi-Fi支持如下特性:
- Wi-Fi® IEEE 802.11 a/b/g/n
- 支持 2.4GHz Wi-Fi
- 支持 20MHz, 40MHz 带宽模式
- 支持Wi-Fi 和Bluetooth 共存
3.13、OLED
HaaS EDU K1 自带了一块1.3寸132*64的OLED屏幕,黑底白字。芯片采用SH1106,使用SPI驱动。
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
转载:https://blog.csdn.net/HaaSTech/article/details/114305581