查看:
62807
回复: 144 |
参赛作品《J-LINK无线仿真器》
|
|||
|
发表于2018-05-20 12:59:26
|
只看该作者
1#
电梯直达
【报名阶段需要填写的内容】 1. 参赛者姓名(必填项): 酒天聊 2. 单位或学校名称(选填项): 深圳云迪尔 3. 当前职务或职称(选填项): 游动工程师 4. 参赛作品的名字(必填项): J-LINK无线仿真器 5. 简要陈述您的idea和作品(必填项): 作为一名软硬件工程师,经常需要编写代码并烧录到单片机上进行实时仿真,这时候我们都会用到J-LINK或者ST-LINK等仿真器。市面上的这些仿真器都是有线方式,在调试过程中偶尔会遇到如下情况: 6. 拟用到的立创商城在售物料(必填项): a.LPC11U14或者STM32F103C8T6吧,便宜,而且都带USB接口; 7. 拟用到的非立创商城物料或其它补充(必填项): 暂时不需要,实际操作中想到了再添加。 8. 拟用到的EDA工具软件名称(必填项): 不熟悉立创的EDA工具,还是用熟悉的AD9吧。 【作品正式发表(报名成功后进入设计阶段)需要填写的内容】 一、作品简介 例如,可以包括但不局限于以下内容: 1.作品的整机外观图片或焊接组装好的PCBA图片; 背面图 正面图 2.作品的研究背景、目的和功能、市场应用前景; 项目初衷是打算在SEGGER公司的JLINK上做无线仿真器,但是随着项目的开展进行,发现参赛时间仓促,无法继续进行,进而转向开源的CMSIS-DAP。CMSIS-DAP是ARM公司推出的面向ARM Cortex系列MCU的开源免费调试器,它可以同时兼容SWD和JTAG方式调试,目前已经被Keil MDK,IAR EWARM等IDE支持,市面上很多主流的MCU,例如STM32,NXP LPC,Freescale等,均完美支持。市场上用CMSIS-DAP做有线仿真器的已经很多,淘宝上都可以买得到,但是用做无线仿真器的基本上没有,毕竟做起来还是有些难度。本作品基于官方CMSIS-DAP开源代码,采用nRF24L01 无线2.4G芯片尝试做无线仿真调试器,实现一定距离内的设备无线方式的在线调试仿真。 3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现? 本作品最大的创新点是将传统有线方式的仿真器扩展为无线方式,由此可以实现无线下载,设备仿真,特别是对于有强电,强干扰的环境,或者有线距离方式无法延伸的环境。 二、系统构架图 用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。 三、硬件部分的描述 1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的; 原理图一共有2份,LPC11U37跟STM32F103C8t6,其中LPC11U37已经调试通过,其如下:
同时也给出STM32F103C8T6的原理图:
连片PCB实物图:
正面 背面 备注: LPC11U37与STM32F103C8T6均连带LPC1114小板(后续拟接收端用LPC1114进行调试)。 连片调试图,千辛万苦,应该不要忘记连片调试的样子:
切割后的成品实物图: 2.4G模块采用的是成都亿百特的E01-ML01S 模块,后续即将更换成E01-ML01SP2模块, 效果图如下: E01-ML01S 模块(不带PA) E01-ML01SP2(LA+LNA)
2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。 先贴一张工作状态图,配合该图来讲解:
节点A为发射端,节点B为接收端,节点A程序含有USB+CMSIS-DAP +RF功能,节点B程序含有CMSIS-DAP执行功能,仿真设备为仿真目标,这里已STM32F103C8T6板子举例。节点A供电取至PC电脑,节点B供电我取至华为荣耀盒子。 系统工作过程: 1)节点A通过USB接入PC电脑,并被电脑识别; 2)IDE软件选择CMSIS-DAP仿真,并执行仿真,此时IDE软件将HID数据发送至节点A,节点A收到数据后,通过2.4G无线方式打包,一次性传输96字节到节点B(网上找的代码都是32字节,我的是96字节,具体请详细阅读nRF24L01手册,你也可以实现的),并配置为接收状态; 3)节点B收到数据后,解析,并执行CMSIS-DAP的SWD代码,对仿真设备进行数据读取或者写入; 4)节点B将处理数据通过2.4G返回给节点A,并立即配置为接收状态; 5)节点A将数据回传给IDE; 6)如此反复执行。 3.注明所用到的EDA工具软件名称并附上设计链接。 本次设计使用的是AD9软件进行画图。 四、材料清单(BOM列表) 列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。 如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。 1) LPC11U37FBD64/501 连接:https://item.szlcsc.com/196360.html 2) STM32F103C8T6 连接:https://item.szlcsc.com/9243.html 3) 2.4G模块E01-ML01S 连接:https://item.szlcsc.com/109765.html 4) MIC5219-3.3V稳压芯片 连接:https://item.szlcsc.com/30367.html 五、软件部分的描述(选填) 如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。 (请大家留下邮箱,我会逐个发给大家资料,资料包括源码、PCB、原理图,代码编译环境是IAR,原理图是AD9画的) 工作流程:
nRF24L01关键点讲解: 英文手册:nRF24L01_en.pdf 芯片发送与接收模式的配置,均需要延迟130us,等到PLL的启动过程:
nRF24L01接收方式比较简单,这里采用查询方式进行读取数据,不用中断方式: unsigned int RfGetDataFromTxFIFO(void) { unsigned int DataCount = 0; unsigned int Size; while(1) { if(NrfGetFifoStatus() & RX_FIFO_EMPTY) return DataCount; //RF24L_CE_L(); StartGardTxTimer(RAND_GARD_TIME); RfRxBuffer.Start = 0; RfRxBuffer.End = NrfGetRxSize(); DataCount += RfRxBuffer.End; NrfReadFifo(RfRxBuffer.Data,RfRxBuffer.End); NrfClearInt(RX_DR); /*反馈给用户*/ RfGetData(RfRxBuffer.Data,RfRxBuffer.End); //RF24L_CE_H(); } }中断的处理时针对发送模式,注意“It is important never to keep the nRF24L01+ in TX mode for more than 4ms at a time.”,单次发送数据,先写入FIFO TX数据,数据最大可以写入96字节,写入完成后,将芯片从Standby 1切入TX模式,即可实现数据的传输:
void StartTx(void) { RF24L_CE_L(); NrfMode(TX_MODE); NrfClearInt(MAX_RT | TX_DS); NrfUnmaskInt(MAX_RT | TX_DS); RF24L_CE_H(); //for(volatile unsigned char j = NRF_TX_PULSE_DLY; j; j--); delay32Us(130); if(NrfGetFifoStatus() & TX_FIFO_EMPTY){/*已经发送完数据,此时应该回到模式1*/ RF24L_CE_L(); } } 写入FOFI TX参考代码: void RfPutDataToTxFIFO(void) { unsigned int Size; unsigned int DataSize = 0; while(((NrfGetFifoStatus() & TX_FIFO_FULL) == 0) && (gRF_TxBuf.End != gRF_TxBuf.Start)){/*填充,直到FIFO缓冲区已满*/ DataSize = gRF_TxBuf.End - gRF_TxBuf.Start; Size = MIN(32, DataSize); NrfWriteFifo(gRF_TxBuf.Data+gRF_TxBuf.Start ,Size); gRF_TxBuf.Start += Size; } } nRF24L01切换到TX或RX需要130us,这时候如果处于RX模式,芯片方才开始接收检测空中数据!! 六、作品演示 请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得10分,具体详见活动规则。 1.2Mbps速率,0dBm,近距离下,使用CoFlash烧录,然后用IAR直接仿真; https://v.qq.com/x/page/j0751wuk36n.html 2.2米外演示,nRF24L01丢包大(2Mbps速率,0dBm,),估测与无线模块的板载天线有关系,更换外接天线应该会更好,或者用“leiyitan”网友的方案,他有提到“用蓝牙3.0spp协议做一个,100米距离,115200波特率全双工对发都不会有丝毫压力,这一点速度比24xx快多了,3.0的蓝牙如果再加PA,可以搞一两百米左右。”也给大家参考下丢包的视频,失败是成功之母,让想做无线仿真器的朋友少走弯路: https://v.qq.com/x/page/p0751ounrbl.html 3.速率调整为250kbps,测试3米远距离,烧录,仿真无压力,但是烧录速度明显比2Mbps速率慢。改天再测试下7米距离。
七、总结 例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。 1.这作品前后竟然花了1个多月,且都是挤出业余时间来实现,打样板做了两次,至此方才实现无线仿真,但是不知真正意义上的JLINK,作品现在是用CMSIS-DAP来实现的,这是一点遗憾!!! 2.至今采用的2.4G模块未带PA,缺点是距离不够,丢包率大,现已下单购买带PA的nRF24L01+模块,预计替换后距离跟体验会上一个台阶。 3.作品结尾,对于做JLINK有了思路,而且比较清晰,但是临近作品结题了,已经没有时间在开展,等着下次吧。 4.这个作品最大的亮点是提出并初步实现了无线仿真,展望未来远距离调试产品,隔墙在线仿真等调试手段将不再是梦。 5.最后感谢立创商城给予这次活动机会,祝愿立创商城越办越好,下一届电子制作节奖金越来越高~~~~~~~~ |
|||
|
发表于2018-05-21 13:56:36
|
只看该作者
2#
您好,您的参赛帖子发布重复了,请删除其中一个帖子
|
|||
|
发表于2018-05-21 15:26:58
|
只看该作者
3#
已处理
|
|||
|
发表于2018-05-21 18:15:13
|
只看该作者
4#
恭喜您已经报名成功! 同时,您设计的PCBA板或者模块也可以参与立创商城的第二期PCB方案验证板活动(相当于“搭顺风车”),详情请看:http://club.szlcsc.com/article/details_11599_1.html |
|||
|
发表于2018-05-22 09:09:23
|
只看该作者
5#
|
|||
|
发表于2018-05-25 18:05:10
|
只看该作者
6#
|
|||
|
发表于2018-05-25 18:07:12
|
只看该作者
7#
已经转发,管理员可以让立创君在朋友圈中查看核实
|
|||
|
发表于2018-05-28 09:32:37
|
只看该作者
8#
恭喜您传播成功,获得3分。当前所有参赛选手分值统计表及活动详细介绍见:http://club.szlcsc.com/article/details_12591_1.html
|
|||
|
发表于2018-06-09 18:55:47
|
只看该作者
9#
提个建议:无线仿真比较难, 有这样需求的,都是用无线串口ISP和打印Log出来看。
|
|||
|
发表于2018-06-09 22:24:05
|
只看该作者
10#
您好,我想问一下成功报名的条件是什么
|
|||
|
发表于2018-06-11 08:58:16
|
只看该作者
11#
|
|||
|
发表于2018-06-15 11:36:40
|
只看该作者
12#
板子里面集成了ISP功能,便于仿真时候顺便用上串口功能打印,初步认为选择高速芯片是关键吧,最终看效果了,我也不确认是否完美
|
|||
|
发表于2018-06-20 08:57:29
|
只看该作者
13#
经过几周斟酌,总算出了原理图,第一版打样也回来了,顺便查了下淘宝,竟然没查到产品,窃喜,估计我这版本出了就有很多这样的商品摆在上面了。为了原创,为了鼻祖称号,为了奖金,今天焊板调试,开始捣鼓
|
|||
|
发表于2018-06-20 23:29:14
|
只看该作者
14#
网上有开源的,但是配置过程复杂。淘宝上没有有两种情况,一种是不乐于做这样的东西,而你这个应该属于第二种:难度太大,尤其是对待每个客户的不同电脑下都操作方便。
|
|||
|
发表于2018-06-21 13:44:02
|
只看该作者
15#
跟你说的一样,网上仿真器很多也是开源的,比如小新网站上有CMSIS-DAP全套资料,除了J-LINK特殊。 附件: 小新资料: 原版大神资料: |
|||
|
发表于2018-07-02 09:17:57
|
只看该作者
16#
发现好多都是来下载资料的,都知道我这人喜欢开源分享是吧,后面还有重磅的
|
|||
|
发表于2018-07-02 09:34:11
|
只看该作者
17#
半个月都是想把J-LINK仿真信号通过无线传输进行通讯,尝试了均是失败告终!!另选方案了............ 昨天把keil的CMSIS-DAP移植到了IAR上,去掉了CMSIS-DAP-master好多代码,调试仿真,电脑可以识别了,喜人!!但还一些BUG,不过至少是可以识别了,接下来的路会好走一些。 |
|||
|
发表于2018-07-14 20:20:09
|
只看该作者
18#
已经把CMSIS-DAP移植到了IAR,IAR是可以识别下载了,下一步就是优化速度的问题:
移植修改过程中,发现技小新官网的源码好难整合到IAR上,屏蔽CDC宏定义,立马出现多处错误,果断不要该版本,转向了ARM公司的源码版本,最终可以下载仿真了 |
|||
|
发表于2018-07-15 13:30:00
|
只看该作者
19#
去年的时候我也有这个念头做这个无线jlink,但一直没有抽出时间去做。做这个东西估计关键是在无线传输那块,如果使用2.4G进行传输,目前我找到的模块最快只是4M左右。持续关注持续关注
|
|||
|
发表于2018-07-17 12:47:11
|
只看该作者
20#
我选用的这款2.4G是立创上的,空中速率为2MHz
|
|||
|
发表于2018-07-17 12:57:34
|
只看该作者
21#
转一个大牛博客吧http://www.51hei.com/stm32/3655.html 这位是用X893的设计基础上重新设计了STM32F103 CMSIS-DAP调试器,其他同行关注的是成功,只有他道出了应用上的问题:这版本主要问题是串口可以识别,但是无法使用!!我直接烧录了技小新的HEX文件、X893的HEX文件,都是一样,串口问题没有解决。源码里面仿真,发现CMSIS-DAP可以正常通讯,但是CDC虚拟出来的串口愣是无法进入函数,USBStack代码量大,而且时间仓促,不敢深入更改,后续我会补上IAR的那调试版本。 现在转向LPC11Uxx方向,LPC11Uxx有几款内置USB ROM,性能比较稳定,而且开发起来简单,价格较STM32F103C8T6贵5块钱,可以接受,板子已经打烊回来,上面附带了STM32F103C8T6连片,做完LPC11Uxx后可以单独调试STM32,不拿下STM32心不死!! |
|||
|
发表于2018-07-18 18:25:38
|
只看该作者
22#
今天必须公布下,CMSIS-DAP调试成功,速度还可以!!接着是整无线2.4G这一块,思路已经非常清晰了,就看效果了
|
|||
|
发表于2018-07-20 23:30:11
|
只看该作者
23#
这个做好了没有??
|
|||
|
发表于2018-07-22 08:07:45
|
只看该作者
24#
非常期待您的这个作品
|
|||
|
发表于2018-07-23 08:36:34
|
只看该作者
25#
昨天已经弄完2.4G无线芯片,这周即将编写仿真代码到无线接收端,如果调试成功,就算完成了
|
|||
|
发表于2018-07-23 11:06:19
|
只看该作者
26#
楼主加了个油,我也做个几个DAP,不敢深入改动,水性不好
|
|||
|
发表于2018-07-24 08:33:05
|
只看该作者
27#
我有一个方案,支持所有的USB仿真器
|
|||
|
发表于2018-07-25 09:10:55
|
只看该作者
28#
SEGGER的仿真协议是有公布,也可以对其进行开发,但是这涉及到专利问题,现在开源的就只有CMSIS-DAP,实现无线仿真方案也不难,是在HID命令那里做文章,收到HID命令,则通过2.4G无线传输到接收板解析执行,然后返回结果给发送板。给大家一份SEGGER的协议,有兴趣的,且有时间的可以玩玩: SEGGER协议里面已经说明很清楚了,有空可以看下。 |
|||
|
发表于2018-07-25 09:13:09
|
只看该作者
29#
仿真代码已经写好,一边写代码,一边陪两个小孩玩,不知道代码是否有缺陷,只有真正仿真才能知道了,今晚加加班,仿真看看效果
|
|||
|
发表于2018-07-25 09:19:49
|
只看该作者
30#
CMSIS-DAP配合CoFlash进行下载,那速度可以跟JLINK V8有得一比 |
|||
|
发表于2018-07-26 21:59:50
|
只看该作者
31#
看大家对调试器这么热衷,光参赛相关的作品就有4,5个。 也就楼主是毅力最好的,加油!!! PS(实在忍不住,自己也想做一个,可惜错过了报名。。。) |
|||
|
发表于2018-07-29 07:52:03
|
只看该作者
32#
我烧录器都是自己做,有些干脆集成到板子上,烧录器天天时时刻刻都在用!非常期待楼主的这个东西
|
|||
|
发表于2018-07-30 09:39:03
|
只看该作者
33#
楼主,记得在1楼编辑更新哟
|
|||
|
发表于2018-07-30 13:31:40
|
只看该作者
34#
因为要兼顾USB转串口的实时性,因此编写的代码必须兼顾仿真器+串口功能,现在调试成功的2.4G无线通讯是实时,不管有没有仿真指令,发送、接收双方都是实时传递信息:发送方发送信息,发送成功后(有ACK回复),立即进入接收状态(130us时间),接收方接收到数据后,立即切换到发送状态(130us)并解析收到的数据(如果有仿真数据,则递交给仿真函数,如果有串口数据,则递交给串口中断函数),执行完成后,将数据结果发送回发送方方,如此反复循环。 调试中发现,发送方从接收模式转回发送模式时,最小必须延迟700us,等待空中数据。而接收方从发送模式转为接收模式,延迟100us即可,今晚希望工作偷闲编写的代码可以一次性成功! |
|||
|
发表于2018-07-30 22:11:07
|
只看该作者
35#
从晚上20点调试到22点,数据卡在了无线收发上,看来短时间内兼顾串口是有点急于求成了,明天改一个版本,先去掉串口功能,仿真通了以后再加入串口! 洗澡时候突发一个想法,果断测试,发现是可行的,明天希望能够有惊喜!! |
|||
|
发表于2018-07-31 11:23:51
|
只看该作者
36#
|
|||
|
发表于2018-08-04 07:55:30
|
只看该作者
37#
持续关注中!
|
|||
|
发表于2018-08-04 13:46:02
|
只看该作者
38#
喜讯!!
|
|||
|
发表于2018-08-04 14:13:06
|
只看该作者
39#
硬件描述:板子分为A板跟B板,均代2.4G无线NRF24L01,两者通过无线进行通讯,正常情况下两者均处于RX状态,A板通过USB接入电脑,B板通过SWD连接STM32F103调试小板; 罗列成果: 1.折腾了几天,今天上午终于把2.4G无线通讯驱动调试完成! 调试速度慢,我参考了所有网上的2.4G代码,包括NRF24L01官方的代码,都是清一色的写入32字节后马上发送,这部分都是容易成功,之前说调试成功2.4G也是基于该成果。但是这样的速度慢些,多数据包发送之间需要130us延迟,3个数据包就有1ms延迟,不容接受!!!!!看官方资料,FIFO TX栈一共有3个,FIFO RX也是有3个栈,手册说得很清楚,发送状态下,如果FIFO TX不为空,且CE=1,那么芯片会自动发送下一个栈数据,直到FIFO TX = EMPTY。今天上午基于该点调试完成了动态包,每次发送模式下,写入FIFO TX数据可以为1~96字节,然后一个CE=1搞定发送完成,速度比单包发送快了2倍,值了!! 2.使用COOCOX下载程序,无线状态下成功了:
看到这进度条,心理真舒服!! 3.IAR下下载程序慢,我的版本是IAR for ARM 6.70.3,CMSIS-DAP不尽人意,没办法,只能先用COOCOX下载程序到目标板,然后用IAR的 Debug without downloading功能,没想到竟然也可以仿真了!! 目标仿真的程序是用STM32F103那板子 |
|||
|
发表于2018-08-04 14:24:34
|
只看该作者
40#
|
|||
|
发表于2018-08-04 15:00:53
|
只看该作者
41#
现在IAR for arm 6.70.3仿真慢估计跟两方面有关: 1.RF传输速度,由于允许ACK应答,NRF24L01内部自动切换到应答响应,速度就忙了,下一步看看怎么优化它; 2.采用原版CMSIS-DAP代码,只修改了IO口,因此这部分也是有问题的,硬件预留了快速读写接口,因此这部分预计也可以优化。 //----------------------------------------------------------- 果断安装IAR for arm 8.22, |
|||
|
发表于2018-08-04 15:10:59
|
只看该作者
42#
硬件连接图如下(仿真LPC1114的图),正式发布后再提供原理图等资料,我喜欢开源立创项目
|
|||
|
发表于2018-08-04 16:20:48
|
只看该作者
43#
安装了IAR for arm 7.5 (8.22的太差劲了,卸载不用行不!!),尝试了几次,问题还是有的,有的时候可以正常下载,并仿真,有的时候不能识别设备,关键点应该是出在2.4G上面,估计有丢包,明天再折腾!!今天还是有成果的
|
|||
|
发表于2018-08-06 14:29:11
|
只看该作者
44#
楼主,请直接在1楼编辑更新哟
|
|||
|
发表于2018-08-06 16:35:37
|
只看该作者
45#
楼主,咱们这次制作节设计截止时间是2018年8月20日23时59分59秒,时间有点紧了,记得及时在1楼编辑更新!冲刺20000元大奖!(注:超时更新无效)
|
|||
|
发表于2018-08-07 05:35:44
|
只看该作者
46#
大家快来帮楼主顶上去,每天都要来观望一下楼主的项目。我想用蓝牙3.0spp协议做一个,100米距离,115200波特率全双工对发都不会有丝毫压力,这一点速度比24xx快多了,3.0的蓝牙如果再加PA,可以搞一两百米左右。
|
|||
|
发表于2018-08-07 08:31:57
|
只看该作者
47#
初步版本已经调通,但是丢帧厉害,这几天还想搞搞2.4G优化的事情,思路也已经有了,但是缺少的是时间。晚上先更新1楼内容,优化的事情而后考虑。 用蓝牙的,如果波特率是115200,而且延迟少,双向,那是可以做的。我用过蓝牙4.0模块,默认波特率是9600,但是一次只能传输20字节,而且多包发送还得延迟等待,跟2.4G不能比。2.4G可以写满FIFO TX,最大是96字节,用64字节传输DAP仿真数据,32字节传输UART数据,如果时刻保持空中双向互传,那么理论上是可以做到仿真+串口同时进行。 |
|||
|
发表于2018-08-07 13:36:08
|
只看该作者
48#
建议收发各用一个 Radio,做 FDD。
|
|||
|
发表于2018-08-07 16:03:24
|
只看该作者
49#
无线很容易丢帧的,所以最好上tcp协议,但是上了tcp协议,就传输速度就厉害了。还有一种做法就是做fifo,就是tcp+fifo,否则想实现你的功能,挺困难的。tcp解决数据传输可能错误的问题。fifo解决丢帧导致的时序不一致问题。简而言之无线仿真困难众多
|
|||
|
发表于2018-08-07 16:09:00
|
只看该作者
50#
单片机需要有屏蔽罩子,而且需要控制单片机频率,单片机可能对无线通讯有干扰,整个无线通讯并不是这么容易搞定的啊 |
|||
|
发表于2018-08-07 21:05:28
|
只看该作者
51#
改了程序,终于可以使用了,是接收板硬件复位的问题
|
|