1. 前言
Spresense在与 Arduino 兼容的索尼主板电脑中搭载了索尼自有的感应处理器 CXD5602。CXD5602 是一款面向IoT的高性能处理器,带有GPS定位功能、高解析音源播放&录制功能和低功耗多核微处理器。
下面2章将对Spresense的硬件与软件相关内容进行简单说明。
想要马上尝试使用Spresense进行编程的用户请浏览下面的章节。
关于 CXD5602 的详细信息请参考以下网站页面。
请访问。
2. Spresense 硬件相关
2.1. Spresense 电路板
Spresense 电路板由以下3块电路板组成。
Spresense 主板上搭载了索尼开发的面向IoT的感应处理器,Spresense 主板亦可独立运行。
-
CXD5602 感应处理器
-
CXD5247 电源管理&音频模拟IC
Spresense扩展板是用来扩展Spresense主板接口的一块基板。 Spresense 主板与Spresense 扩展板通过Board-to-Board (B-2-B)接口连接后可形成与Arduino Uno兼容的插口形状。 但是、Spresense 扩展板的插口规格与Arduino Uno仍存在一定差异。具体请参见 Spresense 与 Arduino Uno 的区别 。
2.1.1. Spresense 主板
Spresense 主板的特征如下:
-
搭载感应处理器 CXD5602
-
8 MB 闪存
-
封装印制好的小型基板
-
Camera 专用接口
-
GNSS (GPS)天线
-
具备可扩展性的接口、功能
-
各种GPIO (UART, SPI, I2C, I2S)
-
ADC 双通道
-
Application LED x 4 (绿)
-
通电标识LED(蓝)
-
Spresense 主板的标准I/O电压为1.8V。电压超过1.8V时,可能会导致 Spresense 芯片组发生损坏。使用时请注意。 |
主板上配置的接口及开关等在回路上的名称如下:
各部名称 | 说明 |
---|---|
[PWR] Power LED |
电源LED。通电时蓝灯亮。 |
[RST] Reset button |
复位按钮 |
[LED0] - [LED3] |
可通过APP使用的4个内置式绿色LED |
[CN2] |
micro USB Type-B接口。导入Sketch等程序或调试时所用的USB/UART接口。 |
[CN4] |
B-2-B接口,连接扩展板用的100针接口(在背面配置)。 |
[CN5] Camera Connector |
专用相机接口。与Spresense相机电路板连接。 |
[BR] Boot Recovery Button |
恢复为出厂状态时使用。一般情况下不使用。 |
主板的各区块图解如下:
主板回路图的PDF文件可点击下面的链接获取。
2.1.2. Spresense 扩展板
Spresense 扩展板在与Arduino Uno兼容的插座之外,还配备了以下插口。
-
耳机插孔
-
micro SD 卡槽
-
USB 接口
-
Mic连接用插口
扩展板上配置的接口及开关等在回路上的名称如下:
接口・跳线名 | 说明 |
---|---|
CN3 |
B-2-B接口。与主板连接时用的100针接口 |
CN4 |
MicroSD卡槽 |
CN6 |
microUSB Type-B接口。可提供USB的MSC(Mass Storage Class)功能,PC可直接访问扩展板上的SD卡。 |
CN7 |
耳机插孔 3极 3.5mm接口 |
JP1 |
数据输入/输出端口标准电电压。5V或3.3V |
JP10 - pin 3 to 16 |
Mic连接用。可连接模拟或是数字Mic。具体请参照 Mic的使用方法。 |
JP10 - pin 1, 2 |
选择在主板还是在扩展板中使用UART2 端口(D00, D01)。短路状态下,主板上的UART2 端口(1.8V)变为可用。 |
JP14 |
通过短路的方法可将JP10指定为数字Mic端口。具体请参照:Mic的使用方法。 |
microSD |
可以与 Spresense 扩展板一起使用的microSD卡必须格式化为FAT32格式。从制造商发货时使用FAT32格式化的microSD卡将仅为“SDHC”。如果使用其他文件系统格式化卡,请使用带有PC等SD卡的格式化工具预先在FAT32中格式化。 |
扩展板的各区块图解如下:
扩展板回路图的PDF文件可点击下面的链接获取。
2.1.3. Spresense 相机板
Spresense 相机板 搭载了索尼 ISX012 图像传感器和镜头. 索尼ISX012 拥有5.11M 的有效像素,并带有板载编码器,可支持JPEG, Y/C 和RGB格式的图片输出。
图像传感器 | |
---|---|
传感器类型 |
1/4 型CMOS 图像传感器 |
有效像素 |
5.11M 像素 |
记录像素 |
5.04M 像素 |
相机控制 |
|
ISO 敏感度 |
ISO 40~800 |
场景选择 |
12 种预设 |
曝光模式 |
自动, 快门优先, ISO 敏感度优先, 长时间AE |
测光模式 |
多模式,中央重点测光,平均测光,点测光 |
曝光补偿 |
±2EV, 1/3 EV STEP |
快门速度 |
1/8 秒(长时间AE模式) 到1/42000 秒 |
白平衡 |
自动,日光,多云,荧光,白炽灯 |
图片格式 |
|
图像格式 |
JPEG(4:2:2), Y/Cb/Cr, YUV, RGB, JPEG+YUV(thumbnail) |
静态数据速率 |
5M 像素15 帧/秒JPEG 输出 |
动态数据速率 |
SVGA 30 帧/秒YCbCr 输出 |
HD 视频输出 |
1080p(1920×1030 30 帧/秒), 720p(1208×720 60 帧/秒) |
下表为镜头规格。
功能 | 规格 |
---|---|
镜头类型 |
1/4 英寸4 片组 |
有效焦距 |
2.74mm |
F值 |
2.0±5% |
视角 |
78°±3° |
CRA(主光角) |
<33.5° |
畸变 |
<1.5% |
画质 |
中心 1100 线, 近边角 900 线 |
焦距 |
1.5m |
变焦范围 |
77.5 to 237.06cm |
请从下面的链接获取相机板回路图pdf 文件:
2.2. Spresense 电路板的使用方法
2.2.1. Spresense 主板遮光膜的粘贴方法
使用Spresense 主板前,请将附带的遮光膜按照下图粘贴至IC4处。
在阳光直射或是强光下使用时可能会导致运行操作,所以请务必粘贴遮光膜。 |
再粘贴时推荐使用下面的遮光膜。
生产厂家 | 品名 |
---|---|
施特普(Shurtape)公司 |
CP-743 |
2.2.2. Spresense主板与Spresense扩展板的连接方法
下面说明Spresense扩展板与Spresense主板的安装方法。
Spresense 扩展板上带有与主板连接用的4个垫片。
将该垫片插入Spresense扩展板的通孔中。请注意通孔的位置。
Spresense扩展板上装好垫片后开始安装Spresense主板。
安装时请注意主板的朝向。请安装到与USB接口相同的方向。 |
安装到与USB接口朝向相同的方向,Spresense主板与Spresense扩展板就连接好了。
安装完成后,请上下按压主板和扩展板以确认B-2-B插头连接完好。 请注意如果连接不良,扩展板功能如micro SD卡和音频可能不工作。
在安装/拆卸主板和扩展板时,请注意不要施加负荷。 |
2.2.3. 如何连接Spresense 主板和Spresense 相机板
下面说明如何把Spresense 相机板连接到Spresense 主板上。
由于相机模组对静电非常敏感,建议使用相机模组时放掉身上的静电。 可以通过接触接地物品,比如接地的电脑机箱来释放静电。 静电可能导致相机模组故障。 |
相机模组通过扁平电缆连接到主板(CN5 )。 下图说明了如何连接扁平电缆。 由于扁平电缆有正反面,所以请使用和下图相同的电极方向连接。
相机镜头上覆盖有一层蓝色半透明塑料薄膜,用于镜头保护。使用前请移除。 移除保护膜时请务必轻拿轻放。
2.2.4. 关于Spresense 相机板侧的扁平电缆
相机板和主板上的扁平电缆接头都非常脆弱,如非必要,请尽量不要插拔。
插拔扁平电缆时请遵循下述指示。
-
拔出扁平电缆时:
-
A. 插头两侧均衡用力,保持和基板平行,慢慢移动并拔出插头。
-
B. 拔出扁平电缆。
-
-
插入扁平电缆
-
C. 将扁平电缆插入接头,确保接触良好。如下图,电缆电极侧应朝上。
-
D. 插头两侧均衡用力,保持和基板平行,慢慢移动并插入接头。
-
操作时请务必慢速仔细。 如果用力不均,或不和基板保持水平,有可能会损坏接头。 |
下表列出了当相机扁平电缆损坏时的代替品。 建议使用尽量短的电缆。
厂商 | 型号 | 长度 |
---|---|---|
Molex |
15166-0211 |
102mm |
Molex |
15166-0213 |
127mm |
Wurth Electronics |
687620100002 |
100mm |
2.2.5. Spresense 电路板的供电方法
Spresense电路板的供电方法有几种。
-
一般情况下是通过主板上的micro USB端口进行供电的。PC与主板连接后就可以供电并进行编程。这个micro USB端口在PC端被识别为串行端口。
-
扩展板已安装时,可通过扩展板上的micro USB接口供电。扩展板一端的 micro USB端口在PC上被识别为MSC(Mass Storage Class)。例如,将扩展板上的SD卡用作存储设备,就可以进行数据通信。
可以使用上述多个电源同时供电。 使用micro USB接口供电时,请尽量选用粗短的USB连接线。
通Spresense 主板上的USB接口供电时,也可使用USB手机电池。但是,如果使用具备自动关机功能的USB手机电池时,由于Spresense主板的能耗极小,其自动关机功能可能会启动导致断电无法运行。为了确保运行的正常,请使用带有永不关机功能的USB手机电池。 |
使用扩展板VOUT的Pin插口上的5V±0.25V电源。这当从其他基板等供电时会很方便。但是,如果连接电源的电压不在5V±0.25V范围内时,CXD5602可能会发生损坏,使用时请注意。
3. Spresense 软件相关
Spresense软件提供如下2种开发环境。
-
一种使用Spresense Arduino Library
-
使用Arduino IDE进行Spresense软件开发的环境。使用Spresense Arduino Library可以比较容易地进行软件开发。
-
-
另一种使用Spresense SDK
-
Spresense SDK是在NuttX提供的编译环境(GNU Make)基础上由索尼自主开发的环境。提供底层API,可最大限度发挥Spresense的省内存,省电,多核控制等性能
-
下面说明这2种开发环境的特征和结构。
3.1. 使用Spresense Arduino Library进行开发
Spresense Arduino Library是一个软件库,用于使用以下链接为Spresense开发应用程序软件:Arduino IDE。 它与链接兼容:Arduino的标准API,您可以使用许多已有的Arduino草图。 因此,即使您不熟悉Spresense的用户,如果您有使用Arduino开发软件的经验,也可以轻松开始Spresense软件开发。
这个软件库不仅提供与Arduino兼容的API,同时提供Spresense的特有功能如GPS定位功能、高解析Audio功能等索尼独有的API。使用Arduino IDE可实现高功能的APP开发。
有兴趣使用Spresense Arduino Library进行软件开发的用户请参考:
3.1.1. Spresense Arduino Library的结构
Spresense Arduino Library是扩展封装库,可在Arduino IDE中方便地使用Spresense SDK 。它的内部运行有NuttX提供的Task。同时,Arduino的Sketch也作为该Task的一员运行。这样的设计使得进行Arduino IDE软件开发时,无需考虑NuttX即可进行编程。
3.1.2. Spresense Arduino Library 的特征
Spresense Arduino Library中提供 Arduino标准API,Spresense中可以使用 digitalRead、digitalWrite等API。
另外,也同时提供与SPI,Software Serial等同等的库 Arduino Library
NOTE:Spresense Arduino Library与Arduino API虽然可互用,但由于硬件上的限制,并非所有的API都可以完全同样使用。详细信息请参考:Spresense Arduino Library 下编程时的注意事項 。
同时提供以下Spresense Arduino Library 中没有的功能。
3.2. 使用Spresense SDK进行开发
Spresense SDK是一个开发环境,基于以下链接添加了Spresense唯一功能 NuttX,它是实时操作系统之一。 我们提供低底层API以最大程度发挥Spresense的性能,例如节省内存,节省电源和多核控制。 如果您对多核编程,低功耗、实现内存控制的用户请选择Spresense SDK开发环境。
Spresense SDK有兴趣使用Spresense SDK进行软件开发的用户请参考:
3.2.1. Spresense SDK的结构
Spresense SDK是在NuttX操作系统上配备中间件,以最大限度提高*CXD5602*功能的一款软件。
由基于NuttX驱动框架编写的各种驱动和在其上编写的各种中间件组成。
3.2.2. Spresense SDK的特征
Spresense SDK的特征如下:
操作系统采用NuttX, 具备以下特征。
-
多任务RTOS
-
使用Kconfig配置实现最优化的空间使用
-
支持标准C程序库
-
支持C++语言
-
支持各种文件系统
-
支持各种设备驱动
-
支持闪存
-
支持USB功能(MSC及CDC)
此外,同时以中间件方式提供 CXD5602 所拥有的各种功能。
-
音频录制与播放功能
-
非对称型多核程序库
-
GPS定位功能
-
省电功能
另外,DMA控制器用驱动等 CXD5602 所拥有的几乎所有功能都可以使用。
Spresense SDK的代表性功能以示例代码形式作为NuttX的内置APP提供。
详细信息请参考:
4. 代码仓库结构
Spresense 是开放源代码项目。相关的源代码与文档除了LOADER等预编译的二进制文件外,都保存在GitHub 上。
Spresense 项目组大力欢迎您的参与开发。各代码仓库上放有参与开发指南说明了参与方法,参与开发时请您一定阅读。衷心期待您们的参与!
本文档说明、Spresense项目相关的代码仓库结构。
Spresense主板的使用方法请参考以下链接。
4.1. 各代码仓库概要
分类 | 代码仓库名 | 子代码仓库 | 说明 |
---|---|---|---|
Spresense Arduino |
Spresense Arduino Library 的基础代码仓库 |
||
存储Spresense Arduino Library用示例sketch |
|||
Spresense SDK |
Spresense SDK 的基础代码仓库 |
||
Spresense NuttX 克隆存储用 |
|||
Spresense NuttX Apps 克隆存储用 |
|||
硬件设计书 |
设计你自己的电路板时、Spresense 可以作为参考的电路图、BOM等用的仓库 |
4.1.1. 源代码的获取方式
-
获取Spresense Arduino Library源代码
git clone https://github.com/sonydevworld/spresense-arduino-compatible.git git clone https://github.com/sonydevworld/spresense-sketches.git
git clone --recursive https://github.com/sonydevworld/spresense.git
The URL of submodule repositories have been changed between SDK v2.x and v3.x.
If you update Spresense SDK from v2.x to v3.0.0, please run the following instructions to update the submodules.
If you still have files that have been built in an SDKv2.x environment, please do make distclean
before switching versions.
cd spresense/sdk make distclean git fetch origin git checkout v3.0.0 git submodule sync git submodule update