亿加合和智能车制作

标题: 正在学K60,说说我碰到的问题 [打印本页]

作者: Okabe    时间: 2014-10-21 00:00
标题: 正在学K60,说说我碰到的问题
本帖最后由 Okabe 于 2014-10-21 00:09 编辑

    作为新手,碰到了不少纠结的问题,由于解决的过程颇为辛酸,所以想记录一下作为纪念,也顺便给以后的初学者作参考。
    记得第一天拿到K60核心板和JLink的时候,颇为兴奋,觉得从51迈入ARM,从8位跳到32位想必颇为刺激。然后作严肃脸,庄重的拿起板子接上转接板和Jlink,接通PC,结果“惊喜”地发现K60板上电源指示灯不亮。接下来就是反复地调整插拔的位置,但是依然无效!后来用万用表测了一下,发现对应的脚(1号脚)没有输出电压,于是板子的USB口接上外接电源,这次终于能用了。但是用了一会儿发现电源指示灯不稳定,摇了几下,原来供电的USB线接触不良。这可不好,容易出事,然后琢磨着能不能让JLink给板子供电,应该能做到,因为我看到别人和我一样也是用Segger的Jlink V8,而别人的可以,我的就是不行,这可不科学。网上搜了一下,发现JLink默认不对外供电,想供电需要改装。于是果断拆开盖子观察,发现确实有一个3脚的排针,而短路帽就短接在NC端。顿时又兴奋起来,马上把短路帽揪起来接到3.3V端。但是当我把Jlink的1脚和GND接到K60上时,还是不会亮。纳闷了一会儿,我用万用表测了一下,发现3脚排针的中间脚是接在Jlink的2脚上的,也就是说现在2脚接在3.3V上,再测电压,果然如此,再把2脚往板上接,灯亮了。但这次我高兴不起来,因为这和别人的不一样。别人的Jlink是1脚直接输出3.3V。此时我也懒得纠结是不是碰到山寨货了,接着琢磨改装线路。刚开始最直接的想法是把1脚和2脚用杜邦线短接,但这想法一冒出来就马上否决了,杜邦线把管脚占用了那排线怎么插,转接板怎么接?但是提到杜邦线我一个激灵,反正转接板效果不好,干脆舍弃,用杜邦线直连!说干就干,我在转接板上测出Jlink和K60板上Jtag口的对应管脚,连上后,灯亮了,但是不能下载程序,更别说仿真了。想想不得其解,就打开JLink的中文说明看,发现这个JLink的1脚是参考电压输入端,不是输出。为了验证这一点,我把外接的3.3V接到1脚,再尝试仿真,确实能行了,看来1脚不能空。然而问题是先前已经发现外接的USB线接触不良,我也不打算换,毕竟拖着一个外接电源确实麻烦,必须把1、2号脚短接,接下来只是怎样短接的问题。最后想的办法是把2脚扩展一下,引出3.3V接到1脚,具体做法是割下一小块洞洞板焊上一组3*2的排针,全部连着一起,相当于把2号脚扩展出了6个引脚。随后我把2脚接到扩展脚上,引出两个分支,一边接3.3V,一边接1脚,这次再调试,发现终于能正常供电和仿真了!(PS:今天发现杜邦线有点乱,而且容易脱落不稳定,还是舍弃了,改用飞线在内部把3.3V和1脚短接,接上排线和转接板连到K60上,也能用,如下图。)
