搜索
bottom↓
楼主: overheat

里程碑!穿戴设备开发板nRF51822-AK主要特性已全部完成进入...

  [复制链接]

出0入0汤圆

发表于 2013-7-17 10:38:42 | 显示全部楼层
我要预订

出0入0汤圆

发表于 2013-7-17 10:42:38 | 显示全部楼层
usb dongle是借用jlink芯片的usb,能不能加一个cp2102芯片兼容呢?

出0入0汤圆

 楼主| 发表于 2013-7-17 11:00:16 | 显示全部楼层
greato1 发表于 2013-7-17 10:42
usb dongle是借用jlink芯片的usb,能不能加一个cp2102芯片兼容呢?

官方的原理图是这样的:


单片集成了USB to UART和Jlink。除非能够hack一个,否则联系segger购买的话,成本应该会很高。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-17 17:09:19 | 显示全部楼层
是的,不清楚51822的uart经过jlink-ob是不是透传,如果是的话就简单了,用一个cp2102就行了,不是就麻烦了。

出0入0汤圆

 楼主| 发表于 2013-7-17 17:16:13 | 显示全部楼层
greato1 发表于 2013-7-17 17:09
是的,不清楚51822的uart经过jlink-ob是不是透传,如果是的话就简单了,用一个cp2102就行了,不是就麻烦了 ...

即使是透传的话,也只有一个USB口啊。
jlink和cp2102同时连上,还需要一个hub吧?

出0入0汤圆

发表于 2013-7-17 17:21:17 | 显示全部楼层
这芯片好买不?如果好买也定一个好了。

出0入0汤圆

 楼主| 发表于 2013-7-17 17:22:17 | 显示全部楼层
我定了1K的量。

出0入0汤圆

发表于 2013-7-17 17:28:06 | 显示全部楼层
不用呀,pc有2个usb不就行了?

出0入0汤圆

发表于 2013-7-17 17:28:41 | 显示全部楼层
你在哪家定的?现在就定1k是不是早了点。

出0入0汤圆

发表于 2013-7-17 17:32:42 | 显示全部楼层
现在我不确定51822的uart经过cp2102接pc,nordic调试软件能不能识别?

出0入0汤圆

发表于 2013-7-17 17:44:01 | 显示全部楼层
jlink-ob接51822的uart,内部做了一个usb to uart的bridge,但是是不是透传不能确定

出0入0汤圆

发表于 2013-7-17 17:56:08 | 显示全部楼层
overheat,我好像重复预订了。。。我开始用了莫元预订成功了。刚才趴桌子上刚睡醒,想上来看看进展,迷迷糊糊的了看到个你贴的淘宝链接,没看清楚,以为是预订后的用户要补齐余款呢,于是就拍下付了30块,现在突然发现预订重复付款了。

出0入0汤圆

 楼主| 发表于 2013-7-17 21:23:35 | 显示全部楼层
greato1 发表于 2013-7-17 17:44
jlink-ob接51822的uart,内部做了一个usb to uart的bridge,但是是不是透传不能确定

我接下来还有很多计划,所以索性多定了点。需要的朋友可以找我,比X宝上价格低。

官方识别的问题的确要研究一下,透传是没有问题的,就是怕官方识别的是jlink-ob的序列号。

不过,样例只是样例而已,总有解决或者替代的办法。

出0入0汤圆

 楼主| 发表于 2013-7-17 21:25:46 | 显示全部楼层
winterw 发表于 2013-7-17 17:56
overheat,我好像重复预订了。。。我开始用了莫元预订成功了。刚才趴桌子上刚睡醒,想上来看看进展,迷迷糊 ...

没事的,说明情况我会再最后余款里合并计算的。

不会多收的。

出0入0汤圆

 楼主| 发表于 2013-7-17 21:39:11 | 显示全部楼层
nRF51822-AK的支持者,
今日进展:
2013年7月17日,PCB已经打样5块,预计5天完成,完成后顺丰寄回来调试。另外,感谢路路提供的3.7V锂电池,这个时间空挡可能会研究一下。

出0入0汤圆

发表于 2013-7-17 23:12:55 | 显示全部楼层
overheat 发表于 2013-7-17 21:39
nRF51822-AK的支持者,
今日进展:
2013年7月17日,PCB已经打样5块,预计5天完成,完成后顺丰寄回来调试。另 ...

板子上有充电电路吗 锂电池的

出0入0汤圆

发表于 2013-7-17 23:32:34 | 显示全部楼层
看规格书 The RADIO contains a 2.4 GHz radio receiver and a 2.4 GH z radio transmitter that is compatible with Nordic's
proprietary 2 Mbps, 1 Mbps, and 250 kbps radio modes in addition to 1 Mbps Bluetooth  Low Energy mode. 确实支持普通RF通信呀

出0入0汤圆

发表于 2013-7-18 09:55:11 | 显示全部楼层
原理图和相关资料可否先给我们?

出0入0汤圆

 楼主| 发表于 2013-7-18 12:57:30 | 显示全部楼层
nRF51822的datasheet:
nRF51822的API手册:
nRF51822-EK的官方使用指南:

其他还有SDK,ANT设计软件,协议栈等等,都太大了。等板子出来后给大家发吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-18 13:56:01 | 显示全部楼层
不知这个芯片做串口透传能做吗?速度能上多少?

