ARM Cortex M3系列 LM3S9B96开发的坎坷历程(一)

来源:互联网 发布:网络剧ip什么意思 编辑:程序博客网 时间:2024/04/28 19:17

    

    项目中嵌入式开发部分的MCU选用的是LM3S9B96。。(这是一年半前的项目,近期老板要求复原。一些重复的问题又出现了。千不该万不该,早知道就做好相应的笔记了。本着亡羊补牢,为时未晚的心态,把一些问题总结一下。留待自己以后的回顾,也惠及大家。(*^__^*) 嘻嘻……)

    软件部分比较顺利,采用SafeRTOS。一个任务一个.C文件,然后进行一些中断,优先级等的设置,就基本OK了。出现的问题网上大部分都能找到解决方法。问题和解决方法都比较固定。

    硬件部分的确需要经验。当时是第一次设计PCB,布局不够理想,稀稀拉拉的,一看就知道是个初学者。幸好是低速板,几十M的运行速率,线布通了就没有多大的问题了。借鉴TI提供的基于Stellaris系列的LM3S9B96开发板的用户手册提供的原理图。再根据实际的项目需求,自主设计了PCB。硬件模块主要包括串口通讯模块、光栅数据的采集与处理模块以及电机驱动模块。然后问题来了。

    软件程序已经在师兄师姐的基础上修改好,验证过的,没有问题。 

 

   error 1:使用LM JINK下载程序。出现问题。

       it can't load code - get "JTAG initialization failed 0x00000004"

      "Failed to load flash loader: c:\ ... \FlashLMSxDxx.flash".

       之后我使用LM Flash Programmer擦除了整个Flash。出现      

       **ERROR**: Unable to initialize the target!


       解决方法:我换了一种下载方式,使用IAR6.3下载程序。

                         出现**ERROR**: Unable to connect-Check hardware,speed and interface selected。

                         提示有三方面原因:硬件电路、连线是否完好;速率是否古河;接口选择是否对应。

                         我网上查了下,配置如下。下载地址是0x0。如果LM3S9B96的版本是C1的话,是0x1000。

                         因为C1系列的前面地址,TI打了个补丁。



          配置好之后,仍旧出现上述问题。然后我检查了以下接线。把JTAG线路上的引脚重新焊接了,排除                      虚焊的存在。还有JTAG的排线有两根由于老化而断了,重新换了新的。

          上电Program。it‘s OK!!!


    error 2:串口通信,我使用不同的供电方式,结果不同。(电路板有5V适配器和电脑电源供电接口接口)

            使用5V适配器供电,串口可以正常传输数据。

            使用电脑电源供电,串口不能正常数据传输(时不时出现乱码)。

    解决方法:经检查是电平转换芯片有问题。

              之前使用的是MAX3232。然后换了MAX232。就可以了。

              疑问???

              MAX3232是5V转换成+12V、-12V。MAX232是5V转换成+12V和-12V。而LM3S9B96是TTL电平3.3V的电压。               为什么换成MAX232还就解决问题了呢。看来要好好研究下MAX232和MAX3232的数据手册了。

    

           

 

0 0
原创粉丝点击