[attach]70845[/attach]

      由于第一天解决了Jlink的问题,所以后面调试程序还是挺顺利的,接下来的几天都没出问题。但是几天前终于出事了。当时我准备弄一个LCD1602的驱动程序,想调试一下引脚的输出电平是否正常,接上LED后,点击仿真,准备看LED的亮灭,可是程序下进去后(注意这里,后面会解释)再准备仿真时出故障了,拔出JLlink在重新插上去,还是不行,反复几次皆如此。然后就傻眼了!总之,噩梦开始了,后来我一点仿真要么提示找不到设备,要么提示芯片被锁。这时Debug Log里说的某个引脚持续低电平引起了我的注意,在网上搜了这个Log里的关键词,试了各种办法,没效果!后来在论坛里看到一位大神说点击下载瞬间按住复位可以解决,然后找了一个野火的例程准备试试看能否下载,结果还真灵了,高兴之余火速回帖感谢那位大神,这里再次感谢这位大神@安安安然。。可惜好景不长,我再次下载先前那个LCD1602的程序准备调试,结果K60又病了。接线那天一直在尝试解决,皆以失败告终。此刻我是真的有些沮丧了,索性放下,准备再找时间弄。
      离开实验室会宿舍后还是不甘心,决定参考一下这个帖子http://www.znczz.com/thread-225970-1-1.html。把帖子贴的附件下载下来看了一下,感觉可能有戏,于是准备明天试试。第二天回实验室试了一下,先用JFlash ARM把K60刷了几下,再用J-Link Commander解锁,完了再试着仿真,终于通了。可是作为战5渣,我犯了极大的二,又去下载那个诡异的程序,然后芯片再次挂,再用先前的办法恢复,又去下载,接着又挂……反复几次,我突然想起大神说的管脚复用的问题,用万用表一测,确实如此,A0到A3都复用为Jtag口,而我的代码里竟然把它们设置成IO口,顿感膝盖中了一箭!重新解锁K60,把修改后的代码烧进去,这次确实没出问题!我以为世界就此安静,但是我错了。
      晚上回寝准备继续弄下程序,结果插上JLink发现出事,状态指示灯不亮!当时真想泪奔了!努力冷静下来后,继续在网上搜解决办法。发现山寨JLink普遍容易出这种问题,这种情况需要给Jlink重新刷固件。然后我就按照教程刷固件,发现我JLink板上的两组排针正好对应教程里的A、B端,执行到准备点击”Write flash"来刷固件是出问题了,就是那个"Write Flash"键一直无效。先前以为是操作问题,反复按教程操作皆无效后,我意识到应该是其他问题。这时我瞄上了驱动的问题,教程里虽然说电脑会自动给JLink装驱动而且不用管,但是事实上系统自动装的驱动确实怪,没有截图习惯所以就不贴图了,只记得那个驱动好像是GPS***Camera之类的,反正和JLink风马牛不相及,去网上搜了一下这个驱动,发现确实有大神说这个驱动不对,需要自己调整,于是我试着手动安装驱动,装好后再试着刷固件,这次起到了立竿见影的效果,一插上JLink那个"write flash"就亮了,然后顺利的刷好固件,再打开J-Link Commander,提示固件升级,选择确定后也顺利升级了,在返回IAR调试,也很顺利!至此终于送了一口气。
      折腾完JLink,继续弄程序,发现了一个奇怪的问题。按野火的3天入门 K60的教程快速建立一个工程模板后,在主函数里添加延时函数后,仿真时会一直卡死在这个函数,进去一看发现是卡死在这里
[attach]70855[/attach]

后来在”LPTMR0_CMR = ms;“前添加”LPTMR0_CSR = 0x00;(在上图顶部)这条语句吧lptmr的CSR寄存器清零后就不会卡了。

可是问题又来了,单步调试时是可以执行完延时函数的,如图
[attach]70860[/attach]
可是一旦全速运行就又卡住了,很奇怪。
与之相比,野火的那个GPIO例程也是会出现延时函数卡死的情况,被我按上述办法修改代码后也不会卡了,而且全速运行也没问题,可是不知为何我的工程就不能全速运行,这个问题僵住好几天了,还请大神赐教!
再提一下,我的程序在仿真时首先进入的不是main函数,而是底层启动函数,如图
[attach]70861[/attach]
这一点,野火的GPIO例程也是这样,很让人疑惑,求指教!
[attach]70862[/attach]
再次求指点,先谢过了!大家晚安!




作者: yandld    时间: 2014-10-21 09:26
支持一下 哈哈,JLINK确实容易出问题,如果你想全面掌握K60,或者想用Keil的话,可以参考这个帖子 http://www.znczz.com/thread-202246-1-1.html