出0入0汤圆

发表于 2013-7-18 14:05:29 | 显示全部楼层
预定一个,但是怎么预定和报名。

出0入0汤圆

 楼主| 发表于 2013-7-18 15:57:28 | 显示全部楼层
Vmao 发表于 2013-7-18 13:56
不知这个芯片做串口透传能做吗?速度能上多少?

这个芯片的任意一个管教都能配置不同的功能,感觉是GPIO来做的,带FIFO,速度应该跟主频有关系。主频16Mhz

出0入0汤圆

发表于 2013-7-19 21:20:33 | 显示全部楼层
第一步应该先实现蓝牙透传,后面就好办了

出0入0汤圆

 楼主| 发表于 2013-7-19 22:00:55 | 显示全部楼层
inkfish321 发表于 2013-7-19 21:20
第一步应该先实现蓝牙透传,后面就好办了

是的,第一个例程是nRF51822控制LED闪烁。
第二个例程就是nRF51822蓝牙通信(透传)。
第三个应该就是手机通信。

出0入0汤圆

发表于 2013-7-20 11:51:09 | 显示全部楼层
51822做不了透传,它只能作为外设,slave,做不了master。

出0入0汤圆

 楼主| 发表于 2013-7-20 11:58:09 | 显示全部楼层
greato1 发表于 2013-7-20 11:51
51822做不了透传,它只能作为外设,slave,做不了master。

我的意思是 uart->nrf51822 -> 无线电波 -> nrf51822 -> uart

你说的透传是指?

出0入0汤圆

发表于 2013-7-20 20:33:42 | 显示全部楼层
我要预定

出0入0汤圆

发表于 2013-7-20 20:37:53 | 显示全部楼层
我现在也在做这个51822的产品,搞到的资料看得不是太理想。希望预定了能有所帮助。

出0入0汤圆

发表于 2013-7-20 22:19:36 | 显示全部楼层
我的意思是 uart->nrf51822 -> 无线电波 -> nrf51822 -> uart

你说的透传是指?


我说的也是这个意思,但是51822现在的协议栈只支持外设 gap角色,也就是只能做slave,做不了master。所以,2个51822是不能连接的。

出0入0汤圆

发表于 2013-7-20 22:21:28 | 显示全部楼层
仔细看了一下51822的例程,51822的编程确实比较简单,但是没有提供内置外设的驱动库,这点很不爽。

出0入0汤圆

发表于 2013-7-20 22:22:52 | 显示全部楼层
有一点很奇怪,51822不是提供usb gongle,这里运行的程序应该是中心角色,这是为什么呢?这个usb gongle的程序有没有提供呀?

出0入0汤圆

 楼主| 发表于 2013-7-20 22:30:06 | 显示全部楼层
本帖最后由 overheat 于 2013-7-20 22:34 编辑
greato1 发表于 2013-7-20 22:19
我说的也是这个意思,但是51822现在的协议栈只支持外设 gap角色,也就是只能做slave,做不了master。所以 ...


可以连接,一个做server(slave),一个做peripheral(master)。官方有个HRS(心率计)的例程,就是两个nRF51822连接,其中一个带有USB转串口的功能,直接获取另外一个nRF51822上的数据,并利用串口传输给电脑,显示在屏幕上。

出0入0汤圆

 楼主| 发表于 2013-7-20 22:34:03 | 显示全部楼层
本帖最后由 overheat 于 2013-7-20 22:35 编辑
greato1 发表于 2013-7-20 22:22
有一点很奇怪,51822不是提供usb gongle,这里运行的程序应该是中心角色,这是为什么呢?这个usb gongle的 ...


nRF51822的协议层和应用层是完全分开的。
首先,把协议层的东西烧写进芯片
然后,应用层的代码编译好后,进行第二次烧写。

usb dongle里面的应用层代码在 Nordic Semiconductor\nRF51 SDK_v4.3.0.27417\Nordic\nrf51822\Board\pca10000 下面。
协议层的hex在nRFgo那个软件里。

出0入0汤圆

 楼主| 发表于 2013-7-20 22:44:12 | 显示全部楼层
2013年7月20日,两个消息:一个坏消息是,PCB厂家周末休息,以前说的5天交货是指的工作日。一个好消息,全部物料和制造厂商已经确定,物料基本是从一线代理处购买质量有保证,制造商是给日本代工的厂家,听说质量比兴森快捷还好。

出0入0汤圆

发表于 2013-7-20 23:55:57 | 显示全部楼层
本帖最后由 sh0568 于 2013-7-20 23:57 编辑

我要预定,望lz确认下。(淘宝已付款)

出0入0汤圆

 楼主| 发表于 2013-7-21 06:06:17 | 显示全部楼层
sh0568 发表于 2013-7-20 23:55
我要预定,望lz确认下。(淘宝已付款)

已经收到,请在我给你发的旺旺消息里面留下你的邮箱地址,以便我每天给你发项目进展。

出0入0汤圆

发表于 2013-7-21 10:06:32 | 显示全部楼层
可以连接,一个做server(slave),一个做peripheral(master)。官方有个HRS(心率计)的例程,就是两个nRF51822连接,其中一个带有USB转串口的功能,直接获取另外一个nRF51822上的数据,并利用串口传输给电脑,显示在屏幕上。

