优快云的账号申请注册已有两年时间,但是除了下载需要基本上好像没有登录过它。然而前段时间偶尔看到了他人在优快云上的博客,突然觉得将此作为一个专业博客之地,记录自己变成路上的点滴历程,对自己而言是一种总结与成长,于他人而言或许会有些微的帮助。
最近领导又给了一个新任务,算是换汤不换药的小升级吧。之前一直在用MSP430G2212控制2.4G的发射,现在2212变成了2553,2.4G依然存在,唯一不同的就是这个板子多了些扩展,加入了传感器。目前还没有进入传感器的调试,目前自我认为准备工作已经就绪,传感器调试可以提上日程,而且要快马加鞭,毕竟是立了军令状的人。
且不说接下来在调试传感器时会遇到什么难题,准备工作就已经状况百出了。
首先难道新板子之后,仍然是四线下载方式,本以为传统的方法,旧有的仿真器,只要对应连接好就可以下载程序了,没成想这里就遇到了难题,程序无法下载,总是提示找不大设备。于是先跟硬件设计师联系,可是他觉得板子设计应该是没有问题的,怀疑是我的软件没有设置好。无奈,接着领导又让我去请假厂家技术支持,技术支持给我提供了各种检查电路的思路,我也尽可能集结自己的思维,排查可能出现的弱智问题,可是直到快下班仍然解决不了问题,下班之计,抱着一丝幻想排除自己的最后一个怀疑——硬件设计的一个容值与上次的电路不一致。果然,功夫不负有心人,真的是这里的问题。后来问了技术支持才知道,430的复位RC电路设计,经典阻容值是47k,2.2nf,在这个匹配值时复位时间大约在500us,如果改变其中的某个值,可能会导致复位时间变化,如果复位时间变化较大,就会出现仿真器找不到设备的问题。
程序终于可以下载到板子里了,将自己改好的2.4G程序下载进去,接着就是要写一个读卡器程序,来接收2.4G发射数据。也许自己是个内心洁癖的人,所以总是要在一个适当的时机以全新的面貌开始一段新的征程,新的工程,新的代码,哪怕是充原来代码复制过来的,我想这也代表了我思考与整理的过程。读卡器要完成的功能2.4G接收和串口输出。2.4G接收很顺利的完成了,串口打印的代码也迅速从工程例子程序里面拷贝了一个新的备份,但是为什么就是无法打印呢,找不到问题,所以费解、唉声叹气,但是却不能失去耐心。找到问题的时候,觉得自己还是有些粗心,有些问题容易忽视。也许工作两年已经积累了一些经验,每次出现问题时我都会先把新的环境、代码、硬件与原有的比较一番,看看又什么不一样的地方,也许那里就会是问题的根源。这次也是比较了好久都没有发现,最后发现原来的代码I/O初始化完成后直接就进入下一个函数,而本次代码的I/O初始化完成,也就是设置好了串口的输入输出方向后,还关闭了宏定义中定义的LED管脚,而恰恰这些管脚与UART的管脚有交叉。是了,这就是我那个白痴的问题了。
好了,这个时候我以为我就可以开始调试传感器了,可是却又发现,昨天明明已经在430板子里下载了2.4G发射的代码,为什么接收端没有反应呢?再次尝试仿真,是啊,没有问题,仿真的时候是正常的,为什么下载进去之后就不正常了呢?上示波器,量了相应引脚的波形,也是对了。无意中发现其实并不是一直都不能接收,不知道在哪个任意的时候接收端就可以收到数据了。这又把我难住了,因为看不到任何问题啊,真是好事多磨啊,我这个暴脾气,真是要抱怨这些物件了。但是,今天脑子还算比较争气、比较灵光,之前曾经出现过类似的问题,不过那个时候刚刚开始接触IAR FOR MSP430,问题百出,仿真的诡异事件,程序只能仿真,不能下载等等。为此,也是专门请厂家的技术支持专门过来现场解决问题,当时来了一个经验丰富的大叔,他很快就从表象上把问题解决了。问题就是MSP430和24L01的复位时间相差一个数量级,430很快,而24L01会稍慢一下,所以也许430的代码都已经跑完了,可是24L01还没有完成复位呢,所以就出现了这个看似诡异的问题。归根到底又变成了自己代码的问题,我给430程序的开始加了一个延时,让他等等那个慢的。
不过还有个疑问,游客如果你看到了,可否给我一个解答:如果说问题确实是430和24L01复位时间不同步,430已经完成了对24L01的初始化、发射设置操作,而此时24L01还没有完成复位,可是为什么我用示波器量到的430与24L01的SPI通信引脚的数据是正常的呢?24L01的发送中断确实被拉低,VDD_PA(指示发射引脚)是有1.8V电压的,天线也是有波形的,还是有些不解啊!!!
2649

被折叠的 条评论
为什么被折叠?