作者: 1200    时间: 2014-10-21 09:33
经验丰富啊
作者: 0818    时间: 2014-10-21 09:45
顿悟啊,原来我用的是山寨中的山寨啊,虽然很早就知道了
作者: Okabe    时间: 2014-10-21 10:00
yandld 发表于 2014-10-21 09:26
支持一下 哈哈,JLINK确实容易出问题,如果你想全面掌握K60,或者想用Keil的话,可以参考这个帖子 http://w ...

非常感谢分享资料!!

作者: Okabe    时间: 2014-10-21 10:04
1200 发表于 2014-10-21 09:33
经验丰富啊

言重了,算不上丰富,对芯片接触的时间并不长,编程的经验也很欠缺,像帖子最后贴出的问题,到现在还是一头 雾水,有点郁闷啊!


作者: Okabe    时间: 2014-10-21 10:05
0818 发表于 2014-10-21 09:45
顿悟啊,原来我用的是山寨中的山寨啊,虽然很早就知道了

嘿嘿,毕竟天朝特色,大家都懂,能用就行了,哈哈!

作者: wijop    时间: 2014-10-21 12:22
好强大
作者: 纯洁@麻花    时间: 2014-10-21 12:23
都是老司机
作者: 【征程】    时间: 2014-10-21 12:51

作者: 0818    时间: 2014-10-21 13:01
Okabe 发表于 2014-10-21 10:05
嘿嘿,毕竟天朝特色,大家都懂,能用就行了,哈哈!

不过天朝品质确实在经济上减少了我的负担,便宜是便宜

作者: Roy..    时间: 2014-10-21 14:29
我的帖子上电视了
作者: Okabe    时间: 2014-10-21 18:30
关于一楼后面的程序问题,经大神指点已经解决。
首先是仿真入口的问题,如果想在仿真一开始指向main,需要作设置,具体做法是在工程选项里打开Debugger,勾选“Run to",下面的文本框里已经设置成”main"了,此时再仿真即可直接指向main.
然后是程序卡死的问题,这其实不是卡死,只是每次点击break就停在那个while循环处让我误以为是卡死,具体原因不明,不过由于并不影响程序运行,所以可以设想成是一个类似于固有机制的东西,也就是说在执行延时函数的时候,一旦点击break,就会停在图中的while循环处。
最后就是为什么野火的例程能跑起来,我的“不行”,其实原因很简单——程序写错了╮(╯▽╰)╭
在我贴的图片里,大家可以看到我其实漏掉了一个延时语句,这导致的后果就是延时不够,从而使对应管脚的电平跳变很快,那么接在该管脚上的LED自然也就不会像我预想的那样闪烁起来。
结论:太年轻,编程水平太浅薄,还需锤炼
作者: ~狂拽小棋~/衰    时间: 2014-10-22 10:27
不错了,自己遇到问题,自己找资料解决,进步大
作者: Okabe    时间: 2014-10-22 10:50
Roy.. 发表于 2014-10-21 14:29
我的帖子上电视了

论坛的魅力所在就是资源共享,互相交流,也要感谢你的分享!

作者: Okabe    时间: 2014-10-22 10:52
~狂拽小棋~/衰 发表于 2014-10-22 10:27
不错了,自己遇到问题,自己找资料解决,进步大

多谢褒奖,虽然困难,不过我会坚持的

作者: Roy..    时间: 2014-10-22 12:10
Okabe 发表于 2014-10-22 10:50
论坛的魅力所在就是资源共享,互相交流,也要感谢你的分享!

哈哈,共同学习共同进步
作者: 沉静之亡    时间: 2014-10-22 17:57

作者: 空有一人    时间: 2014-10-22 19:40
楼主加油
作者: Okabe    时间: 2014-10-22 20:11
沉静之亡 发表于 2014-10-22 17:57



作者: Okabe    时间: 2014-10-22 20:12
空有一人 发表于 2014-10-22 19:40
楼主加油

一起学习

作者: 空有一人    时间: 2014-10-22 20:48
Okabe 发表于 2014-10-22 20:12
一起学习

嗯,我以后会学的=。=

作者: Okabe    时间: 2014-10-28 10:42
yandld 发表于 2014-10-21 09:26
支持一下 哈哈,JLINK确实容易出问题,如果你想全面掌握K60,或者想用Keil的话,可以参考这个帖子 http://w ...