我觉得你理解有误,LL层定义了slave和master,gap层定义了中心设备(Central ),外设设备(peripheral),gatt层定义了server和client,Central 对应master, peripheral对应slave,server与client的使用和gap的角色和LL层角色无关,51822协议栈定义了只能作为peripheral或者Broadcaster,2个蓝牙设备连接必须一个做为master,一个作为slave,所以我觉得2个51822不能直接连接,但是usb gongle(pc10000)确实可以和pc10001连接,pc10001作为slave,那么usb gongle一定作为master,这与51822只能作为peripheral相悖,除非usb gongle使用的是另一套协议栈。
你说的HRS(心率计)的例程具体在哪个目录?项目名字叫什么?

出0入0汤圆

发表于 2013-7-21 10:09:24 | 显示全部楼层
usb dongle里面的应用层代码在 Nordic Semiconductor\nRF51 SDK_v4.3.0.27417\Nordic\nrf51822\Board\pca10000 下面。

我的sdk下pc10000只有button_radio_example,led_radio_example和uart_example3个例程,并没有关于ble的例程。

出0入0汤圆

发表于 2013-7-21 10:11:22 | 显示全部楼层
pcb制版记得要让打版厂做阻抗匹配。

出0入0汤圆

 楼主| 发表于 2013-7-21 10:12:07 | 显示全部楼层
greato1 发表于 2013-7-21 10:09
我的sdk下pc10000只有button_radio_example,led_radio_example和uart_example3个例程,并没有关于ble的例 ...

C:\Nordic Semiconductor\nRF51 SDK_v4.3.0.27417\Nordic\nrf51822\Board\pca10001\ble\ble_app_hrs
这个你有没有?

出0入0汤圆

 楼主| 发表于 2013-7-21 10:20:46 | 显示全部楼层
greato1 发表于 2013-7-21 10:06
我觉得你理解有误,LL层定义了slave和master,gap层定义了中心设备(Central ),外设设备(peripheral) ...


是的,我的表述有点不清楚,应该是一个做central(slave),一个做peripheral(master)。我说的是在HRS的特定例程里的情况,就像你说的:server与client的使用和gap的角色和LL层角色无关。

不过,你说的“51822协议栈定义了只能作为peripheral或者Broadcaster”有何根据?在哪里看到的?

出0入0汤圆

 楼主| 发表于 2013-7-21 10:21:33 | 显示全部楼层
greato1 发表于 2013-7-21 10:11
pcb制版记得要让打版厂做阻抗匹配。

是的,这个会做测试的。

出0入0汤圆

发表于 2013-7-21 10:36:12 | 显示全部楼层
我的USB dongle 发热量很大。有时候插电脑直接蓝屏。怎么解决?

出0入0汤圆

发表于 2013-7-21 12:01:48 | 显示全部楼层
C:\Nordic Semiconductor\nRF51 SDK_v4.3.0.27417\Nordic\nrf51822\Board\pca10001\ble\ble_app_hrs

这个例程有,不过它是作为外设设备,你说的“其中一个带有USB转串口的功能,直接获取另外一个nRF51822上的数据,并利用串口传输给电脑,显示在屏幕上。”是哪个例程?

出0入0汤圆

发表于 2013-7-21 12:04:25 | 显示全部楼层
不过,你说的“51822协议栈定义了只能作为peripheral或者Broadcaster”有何根据?在哪里看到的?

在“S110_SoftDevice_Specification v1.1.pdf”中第一页
Bluetooth® 4.0 compliant low energy single-mode protocol
stack
• Link layer
• L2CAP, ATT, and SM protocols
• GATT, GAP, and L2CAP
• Peripheral and Broadcaster roles
• GATT Client and Server
• Full SMP support including MITM and OOB pairing

出0入0汤圆

发表于 2013-7-21 12:06:35 | 显示全部楼层
是的,我的表述有点不清楚,应该是一个做central(slave),一个做peripheral(master)。我说的是在HRS的特定例程里的情况,就像你说的:server与client的使用和gap的角色和LL层角色无关。

这句有问题,central是master ,peripheral才是slave。

出0入0汤圆

 楼主| 发表于 2013-7-21 12:13:59 | 显示全部楼层
inkfish321 发表于 2013-7-21 10:36
我的USB dongle 发热量很大。有时候插电脑直接蓝屏。怎么解决?

你看看你的硬件版本是不是V1.0,可能是你的nRF51822是工程样片,有点小bug。

出0入0汤圆

 楼主| 发表于 2013-7-21 12:16:01 | 显示全部楼层
greato1 发表于 2013-7-21 12:01
这个例程有,不过它是作为外设设备,你说的“其中一个带有USB转串口的功能,直接获取另外一个nRF51822上的 ...


就是HRS,usb dongle烧写mefw_xxx.hex,之后电脑运行Master Control panel。就可以从电脑上接受 pripheral的消息了。

你看看DK的user guide。

出0入0汤圆

发表于 2013-7-21 12:17:39 | 显示全部楼层
我没有dk 的user guide,麻烦共享一下。

出0入0汤圆

 楼主| 发表于 2013-7-21 12:23:52 | 显示全部楼层
