cruelfox

  • 2019-01-16
  • 回复了主题帖: 想知道贴片电容由于温漂产生的容值变化这种方法对不对?

    谁告诉你说温度和电容量是线性关系的了? 而且,这种电容容量和电压也是有关系的。 这种电容不要拿来做时间常数关键的用途。

  • 2019-01-15
  • 回复了主题帖: 有了解FDS9435芯片的吗

    FDS9435不就是个MOSFET吗

  • 2019-01-14
  • 回复了主题帖: 颁奖:下载NI最大化直流测量性能实用指南,赢取精美礼品

    确认。请兑换成E金币,谢谢。

  • 2019-01-13
  • 发表了主题帖: 【NXP Rapid IoT评测】这个电老虎哎

      根据 @littleshrimp 在这个帖子 http://bbs.eeworld.com.cn/thread-1065991-1-1.html 里的指点,我也测量了一下工作电流。先用镊子把电池插头从座子里拔出,然后在测试点 TP32, TP33 (紧挨着电池座)上焊两条导线,用于连接外部电源。   我用了LM317稳压电源输出,调整到3.40V,串接万用表电流档后接到 Rapid-Iot 上面。运行的程序是我在本地编译的Out of Box Demo, 发现这玩意真是个电老虎!   竟然有110mA啊,难怪电池撑不住。和虾哥测试的结果不一样,他写的测到电流是48mA左右。   我用Jlink 将 K64 CPU halt住,电流降至90mA, 仍然很高。然后执行一下 Reset, 电流降到 37mA, 这是CPU复位没有初始化片上外设时候的功耗。一旦开始运行,电流就迅速增大,在显示 atmosphere banner 的时候大约就到 100mA.   换了另外一个我做的简单应用,工作电流大概在 99mA, 调试器将 K64 halt 状态下 77mA. 仍旧还是电老虎!   倘若把 SW5 按住,就是使 U13 这个电子开关断开给后面的电路供电,我的万用表显示电流就很小了,0.1mA.  我怀疑主要还是两个 MCU 吃掉的电流为主,待我后续分开分析。

  • 回复了主题帖: 【NXP Rapid IoT评测】扩展底版DIY成功

    IC爬虫 发表于 2019-1-13 20:06 这种白色的端子叫什么?
    板对板连接器? 具体这里用到的器件手册见附件。

  • 发表了主题帖: 【NXP Rapid IoT评测】BLE传送传感器值测试

    本帖最后由 cruelfox 于 2019-1-13 19:27 编辑   依然用在线的IDE, 我在已经实验过的工程里面又添加了一个 BLE Characteristic 的模块,并把加速度计输出连到它上面。   在右边属性栏可以看到,IDE 给自动分配了两个 UUID, 一个是自定义的 service, 一个是这个 service 下的 characteristic. 还有数据类型可以选择,默认是 String 也就是字符串,猜想这样就是与LCD上显示的一致了。   然后编译,最后下载 .bin 文件到 NXP Rapid-IoT 上面。为了快速下载,我用JLink OB通过SWD下到FLASH 0x14000 处,然后reset MCU   官方的Android APP在我家连不上服务器不能用,我就用 BLE Scanner 来看看了。Connect 还是成功的,然后可以看到它有哪些 Service:   竟然有4个Custom Service, 从UUID来找,最后一个才是我创建的,里面的 Characteristic 也是和Web界面上的吻合。按一下蓝色"R"图标,读出了值。没错,这个括号括起来的三个数就是加速度采集结果。同样,这个值每秒刷新一次,不过要手机通过BLE主动去读。   那么另外三个Custom Service是什么用途呢? 可能是给Rapid-IoT APP专用的,只能猜想而已。   如果会开发手机BLE APP, 根据自己定义的UUID来访问传感器数据是容易的,就绕开了官方APP登陆外网的问题。   另外,虽然 BLE 功能是 Rapid-IoT 里面的 KW41 负责的,我从SWD将 K64 halt 以后,BLE 就再连不上了。看来 KW41 像是作为 K64 的从属外设在工作。

  • 发表了主题帖: 【NXP Rapid IoT评测】扩展底版DIY成功

      NXP Rapid-IoT 这个背后有扩展槽,引出了部分I/O口。其中 50pin 的槽主要是为 K64 的,20pin 的给 KW41. 从手册上可以知道这个引脚的定义。   其实只是为了SWD的话,从板子上飞出来线用就好了,但一是必须开壳(虽然我已经开了,觉得这个壳的材质经不起反复拆装),二是飞线后对这么小巧的外形有累赘,不像插座连接那样不用时方便分离。   做个扩展板,把I/O引出来干别的是另有用途的,至少可以获得串口帮助调试。I2S, SD卡也许是用不上。就是这个插座的封装不适合日常DIY ,太小啦。手册里已经标注了型号 DF12(4.0)--50DP-0.5V, 我需要购买与之对应的连接器:DF12-50DS-0.5V. 这玩意还不便宜,就只买了一个来用。   下面是我设计的底板原理图和PCB。因为面积和布线的关系,SD卡功能就舍弃了。外接5V电源没有连,画图时我没想到从底座供电的需要。   打样回来,小心地把连接器焊好,再焊个SWD和UART的排针,焊个复位按钮。这类座子引脚短,手焊锡多一点就容易爬到两个引脚中间去形成短路,烙铁接触时间也不敢长了怕烫坏塑料。   对接到 Rapid-Iot 上 (底盖我拆了一直没装回,装上再插板子也是没有影响的)   这样用SWD下程序和调试就更方便了,也可以方便用串口(最多3个)接收数据.

  • 发表了主题帖: 【NXP Rapid IoT评测】SWD烧写程序注意事项

      Rapid-IoT 可以使用SWD进行调试,如果没有购买 hexiwear 底板,也不打算自己做扩展板的话,可以撬开外壳,把SWD的信号飞出来接现有的 xxLink 调试器。具体从哪里连线见我前头发的帖子 http://bbs.eeworld.com.cn/thread-1065854-1-1.html   现在说一下 SWD 烧写程序的注意事项,因为我原来不知道,遇到过小麻烦。   通过 rapid-iot-studio 在线IDE的编译功能,可以直接得到编译好的 .bin 文件,然后从USB下载到 Rapid-IoT 里面运行(办法是按住SW3按钮,也就是左上方那个,再捅背后的复位按钮复位MCU. MCU重启后,USB识别出可移动磁盘,可将 .bin 文件 copy 过去,然后 Rapid-IoT 会执行烧写并在完成后重启)。这个烧写功能是 MCU (K64) 的固件自带,属于 bootloader. 我在 SDK 里面见到过 bootloader 目录。   于是我开始认为在线生成的 .bin 里面是包含 bootloader 的,也就是说 USB 功能其实也在里面,只是启动时 SW3 必须是按下的才能切换到 bootloader 模式。   但是我第一次用 Jlink OB 将在线IDE生成的 .bin 通过SWD连接写到 FLASH 0x0起始处(查K64手册,FLASH是从内存0x0地址开始)之后,重启动却没有起来(屏幕无显示,串口也没反应)。当然 SWD 并没有挂掉,还是能用的,它不大可能变砖。   幸好,我第一次用 SWD 连接时就把 FLASH 内容读出来保存到电脑上了。于是我把保存的文件重新写回 FLASH,重启,它又活过来了。   那么是什么环节出了问题呢?我将这个在线生成的 .bin 用 USB 方式烧写一次,然后重启,再用 SWD 连接上去,将 FLASH 内容全部读出来保存成文件,比较下两个文件的不同看看吧。   的确这两次结果的 FLASH 内容是不一样的,从一开始的中断向量表就大不相同了,所以我从 SWD 烧写的不正确。   那么下载的 .bin 到哪里去了?加密存放没有必要,于是找找看。检索文本比较方面,很快就比对到了:   注意前面的地址,0x7BEE00-0x67EE00 = 0x14000. 也就是说,很可能工程的.bin文件实际上存放在 FLASH 的 0x14000 开始的地方。于是我从 dumpdemo.bin 的 0x14000 处开始与 demo.bin 文件比较,发现后面内容完全相同。   这样问题就清楚了。如果要通过 SWD 将在线 IDE 编译得来的 .bin 文件烧写进 MCU (K64),那么要写到 FLASH 的 0x14000 地址。在 JLink Commander里面命令就是 loadbin xxxx.bin 14000 ,而前面这 80kB 的 FLASH 空间是留给 bootloader 用的,bootloader 负责 USB 烧写方式。   那么,如果是自己本地编译的工程呢,该烧写到哪个地址?这里也要分情况,要看程序的执行地址是多少。例如我编译的这个(用的常规的K64 linker script),从 objdump 打印出的信息看,代码是从 0 地址开始存放的:   因此,这种情况下就必须写到 FLASH 的 0 地址了,原先的bootloader也被清除,以后也只能用SWD方式烧写。

  • 发表了主题帖: 【NXP Rapid IoT评测】在线生成工程的本地编译

      在 rapid-iot-studio.nxp.com 在线IDE创建的工程的网页界面上,有一个 "Download" 图标("Program" 图标的左边),(如果网络顺畅的话)点了过后等一会儿,浏览器会弹出下载文件的提示,网站传来一个 .zip 压缩包,是这个工程的源代码。   第一次下载的时候,我注意到这个源代码压缩包居然超过了 10MB 大小,感到奇怪。解开察看发现其实它并不只是工程源代码,它把所有的依赖的库(源文件或编译过的)都带上了,不需要再另外下载SDK就能用。这里面东西不少:   其中真正属于在线生成的“工程代码”部分有多少呢?我下载了两个不同工程的代码包,可以比较一下:   diff一番就清楚了——这两个工程的差异,主要在于 app_src 目录里面的内容不同,另外 .project 文件(可能是 MCUExpresso 用的)里面不同的地方只是工程名称。至于两个用到的 fxos8700.c 为何不一样我还没搞清楚。   我本来就没打算弄 MCUExpresso IDE 来编译它,准备扒目录分析需要用到的代码如何编译的,忽然发现目录下面有 makefile 文件。再查看其内容正好是调用 GCC 工具链的,所以直接执行 make 命令看看效果了,遇到问题也是很可能的。   果不其然,编译过程用到 ccache 命令(程序)没有,但看其作用也无关紧要,因为后面跟的就是 arm-none-eabi-gcc. 我开始还自己写了一个 ccache.exe 来把命令行参数传递给后面指定的程序,后来发现其实直接改 makefile 引用的 source.mk 文件更简单(把ccache文本替换掉就是了)。这样 make 就直接调 gcc 来编译。   然后又遇到错了,gcc报告 redlib.spec 找不到,因为命令行上有 -D__REDLIB__ -specs=redlib.specs 指定spec文件. 厄,Redlib 是啥我都没听说过。于是我先把 -specs=redlib.specs 这个选项删掉再说(在 source.mk 文件里改),重新尝试编译。   gcc给了一个警告, 说makefile不是一个目录。仔细看,命令行上出现了 -I"makefile" 这条选项,没有道理,改 source.mk 删掉。之后就没有编译错误了,但是 make 只编译了一个 C 文件就停下了,奇怪?   我看了 makefile 中写的编译目标,觉得应该执行 make main-build,于是make开始编译很多个文件……   过了一会,出现一个error,是 gcc 说 struct timeval 重复定义了,这错出现在 RapidIot_Base/middleware/wireless/nwk_ip/core/interface/sockets.h 中,而 struct timeval 已经在 C 标准库中定义了。我想起来 Redlib 这茬,很可能就是和我的编译器使用的 Newlib 的差异造成。目前我干脆修改下 sockets.h, 沿用C标准库中的定义:(加上条件编译指令) #ifndef _SYS__TIMEVAL_H_ struct timeval {   uint32_t tv_sec;      /*!< seconds */   uint32_t tv_usec;     /*!< microseconds */ }; /*!< Structure containing time information */ #endif   这样编译继续下去了,到最后链接的时候出了错:找不到 MK64FN1M0xxx12_connectivity.ld 这个脚本。不过这是小问题,我见过目录树下面有这个文件的,在 boards/rpk/mcux 目录下面,copy过来即成。   链接也通过了,得到一个 .axf 的文件,实际上就是 ELF 文件嘛。我用 objcopy 得到 .bin 文件,就可以用于下载了。   我编译下载的 "Rapid-IoT Out Of Box Demo",烧写进去运行正常,和原来自带的功能一样。   后来又查了一下 Redlib 是什么,解释:

  • 发表了主题帖: 【NXP Rapid IoT评测】在线IDE开发体验

    本帖最后由 cruelfox 于 2019-1-13 12:40 编辑   收到 Rapid-Iot 这么久,然而手机APP我就没使成功过,一直是被服务器无法访问的故障挡住了。   我于是就放弃手机咯,评测总得继续进行。好在 rapid-iot-studio 网站还能登陆进去,虽然慢,择时间还是能用用的。   这个基于Web的IDE已经有不少坛友分享过了,它可以快速创建 Rapid-Iot 的原型开发(就是说硬件细节都不需要管了,像搭积木一样放上模块,设计好连接关系就能实现一些功能),和传统程序语言开发完全不一样。有些方面像 LabView, 但是又没有后者那么复杂的数据类型和控制逻辑。暂时当作“玩具”来试试吧。   在Web IDE里面有个"EXAMPLES"页,可以下载十多个例子工程。每个下载来都是一个 .atmo 后缀的文本文件,从内容上推测,这就是那些可视化的“积木”对应的描述代码。自己编写 .atmo 文件显然不是正确的操作方式:在Web IDE中可以把这些 .atmo 的文件导入进去,产生一个工程,就可以随意编辑了。比如 Rapid-Iot 默认内置的demo就是 "Rapid IoT Kit Out Of Box Demo" 这个工程,可以借鉴一下(本人看得一头雾水:线太多模块太多,关系就理不清了;而且许多模块上是没有连线的),不过还有更简单的工程利于上手。   我先弄出来个基本的传感器信息显示的工程:   核心模块是加速度和磁强计,它由一个定时模块去触发采集。试试把输出送到显示和串口是怎样的效果,我选择了三轴数据采集,但是输出数据是什么格式并不知道,就这么硬给连过去了……   然后在线编译,成功了。再把bin文件下载下来。(网页的响应需要耐心等待)之后就可以烧到小东西里去看效果了。   启动还是和以前一样,先出现NXP banner, 然后 atmosphere 的 banner, 后来终于和默认程序不一样了。   看来 TextDisplay 那模块是自己识别数据类型并处理的。   Debug串口出来的是这些信息(后面每秒输出一行数据),前面部分是启动时自动输出的,原先带的程序也会输出这些信息。 ####         ######      ##### ########## ######      # ######    ##### ############# #######     ## ######  ##### ############### ########    ### ########### ####       ##### #### #####  #### ######### #####       ##### ####  ##### #### ######### ################# ####   ######## ########### ############### ####     ##### ######  ##### ############ ####      ### ######    ##### ## ####       # ######      ##### # SHELL build: Jan 13 2019 Copyright (c) 2017 NXP Semiconductors Initializing BLE Got MAC Address: 00:60:37:0A:B1:38 BLE Initialized RX Service Handle: 01 RX Char Handle: 03 RX Char Handle: 05 RX Char Handle: 07 RX Service Handle: 08 RX Char Handle: 0A Error opening file thread_enabled Thread Enabled: 0 Stored Build UUID: bc1751e4-981d-44a2-99ba-7f7f3ef116d2 Current Build UUID: bc73e095-54e9-4c31-ac0Error opening file ota_complete Uuid Match 0 Boot After OTA: 0 Wiping Flash Error opening file registrationInfo Error opening file ble_enabled BLE Enabled: 1 Setting device name: PB138 Setting service uuid Setting advertised UUID: b86d7f34-70c1-4421-8c71-c1f250b81811 Starting advertising RX Service Handle: 0C RX Char Handle: 0E RX Char Handle: 10 RX Char Handle: 12 RX Char Handle: 14 RX Service Handle: 16 RX Char Handle: 18 RX Char Handle: 1B RX Service Handle: 1C RX Char Handle: 1E Properties: 08 Registering cb for handle 0012 Properties: 28 Registering cb for handle 0018 Properties: 04 Registering cb for handle 001B Properties: 1A Registering cb for handle 001E GATTDBFindCccdHandleForCharValueHandleIndicationCCCD[3] Atmo Handle 04 Kw41z Handle 14 CCCD Handle: 15 GATTDBFindCccdHandleForCharValueHandleIndicationCCCD[4] Atmo Handle 06 Kw41z Handle 18 CCCD Handle: 19 GATTDBFindCccdHandleForCharValueHandleIndicationCCCD[6] Atmo Handle 09 Kw41z Handle 1E CCCD Handle: 1F Writing auth info [NFC] Registration Set Acc(X,Y,Z): (-0.106384, 0.068808, -0.979416) Acc(X,Y,Z): (-0.107360, 0.072712, -0.976976) Acc(X,Y,Z): (-0.106872, 0.068808, -0.978440) Acc(X,Y,Z): (-0.106384, 0.074176, -0.980392) Acc(X,Y,Z): (-0.107848, 0.069784, -0.981856) Acc(X,Y,Z): (-0.104432, 0.071736, -0.984784) Acc(X,Y,Z): (-0.107360, 0.071248, -0.978928) Acc(X,Y,Z): (-0.106384, 0.070272, -0.976488) Acc(X,Y,Z): (-0.107848, 0.072712, -0.979904) Acc(X,Y,Z): (-0.104920, 0.068808, -0.980880) Acc(X,Y,Z): (-0.109312, 0.071736, -0.981368) Acc(X,Y,Z): (-0.106384, 0.069784, -0.976000) Acc(X,Y,Z): (-0.107360, 0.071736, -0.977952) Acc(X,Y,Z): (-0.107360, 0.071736, -0.981856) Acc(X,Y,Z): (-0.105408, 0.071248, -0.982344) Acc(X,Y,Z): (-0.106872, 0.067832, -0.978928) Acc(X,Y,Z): (-0.105408, 0.067832, -0.992592)复制代码   另外,Web IDE 工程界面上可以查看源代码,上面我这个很简单的工程,对应的代码连同空行总用有四百多行——纯正的C语言。也就意味着,可以在可视化生成的工程基础上再修改,做任何的“积木”不能实现的操作。

  • 回复了主题帖: 用ST-link调试Atmel Cortex-m0

    yyhhgg 发表于 2019-1-12 23:45 楼主你这个开发板自带了ISP下载器,用这个给8位的下载仿真试过没有,好像应该也可以
    你说STM8么? 这个没有引出SWIM接口的。

  • 2019-01-12
  • 回复了主题帖: 这算不算是STM32的BUG

    厄,你写这个 for 循环的用意何在?

  • 2019-01-05
  • 回复了主题帖: 微型开源USB开发板

    我也想有时间的时候琢磨一下 KiCad 一直使的 Eagle 的最大问题是不能推挤布线,太考验耐心了。

  • 2019-01-02
  • 回复了主题帖: 【NXP Rapid IoT评测】Rapid IoT Studio online IDE生成工程的待机电流

    我也想测测这玩意工作电流,看了板子没找到合适的下手地方。电池的插头太小,手上没有适合的接插件。 你这么测是把 LDO 给旁路了?

  • 2018-12-31
  • 回复了主题帖: LM317做横流源精度如何?

    4mA的话,用LM334来做更好。

  • 回复了主题帖: LM317做横流源精度如何?

    你是只做一个,还是做许多个? LM317的电压基准有离散性,只做一个还好办,电阻可以筛选,多并联两个用来微调。调到你要的恒流值,再测一下温度稳定性是否满足。按你的0.1%要求,整体需要25ppm/度以内的温度系数(如果是正负0.1%以内,则放宽到50ppm/度),不一定达得到,电阻也有温飘,得实际测试。

  • 2018-12-30
  • 回复了主题帖: 一个奇怪的MIC(麦克风)信号放大电路,想了很久还是看不懂

    本帖最后由 cruelfox 于 2018-12-30 23:39 编辑 这个电路不是推挽。Q3和Q4都是共发射极自偏置电路,串联起来了。但是Q3的基极被C228旁路,因此Q3没有放大作用,只是Q4的恒流负载——也就是小信号交流等效电路里,Q3是恒流源,Q4是共发射极放大。C232是降低Q4高频增益的,避免放大不需要的信号。 R106, R108两个电阻决定了管子的静态工作电流,这个电路的偏置方式很简陋——工作点对管子的参数依赖太强,无法事先确定电流大小是多少(跟hFE关系大),无法确定Q4 Q3集电极电压是多少。为什么电阻取1M?只能说是一个可以工作的取值,按照给定电源电压、Q3 Q4 hFE的话可以算出一个合理的电流,大点小点效果也变化不大。

  • 2018-12-29
  • 发表了主题帖: 【NXP Rapid IoT评测】SWD 调试线的引出

    不用底版也能搞,看手册: TP23  SWDCLK, K64和KW41公用 TP22  K64的SWDIO TP24  KW41的SWDIO 测试点都留得有。 撬开机壳,看到电路板,找找,在这些地方呢。 飞线出来,连JLink OB啥的,不难搞定。

  • 2018-12-27
  • 回复了主题帖: 【NXP Rapid IoT评测】+Hello world!

    这个过程就不需要经过手机APP了?

  • 回复了主题帖: 【NXP Rapid IoT评测】+IOT初体验及Web IDE使用流程

    flyword 发表于 2018-12-27 16:22 APP连不上服务器这个问题,我解决的办法是出现登录界面的时候点注册,然后再注册那个界面里再重新登录用 ...
    都没有机会出来界面啊,

统计信息

已有319人来访过

  • 芯币:5572
  • 好友:9
  • 主题:94
  • 回复:822
  • 课时:1
  • 资源:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言