请问为何beyongd论坛一直注册不了,我填的邮箱可以确定是有效的,但是一直收不到注册链接。

作者: yandld    时间: 2014-10-29 15:41
现在可以了
作者: Okabe    时间: 2014-10-29 19:05
yandld 发表于 2014-10-29 15:41
现在可以了

好的,确实可以了,现在已经注册进去了。
顺便和老师说一下,我在您的第一季视频教程里提了一个问题,就是关于程序下载的问题,能麻烦您查看一下吗?


作者: yandld    时间: 2014-10-30 18:56

作者: Okabe    时间: 2014-11-11 15:04
乖乖,Jlink真是容易出事,前些日子买的龙丘Jlink也出问题了,有了先前的经验,这次我很淡定地着手刷固件。先前忘了截图这次截个图给大家看看
作者: Okabe    时间: 2014-11-11 15:16
本帖最后由 Okabe 于 2014-11-11 15:43 编辑

详细步骤不说了,龙丘给的指导书里有
关键是驱动部分,Win7默认识别的Atmel的驱动是GPS Camera Detect
如图
[attach]71506[/attach]

而龙丘所说的驱动是这样的
[attach]71502[/attach]

显然,Win7又自作聪明了,所以我们要自己手动调整驱动,我安装的驱动位置如下
C:\Program Files\ATMEL Corporation\AT91-ISP v1.13\sam-ba 2.9\drv
[attach]71503[/attach]

然后选择上图中的“从计算机的设备驱动程序列表中选择”,从弹出的窗口里找到这个驱动(由于写这个帖子时已经刷好固件了,于是这个驱动在设备管理器里被Jlink 驱动代替了,所以没法截图,大家能理解就行)
[attach]71505[/attach]


直接选择安装就行,后续的安全警告之类的可以无视
驱动装好了,后面继续按龙丘的指导书操作即可
好了,现在又能用了,嘿嘿

作者: Okabe    时间: 2014-11-11 15:48
我了个去,太年轻了,刚出现了MDK提示Clone的错误
幸好通过这个帖子解决了http://www.openedv.com/posts/list/41907.htm
现在MDK到时正常了,IAR依然会出现Clone的错误,求高手指点
作者: Okabe    时间: 2015-2-20 20:13
前段时间我的龙邱Jlink完全报废了,表示不会再用了,还是jlink v8要稳定些,虽然也是山寨的。
作者: 素衣叹风尘    时间: 2015-2-22 14:30
厉害
作者: lukeyue    时间: 2015-3-5 21:20
没遇到过你说的这些问题……
作者: singsongs    时间: 2015-4-5 22:52
在你的贴子里学到很多,谢谢分享。!
作者: 吟咏    时间: 2015-4-28 20:55
:):)
作者: 独自七年约    时间: 2015-8-14 14:12
还有没有k60驱动的lcd1602程序了???
作者: fandeyan    时间: 2015-11-17 09:42
你好可以加我QQ:614670987吗?想请教你下
作者: Okabe    时间: 2016-3-6 12:48
fandeyan 发表于 2015-11-17 09:42
你好可以加我QQ:614670987吗?想请教你下

      论坛大神很多,我只是菜鸟一枚。况且好久没折腾单片机也已经生疏了。      善用搜索引擎和论坛,你一定行的,况且过了这么久,相信你一定也进步了很多了!


作者: Okabe    时间: 2016-3-6 12:49
lukeyue 发表于 2015-3-5 21:20
没遇到过你说的这些问题……

        你一定使用了更合适的方法,不管是有意还是无意,祝贺你!

作者: hnytzy    时间: 2016-3-12 23:36
技术好贴,必须顶:):)
作者: 逝去的辉煌    时间: 2016-4-9 18:27
大神,百折不挠的精神值得学习!
作者: tzcl    时间: 2016-7-17 01:49
我也遇到很多问题,包括锁死,网上解决了,但是,没有整理。以后向LZ学习,整理发出来,与人与己都十分方便。
作者: 小车飞    时间: 2016-10-1 10:53
想问一下,怎么一步步来做的,最开始学51吗?学到什么程度......




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2