greato1 发表于 2013-7-21 12:04
在“S110_SoftDevice_Specification v1.1.pdf”中第一页
Bluetooth® 4.0 compliant low energy single-mo ...

难道是centrol是以二级制提供的?没有源码?

出0入0汤圆

发表于 2013-7-21 12:26:12 | 显示全部楼层
这个我也在琢磨,想是应该nordic没有开放出来,或者是在pc上面实现的中心设备?

出0入0汤圆

发表于 2013-7-21 12:27:20 | 显示全部楼层
不过s110协议栈里面应该是不包含中心设备的代码吧

出0入0汤圆

发表于 2013-7-21 12:42:53 | 显示全部楼层
本帖最后由 greato1 于 2013-7-21 13:04 编辑

说说我对51822和nordic的看法:
讨厌的地方:
1.只能买套件才能下载资料,小气。
2.sdk安装必须依赖keil,我第一次都没找到,不方便。
3.驱动没有提供库,只有几个单独的例程,不方便用户使用。
4.非得用softdevice,使用svc机制,真是NC。
5.资料太少,例程都没有文档说明,只能看代码。
6.没有集成操作系统,这点严格说也不是缺点,但是主循环不能控制,只能首先在init过程注册回调函数处理,这点处理传感器外设不够方便。
7.service和特性添加过程不够直观,这和ti或者csr比较就知道了。
8.没有提供用户代码加密机制。
优点是:
1.内部集成了cortex m0,处理能力强。
2.集成了32×32的乘法器,单周期处理乘法运算,可以处理一些需要计算的程序。
3.外设够多,可以方便集成传感器。
4.svc机制,协议栈安全性高。
5.用户编写代码简单,容易控制,不过这要建立在完全理解它的协议栈的前提下。
6.ram比较大。
7.功耗低,tx power适中。
8.提供超小封装,便于在穿戴设备上面使用。

出0入0汤圆

 楼主| 发表于 2013-7-21 14:07:12 | 显示全部楼层
greato1 发表于 2013-7-21 12:17
我没有dk 的user guide,麻烦共享一下。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-21 15:29:07 | 显示全部楼层
MARK.收藏

出0入0汤圆

发表于 2013-7-21 15:36:08 | 显示全部楼层
我要dk的user guide,ek的有了。

出0入0汤圆

发表于 2013-7-21 16:08:31 | 显示全部楼层
关注,这个应该比较有趣。

出0入0汤圆

 楼主| 发表于 2013-7-21 17:12:13 | 显示全部楼层
greato1 发表于 2013-7-21 15:36
我要dk的user guide,ek的有了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-7-21 21:59:45 | 显示全部楼层
2013年7月21日,在“怺逺 海子”的帮助下USB Dongle 的进度很快,估计很快就能发布了。另外,Wildcard外扩板,包括电子指南针和气压计,bone 也答应选型并开发,感谢两位。https://gitcafe.com/overheat1984/nRF51822_STUDY/tickets 上面还有几个规划中的外设,如果感兴趣可以在上面领取“工单”,我会尽全力提供芯片、PCB、技术上的支持!

出0入0汤圆

发表于 2013-7-22 09:03:30 | 显示全部楼层
电子罗盘和气压计可以参考四轴项目的型号,参考资料多,性能也稳定,价格也不高。

出0入0汤圆

发表于 2013-7-22 09:04:47 | 显示全部楼层
usb gongle是如何实现的?评估可以实现吗?

出0入0汤圆

发表于 2013-7-22 09:19:33 | 显示全部楼层
本帖最后由 greato1 于 2013-7-22 09:28 编辑

气压计芯片可以选择bmp085,iic接口,用的人也多。

出0入0汤圆

发表于 2013-7-22 09:29:21 | 显示全部楼层
本帖最后由 greato1 于 2013-7-22 09:31 编辑

bmp085中文手册
http://wenku.baidu.com/view/e3bf730f581b6bd97f19ea59.html
http://wenku.baidu.com/view/3b91c61d964bcf84b9d57be4.html

出0入0汤圆

发表于 2013-7-22 09:37:25 | 显示全部楼层
电子罗盘可以参考HMC5883L, iic接口。

出0入0汤圆

发表于 2013-7-22 09:51:30 | 显示全部楼层
mefw_xxx.hex这个文件在那个软件包里面?

出0入0汤圆

 楼主| 发表于 2013-7-22 10:33:07 来自手机 | 显示全部楼层
greato1 发表于 2013-7-22 09:51
mefw_xxx.hex这个文件在那个软件包里面?

nrfgo这个软件里,这个软件你有吗?

出0入0汤圆

发表于 2013-7-22 11:43:09 | 显示全部楼层
nrfgo这个软件里,这个软件你有吗?
你是指nrfgo_sdk还是nrfgostudio?这2个软件都没有这个hex文件。

出0入0汤圆

 楼主| 发表于 2013-7-22 11:50:36 | 显示全部楼层
C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.4.0.8098\firmware\pca10000\MEFW_nRF51822_0.8.0_firmware.hex
这个文件你有吗?

出0入0汤圆

发表于 2013-7-22 12:17:58 | 显示全部楼层
C:\Program Files (x86)\Nordic Semiconductor\Master Control Panel\3.4.0.8098\firmware\pca10000\MEFW_nRF51822_0.8.0_firmware.hex

