查看:
63387
回复: 144 |
参赛作品《J-LINK无线仿真器》
|
|||
小梁电子
2
主题
118
回复 |
发表于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.最后感谢立创商城给予这次活动机会,祝愿立创商城越办越好,下一届电子制作节奖金越来越高~~~~~~~~ |
|||
youfishno
0
主题
15
回复 |
发表于2018-08-24 08:34:04
|
显示全部楼层
111#
感谢楼主,我的邮箱是53582668@qq.com,希望楼主能发我一份,学习学习。 另外,不知道后面楼主有没有打算做这个产品卖?有的话,请告知一下,谢谢! |
|||
youfishno
0
主题
15
回复 |
发表于2018-08-25 21:50:35
|
显示全部楼层
122#
谢谢!
|
|