盼望了很久,总算收到了2个包囊,一个是电脑主板,另一个为拓展板。
电脑主板的包囊里仅有CXD5602PWBMAIN1板和情况表,板的顶端包含一个复位开关、四个客户LED、一个开关电源LED、一个运行修复按键、照相机插口、sonyCXD5247电池管理和声频仿真模拟插口集成ic(下面的图中的灰黑色),sonyCXD5602 hexa关键Arm Cortex-M4F微处理器适用GNSS – 在封装形式上当作D5602GG,两行2.54mm间隔I / O连接头,及其板极右边沿的GNSS无线天线。
该板的底端选用MXIC MX25U6435F SPI NOR闪存芯片,8MB容积,100针射频连接器,用以联接电脑主板和拓展板,CP2102N USB到TTL集成ic,及其用以开关电源和程序编写的小型USB端口号。
情况表关键包括法律术语,标准及其Spresense适用网址的连接和QR编码。
拓展板附加了相近的情况表,及其用以将电脑主板固定不动及时的四个塑胶麻花钻。
拓展板装有Arduino兼容连接头,100针电源插座,用以联接电脑主板,一部分漏线,3.5mm声频插口和micro SD卡内存插槽。
下面的图为线路板的正脸,另一侧主要是2个集成ic:72040脉冲信号转化器和TI LSF0108八进制双重多工作电压脉冲信号转化器,自然也拥有“拓展”用的小型USB端口号。
二块板的拼装都非常简单,只需将四个灰黑色塑胶麻花钻插进拓展板的安裝孔中,将电脑主板放到顶端,随后将其往下推。
如SpresenseAPP文本文档中上述,有这两种方式 可以应用Spresense板:
Spresense Arduino库- 应用很多开发者了解的Arduino IDE。
Spresense SDK- sony最开始的CXD5602主板芯片组开发工具,根据NuttX嵌入式操作系统,并运用GNU Make专用工具链。低等API使开发者可以提升运行内存应用,节约开关电源,操纵多核解决这些,而Arduino库将会没法完成这一点。
下面对于Spresense SDK网络系统开展表明。
▲Spresense SDK的构造
使我们尝试跟随表明指引在运作Ubuntu 18.04的笔记本上涨试运转它。
安裝Spresense SDK
最先,大家必须在终端窗口中安裝一些terminal windows:
1 | sudo apt install git gperf libncurses5-dev flex bison gcc-arm-none-eabi genromfs pkg-config autoconf automake cmake |
下一步是以nuttx-tools安裝kconfig-frontends包:
1 2 3 4 5 |
git clone https://bitbucket.org/nuttx/tools.git cd tools/kconfig-frontends/ ./configure –disable-shared make -j8 sudo make install |
查询SDK源码:
1 2 3 |
cd ../.. git clone –recursive https://github.com/sonydevworld/spresense.git git submodule foreach git checkout master |
USB联接
将当今客户加上到拨出去组,随后销户以保证可以浏览串行通信端口号:
1 | sudo usermod -a -G dialout $USER |
现在是时候根据USB将电脑主板联接到电子计算机了,这也是核心日志的导出:
1 2 3 4 5 6 7 8 |
[99898.675476] usb 3-2: new full-speed USB device number 3 using xhci_hcd [99898.849262] usb 3-2: New USB device found,idVendor=10c4, idProduct=ea60 [99898.849267] usb 3-2: New USB device strings:Mfr=1, Product=2, SerialNumber=3 [99898.849270] usb 3-2: Product: CP2102N USB to UART Bridge Controller [99898.849272] usb 3-2: Manufacturer: Silicon Labs [99898.849275] usb 3-2: SerialNumber:1601ea6abb61e811841264b55bfef139 [99898.851295] cp210x 3-2:1.0: cp210x converter detected [99898.864393] usb 3-2: cp210x converter now attached to ttyUSB0 |
电源电路板被恰当检验为具备10c4 VID和ea60 PID的CP210x转化器。
Spresense SDK程序安装
最先设定原始NuttX核心配备:
1 2 |
cd spresense/sdk tools/config.py –kernel release |
随后设定原始SDK配备:
1 | tools/config.py examples/hello |
导出:
1 2 3 4 5 6 7 |
WARNING: New loader v1.1.0 is required, please download and install. Download URL : https://developer.sony.com/file/download/download-spresense-firmware-v1-1-000 Install command: 1. Extract loader archive into host PC. ./tools/flash.sh -e 2. Flash loader into Board. ./tools/flash.sh -l/home/jaufranc/edev/spresense/spresense/firmware/spresense -c |
这时提醒规定安裝新的loader,因为在线下载URL必须EULA,因而没法从命令来在线下载。但选用后,可以应用下列指令轻轻松松将其闪存芯片到线路板:
1 2 3 4 |
cd tools mv ~/Downloads/spresense-binaries-v1.1.0.zip . ./flash.sh -e spresense-binaries-v1.1.0.zip sudo ./flash.sh -l ../../firmware/spresense/ -c/dev/ttyUSB0 |
指令导出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
>>> Install files … install -b 115200 Install ../../firmware/spresense/loader.espk Waiting for XMODEM (CRC or 1K) transfer. Ctrl-X to cancel. ……………………………………………………………………………………………………..115856 bytes loaded. Package validation is OK. Saving package to \”loader\” updater# install -b 115200 Install ../../firmware/spresense/gnssfw.espk Waiting for XMODEM (CRC or 1K) transfer. Ctrl-X to cancel. ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….450336bytes loaded. Package validation is OK. Saving package to \”gnssfw\” updater# sync updater# Restarting the board … reboot |
搭建实例印象:
1 2 3 |
cd .. make buildkernel -j8 make -j8 |
最后在当前目录中应用nuttx.spk固定件:
1 2 |
ls nuttx.spk-l -rw-r–r– 1 jaufranc jaufranc 153776 ม.ค. 5 16:11nuttx.spk |
更新并运作固定件
这时,系统要求更新正确引导载入程序流程,但此项指令早已在上面完成了,因此我们可以刷flashtx.spk:
1 | sudo tools/flash.sh -c /dev/ttyUSB0 nuttx.spk |
指令导出:
1 2 3 4 5 6 7 8 9 10 |
>>> Install files … install -b 115200 Install nuttx.spk Waiting for XMODEM (CRC or 1K) transfer. Ctrl-X to cancel. ………………………………………………………………………………………………………………………………………153776bytes loaded. Package validation is OK. Saving package to \”nuttx\” updater# sync updater# Restarting the board … reboot |
运作hello world程序流程必须应用minicom或其它专用工具联接115200 8N1主要参数的串口通信:
1 | minicom -D /dev/ttyUSB0 -b 115200 -s |
在串行通信端口中禁止使用硬件配置流控制,随后按Esc并挑选Exit撤出。大家如今应当可以浏览NuttX的NuttShell(NSH)shell。
输入hello以运作演试程序流程:
1 2 3 4 |
NuttShell (NSH)NuttX-7.22 nsh> hello Hello,World!! nsh> |
取得成功,hello world程序流程的源码可以在examples / hello / hello_main.c中寻找,是非常典型的C语的hello world程序流程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
**************************************************************************** * Included Files ****************************************************************************/ #include #include /**************************************************************************** * Public Functions ****************************************************************************/ /**************************************************************************** * hello_main ****************************************************************************/ #ifdef CONFIG_BUILD_KERNEL int main(int argc, FAR char *argv[]) #else int hello_main(int argc, char *argv[]) #endif { printf(\”Hello, World!! \”); return 0; } |
做为参照,NuttX shell有一些类似busybox中的指令:
1 2 3 4 5 6 7 8 9 10 11 12 |
nsh> help help usage:help [-v] [] [ datehelpmksmartfs rmuname ? ddhexdump mhrmdir umount basenamedfkillmount set unset break echolsmvshusleep cat printfmbmwshutdownxd cdexecmkdir poweroffsleep cpexitmkfatfs pstest cmp false mkfifopwd time dirname freemkrdreboottrue |
Spresense中的实例新项目
Hello World是运行非常好的实例程序流程,但Spresense SDK也有别的更有意思的样版:
1 2 3 4 5 6 7 8 9 10 11 12 |
ls examples/ accelcameragyro press adccolorsensor helloprime alarmdecimator helloxxproximity Application.mk dnnrt_lenet Kconfigpwm asmp fft libexamples.aREADME.md audio_player fwupdateLibTarget.mk sixaxis audio_player_objif geofencelighttilt audio_recorder gnsslte_http_get voice_call audio_throughgnss_atcmdmagvoice_command bluetooth_le_peripheralgnss_factoryMake.defswatchdog bluetooth_sppgnss_pvtlog Makefile |
每一个实例程序流程都都是在Spresense NuttX的开发设计指引中详尽地叙述,但并没有叙述是什么种类或是是不是新奇的样版。
一些实例新项目必须下载附加的硬件配置,如照相机额外设备,手机蓝牙LE额外设备,感应器额外设备等。可以用往下翻转开发人员网址的主页面寻找这种目录。
因为声频和GNSS是线路板的一些关键作用,下列将试着应用C 和C语言编辑的audio_player和gnss的实例程序流程。
Spresense音乐播放器
搭建和更新全过程与hello world程序流程同样,并在sdk文件目录中实行下列指令:
1 2 3 |
./tools/config.py examples/audio_player make -j8 sudo tools/flash.sh -c /dev/ttyUSB0 nuttx.spk |
该程序流程被载入到电脑主板上,但大家必须一些附加的文件传送在micro SD卡中,在其中包括歌曲,列表和“worker”二进制文件,如audio_player实例文件目录中的README.txt文件上述:
以后,您可以在文件目录sdk / modules / audio / dsp中见到工作中二进制文件\’MP3DEC\’,\’WAVDEC\’。
在选择项特定的途径中储存工作中二进制文件,列表和播放视频內容。
– 默认设置途径
worker二进制文件:/ mnt / sd0 / BIN
列表:/ mnt / sd0 / PLAYLIST內容:/ mnt / sd0 / AUDIO
做为列表的实例,PLAYLIST文件夹名称中有TRACK_DB.CSV。此外,做为內容实例,AUDIO文件夹名称中有Sound.mp3。Sound.mp3的采样率为48000,位长16,转码软件MP3文档。
最初发生这种提醒时,还存有疑惑,但最后搞清楚后将文档拷贝到用FAT32恢复出厂设置的4GB micro SD卡:
1 2 3 4 5 6 |
cp ../examples/audio_player/AUDIO -R cp ../examples/audio_player/PLAYLIST/ -R mkdir /BIN pushd modules/audio/dsp cp MP3DEC WAVDEC /BIN/ popd |
如今将microSD卡插进Spresense板,并联接音箱,随后在NuttShell中启动应用程序。
1 2 3 4 5 |
NuttShell (NSH)NuttX-7.22 nsh> player Start AudioPlayer example Running time is 10sec Running time is 10 sec |
一切好像按期望工作中,但听不见的声频。查验声频插口联接是不是接触不良现象,音箱的输出功率和声音水准,但依然没声音。之后构想或许Spresense电脑主板和拓展板中间很有可能存有欠佳触碰,因此按住了电脑主板最后成功了!总算可以听见Sound.mp3文档传出的哔声,有意思的是,小型SD卡的确合理,但并不是声频。
GNSS样版
让试一试GNSS实例程序流程:
1 2 3 |
./tools/config.py examples/gnss make -j8 sudo tools/flash.sh -c /dev/ttyUSB0 nuttx.spk |
顺带说一下还记得在运作flash.sh前撤出minicom,不然会获得下列不正确:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Traceback (most recent call last): File \”serial/serialposix.py\”, line 495, in read serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?) During handling of the above exception, another exception occurred: Traceback (most recent call last): File \”flash_writer.py\”, line 504, in File \”flash_writer.py\”, line 446, in main File \”flash_writer.py\”, line 316, incancel_autoboot File \”flash_writer.py\”, line 263, in readline File \”serial/serialposix.py\”, line 505, in read serial.serialutil.SerialException: read failed:device reports readiness to read but returned no data (device disconnected or multiple access on port?) [8067] Failed to execute script flash_writer |
此外还要留意应用将menuconfig引进安裝选择项的选择项来运作config.py。
1 | ./tools/config.py -m examples/gnss |
再次开展GPS检测,我想要将线路板挨近窗子,但我所处的建筑构造并不易接受GPS数据信号,在1小時30分以后,我只得到了UTC時间。所以我搬到了室外,重启了线路板,一切都很成功,我还在24秒后得到了UTC時间:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
NuttShell (NSH) NuttX-7.22 nsh> nsh> nsh> gnss Hello, GNSS(USE_SIGNAL) SAMPLE!! start GNSS OK >Hour:0, minute:0, sec:3, usec:497 >No Positioning Data >Hour:0, minute:0, sec:4, usec:512 >No Positioning Data >Hour:0, minute:0, sec:5,usec:15289 … >No Positioning Data >Hour:0, minute:0, sec:23, usec:507 >No Positioning Data >Hour:0, minute:0, sec:24, usec:522 >No Positioning Data >Hour:6, minute:59, sec:32, usec:554 >No Positioning Data >Hour:6, minute:59, sec:33, usec:561 >No Positioning Data |
并在1分40秒后精准定位数据信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
>Hour:7, minute:0, sec:47,usec:559 >No Positioning Data >Hour:7, minute:0, sec:48,usec:533 >No Positioning Data >Hour:7, minute:0, sec:49,usec:533 >No Positioning Data >Hour:7, minute:0, sec:49,usec:769162 >LAT37.02.1428 >LNG95.36.5893 >Hour:7, minute:0, sec:50,usec:578 >LAT37.02.1428 >LNG95.36.5893 >Hour:7, minute:0, sec:51, usec:574 |
样版编码过长,没法在此次审核详解,但您可以在examples文件目录中寻找源码,Spresense SDK文本文档看上去构造清楚,十分详尽和深入。
汇总
我不得不说Spresense电脑主板上实现的一切测评都很成功,开发设计的文本文档看上去挺不错。但对大部分新项目,很有可能必须额外板,由于在没有种类的无线网络或无线接入的情形下,务必有很多必须GNSS和音频文件的运用。
sonySpresense电脑主板在Framos US上市场价65美金,还可以在45美金上下寻找拓展板,迅速就会有一个500万清晰度的监控摄像头板将在本月晚些时候发布。Spresense照相机市场价在预估所得税后29欧,感应器和手机蓝牙额外板由ROHM生产制造,可以独立选购,但现阶段只在日本选购。期待它们可以寻找到一种更简易的购买方式,很有可能在一段时间的未来应用详细的开发设计模块。
派旗纳米官网:https://paiqinano.com
大量电子纳米防护涂层剂、配套喷镀设备、OEM代工服务等请关心“派旗纳米”微信公众号
纳米涂层剂理化性能详细参数直接点击:纳米电子防护涂层剂参数
技术咨询:赵先生:130 4896 4893
该文章内容提高散播新技术应用新闻资讯,很有可能有转截/引入之状况,若有侵权行为请联络删掉。
上一篇: PCB打样中电镀镍金和沉金的区别