这个文件有,你是指这个文件?

出0入0汤圆

发表于 2013-7-22 13:34:47 | 显示全部楼层
我要预订

出0入0汤圆

 楼主| 发表于 2013-7-22 15:53:14 | 显示全部楼层
greato1 发表于 2013-7-22 12:17
这个文件有,你是指这个文件?

是的,把这个文件烧写进usb dongle,然后PC开master control panel,之后就能从电脑上接收其他nrf51822的数据了。

出0入0汤圆

 楼主| 发表于 2013-7-22 21:49:05 | 显示全部楼层
2013年7月22日,PCB已经发出去5天了(工作日3天),估计很快就回来了。上次“路 路”免费提供的小型锂电池,我明天开始投入Powercard的设计。另外,感谢@greato 答应设计Wildcard软件和@wajlh 提供的充电芯片参考。

出0入0汤圆

发表于 2013-7-22 22:17:08 | 显示全部楼层

我要预订+1

出0入0汤圆

发表于 2013-7-23 15:39:52 | 显示全部楼层
本帖最后由 inkfish321 于 2013-7-23 15:41 编辑

我想实现透明传输,应该怎么实现,能大概说明一下吗?  例如我设想的是用Notification profile.那我应该怎么实现?
别外如果我没有MAC电脑,没有苹果的手机。怎么调试才方便。

出0入0汤圆

 楼主| 发表于 2013-7-23 17:41:11 | 显示全部楼层
本帖最后由 overheat 于 2013-7-23 17:46 编辑
inkfish321 发表于 2013-7-23 15:39
我想实现透明传输,应该怎么实现,能大概说明一下吗?  例如我设想的是用Notification profile.那我应该怎 ...


可以实现透明传输,官方DK就有一个USB Dongle 和 EK主板通信的例子。我买的fitbit Flex也有一个小的USB接收器。

大概方法应该是:先设置好各层参数,比如LLC,GAP,GATT,和相应角色。
之后,完成两个设备的Discovery,和配对。
最后,调用nordic的相应API发送数据(或者利用Notification机制)。

最近一直忙于硬件,等板子出来,会有相应的例程。

另外,只要有蓝牙4.0的设备就行,ipad,iphone,带蓝牙4.0的笔记本,带蓝牙4.0的安卓手机估计也快支持了。如果都没有的话。。。。。这个。。。。。我们后面会推出USB Dongle!你可以买一个。

出0入0汤圆

 楼主| 发表于 2013-7-23 20:35:40 | 显示全部楼层
2013年7月23日,贴片电阻和电容采用国内顶级品牌——国巨。贴片电感品牌还没有定,大家可以推荐一下,4.7nH,10nH,3.3nH三种,都是0402封装,5%精度的。wajlh 推荐了一款锂电池充电芯片,感谢。另外,lazyguoguo 提议上无线充电。现在也有比较多的商业化方案,是不是比较成熟了?大家什么意见?

出0入0汤圆

发表于 2013-7-23 22:57:05 | 显示全部楼层
我不明白你所说的无线充电指的近距离的还是远距离的?不建议现在开发无线充电。近距离的大概在1~20mm可实现50%~90%的效率,传输功率可以做的很大,这种是使用电磁感应原理制作,成本较低,目前只在一些花哨的场合如手机充电,和一些必要的场合(如全密封、高速旋转等无法接出电线的产品上)应用,主要因为其使用条件苛刻,短距离,线圈需要对准。中等距离的有电磁耦合方式的,距离5米以内可实现20%~90%不等的效率,制作较为困难,小型化也较为困难,反正我最终没有搞出来。还有就是无线电波咯,距离较长,方位随意,以我的水平来看,这玩意只存在理论上

出0入0汤圆

发表于 2013-7-24 07:11:53 | 显示全部楼层
电感还是用线艺的绕线电感,可靠性高,射频的东西还是谨慎一点,推荐高Q值电感0402HP-4N7X  0402HP-10NX  0402HP-3N9X。电感选择不好,经常会引起功率输出不足,接收距离近的问题。还有RF端的电容建议选择村田的,不要在乎稍微高一点的价格。我的产品是吃过苦头的。

出0入0汤圆

发表于 2013-7-24 12:38:09 | 显示全部楼层
这两天付款

出0入0汤圆

发表于 2013-7-24 14:48:30 | 显示全部楼层
BLE的资料实在太少了。英语又不好。我有些疑问请教一下。我想把NRF51822的HID鼠标和健盘的例子改成HID透明传输来用。我想问一下该怎么改呢。我参考了这两个例子。

首先我把HID的报告描术符给改成只有一个输入报告和一个输出报告,参考了STM32 HID的例子。

  1. static void hids_init(void)
  2. {
  3.     uint32_t                  err_code;
  4.     ble_hids_init_t           hids_init_obj;
  5.     ble_hids_inp_rep_init_t   inp_rep_array[HID_REP_COUNT];
  6.     ble_hids_inp_rep_init_t * p_input_report;
  7.     uint8_t                   hid_info_flags;
  8.    
  9.     static uint8_t rep_map_data[] =
  10.     {
  11.         0x05, 0x8c, // USAGE_PAGE (ST Page)
  12.         0x09, 0x01, //USAGE (Demo Kit) */
  13.         0xa1, 0x01, /* COLLECTION (Application) */         
  14.         /* 6 */

  15.         // The Input report
  16.         0x85, 0x01,                     //     Report Id 1
  17.         0x09,0x03,                      // USAGE ID - Vendor defined
  18.         0x15,0x00,                      // LOGICAL_MINIMUM (0)        
  19.         0x26,0x00,0xFF,                 // LOGICAL_MAXIMUM (255)
  20.         0x75,HID_INPUT_REP_LEN,         // REPORT_SIZE (8)                  
  21.         0x95,EP1_PACK_SIZE,             // REPORT_COUNT (200)
  22.         0x81,0x02,                      // INPUT (Data,Var,Abs)
  23.         //19
  24.      
  25.         // The Output report
  26.         0x85, 0x02,                     //     Report Id 2
  27.         0x09,0x04,                      // USAGE ID - Vendor defined
  28.         0x15,0x00,                      // LOGICAL_MINIMUM (0)
  29.         0x26,0x00,0xFF,                 // LOGICAL_MAXIMUM (255)
  30.         0x75,HID_OUTPUT_REP_LEN,                      // REPORT_SIZE (8)
  31.         0x95,EP1_PACK_SIZE,             // REPORT_COUNT (200)  // 200字节
  32.         0x91,0x02,                      // OUTPUT (Data,Var,Abs)
  33.         //32

  34.         // The Feature report
  35.         0xc0                            //END_COLLECTION                   
  36.     };

  37.     // Initialize HID Service
  38.     p_input_report                      = &inp_rep_array[HID_INPUT_REP_INDEX];
  39.     p_input_report->max_len             = HID_INPUT_REP_LEN;
  40.     p_input_report->rep_ref.report_id   = HID_INPUT_REP_ID;
  41.     p_input_report->rep_ref.report_type = BLE_HIDS_REP_TYPE_INPUT;
  42.    
  43.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.cccd_write_perm);
  44.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.read_perm);
  45.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.write_perm);

  46.     p_input_report                      = &inp_rep_array[HID_OUTPUT_REP_INDEX];
  47.     p_input_report->max_len             = HID_OUTPUT_REP_LEN;
  48.     p_input_report->rep_ref.report_id   = HID_OUTPUT_REP_ID;
  49.     p_input_report->rep_ref.report_type = BLE_HIDS_REP_TYPE_OUTPUT;
  50.    
  51.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.cccd_write_perm);
  52.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.read_perm);
  53.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&p_input_report->security_mode.write_perm);


  54.     hid_info_flags = HID_INFO_FLAG_REMOTE_WAKE_MSK | HID_INFO_FLAG_NORMALLY_CONNECTABLE_MSK;
  55.    
  56.     memset(&hids_init_obj, 0, sizeof(hids_init_obj));

  57.     hids_init_obj.evt_handler                    = on_hids_evt;
  58.     hids_init_obj.error_handler                  = service_error_handler;
  59.     hids_init_obj.is_kb                          = false;
  60.     hids_init_obj.is_mouse                       = false;
  61.     hids_init_obj.inp_rep_count                  = HID_REP_COUNT;
  62.     hids_init_obj.p_inp_rep_array                = inp_rep_array;
  63.     hids_init_obj.outp_rep_count                 = 0;
  64.     hids_init_obj.p_outp_rep_array               = NULL;
  65.     hids_init_obj.feature_rep_count              = 0;
  66.     hids_init_obj.p_feature_rep_array            = NULL;
  67.     hids_init_obj.rep_map.data_len               = sizeof(rep_map_data);
  68.     hids_init_obj.rep_map.p_data                 = rep_map_data;
  69.     hids_init_obj.hid_information.bcd_hid        = BASE_USB_HID_SPEC_VERSION;
  70.     hids_init_obj.hid_information.b_country_code = 0;
  71.     hids_init_obj.hid_information.flags          = hid_info_flags;
  72.     hids_init_obj.included_services_count        = 0;
  73.     hids_init_obj.p_included_services_array      = NULL;
  74.    
  75.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.rep_map.security_mode.read_perm);
  76.     BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(&hids_init_obj.rep_map.security_mode.write_perm);
  77.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.hid_information.security_mode.read_perm);
  78.     BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(&hids_init_obj.hid_information.security_mode.write_perm);

  79.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_boot_mouse_inp_rep.cccd_write_perm);
  80.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_boot_mouse_inp_rep.read_perm);
  81.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_boot_mouse_inp_rep.write_perm);

  82.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_protocol.read_perm);
  83.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_protocol.write_perm);
  84.     BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(&hids_init_obj.security_mode_ctrl_point.read_perm);
  85.     BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&hids_init_obj.security_mode_ctrl_point.write_perm);

  86.     err_code = ble_hids_init(&m_hids, &hids_init_obj);
  87.     APP_ERROR_CHECK(err_code);
  88. }
复制代码
接着我参考了HID 键盘的例子里输出报告的事件处理函数(p_evt->evt_type == BLE_HIDS_EVT_REP_CHAR_WRITE)来接收HID的输出报告

  1. static void on_hids_evt(ble_hids_t * p_hids, ble_hids_evt_t *p_evt)
  2. {
  3.     switch (p_evt->evt_type)
  4.     {
  5.         case BLE_HIDS_EVT_BOOT_MODE_ENTERED:
  6.             m_in_boot_mode = true;
  7.             break;

  8.         case BLE_HIDS_EVT_REPORT_MODE_ENTERED:
  9.             m_in_boot_mode = false;
  10.             break;
  11.         case BLE_HIDS_EVT_REP_CHAR_WRITE:
  12.             on_hid_rep_char_write(p_evt);
  13.             break;
  14.             
  15.         case BLE_HIDS_EVT_NOTIF_ENABLED:
  16.         {
  17.             if (m_in_boot_mode)
  18.             {
  19.                 // Protocol mode is Boot Protocol mode.
  20.                 if (
  21.                     p_evt->params.notification.char_id.uuid
  22.                     ==
  23.                     BLE_UUID_BOOT_MOUSE_INPUT_REPORT_CHAR
  24.                    )
  25.                 {
  26.                     // The notification of boot mouse input report has been enabled.
  27.                     // Save the system attribute (CCCD) information into the flash.
  28.                     uint32_t err_code;
  29.                     
  30.                     err_code = ble_bondmngr_sys_attr_store();
  31.                     if (err_code != NRF_ERROR_INVALID_STATE)
  32.                     {
  33.                         APP_ERROR_CHECK(err_code);
  34.                     }
  35.                     else
  36.                     {
  37.                         // The bondmanager did not write the system attributes to the flash because
  38.                         // the connected master is not a new master. The system attributes
  39.                         // will only be written to flash only when disconnected from this master.
  40.                         // Do nothing now.
  41.                     }
  42.                 }
  43.                 else
  44.                 {
  45.                     // Do nothing
  46.                 }
  47.             }
  48.             else if (
  49.                      (p_evt->params.notification.char_id.rep_index == INPUT_REP_MOVEMENT_INDEX)
  50.                      &&
  51.                      (p_evt->params.notification.char_id.rep_type == BLE_HIDS_REP_TYPE_INPUT)
  52.                     )
  53.             {
  54.                 // The protocol mode is Report Protocol mode. And the CCCD for the report ID
  55.                 // INPUT_REP_MOVEMENT_INDEX is changed. Since this application uses this report to
  56.                 // send mouse movements, it is now time to store all the CCCD information (system
  57.                 // attributes) into the flash.
  58.                 uint32_t err_code;
  59.                
  60.                 err_code = ble_bondmngr_sys_attr_store();
  61.                 if (err_code != NRF_ERROR_INVALID_STATE)
  62.                 {
  63.                     APP_ERROR_CHECK(err_code);
  64.                 }
  65.                 else
  66.                 {
  67.                     // The bondmanager did not write the system attributes to the flash because
  68.                     // the connected master is not a new master. The system attributes
  69.                     // will only be written to flash only when disconnected from this master.
  70.                     // Do nothing now.
  71.                 }               
  72.             }
  73.             else
  74.             {
  75.                 // The notification of the report that was enabled by the master is not interesting to this
  76.                 // application. So do nothing.
  77.             }
  78.             break;
  79.         }
  80.                     
  81.         default:
  82.             break;
  83.     }
  84. }
复制代码
在static void on_hid_rep_char_write(ble_hids_evt_t *p_evt) 这个函数里接收输出报告。

然后参考了鼠标按键事件处理,按键的事件处理函数最终调用了sd_ble_gatts_hvx这个SVC函数来发送HID输入报告。那么我要透过HID发送的数据包应该也是一样的。

请问还有什么细节要注意?这样对不对。?如果用HID是不是上位机程序开发起来会比较容易。用BUS HOUND软件能不能直接调试?

出0入0汤圆

发表于 2013-7-24 15:07:20 | 显示全部楼层
有哪位能指教一下电流并联监测器是如何准确测出功耗的?

出0入0汤圆

发表于 2013-7-24 17:16:00 | 显示全部楼层
我要预定

出0入0汤圆

发表于 2013-7-25 08:58:04 | 显示全部楼层
晕 下架了

出0入0汤圆

发表于 2013-7-25 14:46:59 | 显示全部楼层
lrzxc 发表于 2013-7-14 23:21
楼主给的截图看,只考虑了驱动芯片的供电电压和电流,那么震动电机的功率也是不容忽视的 ...

说的不错的 电流的启动不小的 70-80ma的电流

出0入0汤圆

 楼主| 发表于 2013-7-26 00:06:43 | 显示全部楼层
zfshenghua2012 发表于 2013-7-25 08:58
晕 下架了

是的,第一批已经售完。

出0入0汤圆

发表于 2013-7-26 22:55:54 | 显示全部楼层
几天没来看帖子,没想到进度很快嘛,都是好消息

出0入0汤圆

 楼主| 发表于 2013-8-2 05:46:59 | 显示全部楼层
几天没有冒泡了,发下近期进度:

2013年8月1日,Jlink连接、供电、LED部分测试完成。今天用了一个下午的时间,牺牲掉三块板子,最后终于可以正常调试了。成果可以看视频:http://v.youku.com/v_show/id_XNTkwNDY4ODU2.html 另外,还发了一个简单的闪灯教程:http://overheat.farbox.com/post/2013-08-01 调试过程可畏坑多路少啊。首先,Jlink出来的是3V,需要改成5V,这块电路要修改保证大家拿到板子直接能用。之后,Jlink的第一脚没有电压是无法识别器件的,这个问题上研究了好久。最让人郁闷的是,PCB好像制造过程中有点问题,LED0和LED1有点短路(不是每块都这样)。

2013年7月31日,今天被顺丰涮了一下。我的邮件本来昨天晚上就到我们临市了,今天早上肯定能送到。是一整箱的电容、电阻、电感等器件。今天早上起来一看,居然发往另一个省的省会了,赶紧打电话,原来是发错了。之后投诉,态度还好,上午回复我:明天上午到,邮费免了。还好有个好消息,我预定的1K的nRF51822今天发出了。** **另外,8月10号腾讯联合小米在深圳举办马拉松,我准备用nRF51822-AK为原型去参加比赛,现在招募队员。对单片机编程,iOS编程有经验的优先!

2013年7月30日,今日无事。感谢“25839115”答应帮我焊接。PCB和贴片厂商今天打电话确认完毕,是给日本代工的一家企业,做汽车电路板代工的,质量控制很好。等样板焊接完,测试通过就可以正式批量生产了。 另外,8月10号腾讯联合小米在深圳举办马拉松,我准备用nRF51822-AK为原型去参加比赛,参赛项目目前我想到一个没有太大创意的智能卡片(放钱包里的),有兴趣的一起组队!

2013年7月29日,焊锡膏到了,开始焊接。今天天气真闷热!拿着烙铁,对着QFN封装和0402的阻容开始焊接。成果请看:http://overheat.farbox.com/post/2013-07-29

2013年7月28日,进度有些延迟。非常抱歉,刚才看了一眼进度,由于PCB和物料供应的原因,进度有些延迟。因为一些正规的代理都有货期和签订购买合同的因素,导致采购速度较慢。目前,主要芯片全部是从官网指定代理商处购买,阻容感都是国内一线品牌,高频电容使用村田,高频电感使用TDK(以后批量准备用村田)。

2013年7月27日,微型马达到货。购买的村田高频电容、TDK电感在路上。。。

2013年7月26日,PCB到了!http://overheat.farbox.com/post/2013-07-26

出0入0汤圆

 楼主| 发表于 2013-8-2 05:49:25 | 显示全部楼层
由于一些原因,进度有点拖延。感谢开始支持我的朋友,我会加快速度,争取在两周内发货。

这个周末,我会把预定金提高到50元,但是价格不变。

两周后,正式出售,价格会提高30元。

出0入0汤圆

发表于 2013-8-2 08:09:01 | 显示全部楼层
我要预订

出0入0汤圆

 楼主| 发表于 2013-8-3 09:31:44 | 显示全部楼层
今晚能上焊接好的样板图片,我现在正在努力调试各种软件。先预告一下~~~

出0入0汤圆

 楼主| 发表于 2013-8-3 22:35:36 来自手机 | 显示全部楼层
样板完成,请看
http://www.amobbs.com/forum.php?mod=viewthread&tid=5545197&mobile=yes

下周四会飞深圳,找工厂生产。通过测试后发货。

出0入0汤圆

 楼主| 发表于 2013-8-4 18:57:08 | 显示全部楼层
本帖最后由 overheat 于 2013-8-4 19:04 编辑

v1.0正式版修改完成,修改了十几处错误和不便的地方。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-8-4 19:31:19 | 显示全部楼层
已经预定。
请问我们收到的PCBA是什么版本的,v1.0正式版?

出0入0汤圆

 楼主| 发表于 2013-8-4 21:23:02 | 显示全部楼层
gardensu 发表于 2013-8-4 19:31
已经预定。
请问我们收到的PCBA是什么版本的,v1.0正式版?

是的,发给大家的一定是正式版的!

出0入0汤圆

发表于 2013-8-4 21:34:40 | 显示全部楼层
穿戴 无法与蓝牙比呀

出0入0汤圆

发表于 2013-8-6 15:08:11 | 显示全部楼层
持续期待楼主的AK

出0入0汤圆

 楼主| 发表于 2013-8-6 20:34:03 | 显示全部楼层
on_the_way_li 发表于 2013-8-6 15:08
持续期待楼主的AK

已经接受预定了,这周末是最后预定期限(因为涉及到工厂下单数量)。过了这个周末就要上涨到128了。

出0入0汤圆

发表于 2013-8-6 20:42:01 | 显示全部楼层
overheat 发表于 2013-8-2 05:46
几天没有冒泡了,发下近期进度:

2013年8月1日,Jlink连接、供电、LED部分测试完成。今天用了一个下午的时 ...

请问板子30多块是哪里打的?

出0入0汤圆

发表于 2013-8-6 20:44:12 | 显示全部楼层
overheat 发表于 2013-8-4 18:57
v1.0正式版修改完成,修改了十几处错误和不便的地方。

SWD接口建议改一下,VCC和GND不要对称放置,否则不小心接反了芯片就OVER了。建议VCC,GND,SWDIO,SWDCK

出0入0汤圆

 楼主| 发表于 2013-8-6 20:49:19 | 显示全部楼层
SNOOKER 发表于 2013-8-6 20:42
请问板子30多块是哪里打的?

就是阿莫这里。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 23:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表