一个初学者烧写板子过程中遇到问题的总结心得
- 格式:doc
- 大小:28.50 KB
- 文档页数:2
flash烧写成功经验DSP2812_FLASH烧写成功经验总结初次接触DSP2812的FLASH烧写,在“成功”锁死2块DSP2812和处理了一堆报错后,终于烧写成功。
在此过程中在HELLODSP论坛中看到很多朋友也遇到过与我类似的问题,为了让更多的新手朋友少走弯路,将我4天折磨的烧写过程经验与大家分享,本人菜鸟初学,有错误之处,敬请指教。
其中CMD\LIB\ASM文件,我都是在一个同事给北京瑞泰开发板给的例程中找到,大家可以参照。
1. 一定要下载最新的FLASH烧写插件,可以避免很多奇怪的错误出现,这一点非常重要,本人就是在此问题困扰了一整天。
名称是:C2000-2[1][1].00-SA-to-UA-TI-FLASH2X.EXE我使用的产品版本号为2.02.0012. 下载烧写FLASH配套CMD文件、LIB文件以及起始代码asm 文件。
CMD文件名称:DSP281x_Headers_nonBIOS.cmdCMD文件名称:F2812.cmdLIB文件名称:rts2800_ml.libASM文件名称:DSP281x_CodeStartBranch.asm另外在RAM调试时用以下两个文件:F2812_EzDSP_RAM_lnk.cmdDSP281x_Headers_nonBIOS.cmd附件给出了2个CMD文件、ASM文件、LIB文件以及C文件。
其中C文件仅仅作为大家参考。
3. 配置C文件配置好主程序的C文件,才能将FLASH成功烧录,并且将FLASH 中的文件拷贝到RAM 中运行。
关于C文件的配置。
首先在F2812.CMD文件中,我们可以看到有关于加载FLASH到RAM的内容:ramfuncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE = 0以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem();)之后即可:InitSystem();memcpy(&RamfuncsRunStart,&RamfuncsLoadStart,&RamfuncsLoadEnd - &RamfuncsLoadStart);Initflash();所以,我们需要定义所用变量:extern Uint16 RamfuncsLoadStart;extern Uint16 RamfuncsLoadEnd;extern Uint16 RamfuncsRunStart;我的这些定义都是:DSP281x_GlobalPrototypes.h 当中,当然,也可以放在其他系统初始化的地方。
DSP调试及烧写和加载常见错误及分析在进行DSP调试、烧写和加载过程中,常见的错误有很多,下面是一些常见错误及其分析:1.调试错误:-问题描述:无法连接到DSP设备。
-分析:可能是因为设备未正确连接,或者连接线路有问题,也可能是驱动程序不兼容导致的。
-解决方法:检查设备的连接状态,确保连接正确;检查连接线路是否完好;更新或卸载并重新安装驱动程序。
2.烧写错误:-问题描述:烧写失败或者烧写之后设备无法启动。
-分析:可能是烧写的文件有错误或者不完整,也可能是设备本身存在问题。
3.加载错误:-问题描述:加载程序时出现错误,或者加载之后程序无法正常运行。
-分析:可能是加载的程序有问题或者与设备不兼容,也可能是设备本身存在问题。
4.软件错误:-问题描述:使用的调试、烧写或加载软件出现错误或崩溃。
-分析:可能是软件本身存在问题,也可能是与其他软件或系统的兼容性冲突。
-解决方法:更新软件版本,或者使用其他可靠的软件;检查是否存在与其他软件或系统冲突的情况,如果有需要进行排查和修复。
5.设备故障:-问题描述:设备无法识别、烧写或加载,存在硬件故障。
-分析:可能是设备损坏或老化,设备内部电路出现问题。
-解决方法:检查设备的物理状态,是否存在损坏或老化情况;检查设备的内部电路,如果有问题需要进行修复或更换。
6.嵌入式系统错误:-问题描述:DSP芯片上的嵌入式系统无法正常运行。
-分析:可能是系统的软件代码有问题,硬件与软件的不匹配,系统配置错误等。
-解决方法:检查系统的软件代码,重新进行编译、调试和烧写;检查系统的硬件与软件的兼容性,如果有问题需要进行修复或更换;检查系统的配置参数,进行适当的修改。
在遇到以上错误时,可以根据具体情况进行分析和解决。
同时,可以参考调试、烧写和加载工具的操作手册,寻求厂商的技术支持,或者查阅相关的文档和资料来获取更多的帮助和解决方案。
调试、烧写和加载过程中可能会遇到各种各样的问题,需要耐心和细心进行排查和解决。
51单片机开发板pcb设计实训总结51单片机开发板是一种常用的嵌入式系统开发工具,广泛应用于电子产品的设计和制造过程中。
在我进行的51单片机开发板pcb设计实训中,我学到了很多知识和技能,也遇到了一些挑战和困难。
在这篇文章中,我将总结我在实训中的经验和收获。
首先,我学会了如何使用Altium Designer软件进行pcb设计。
Altium Designer是一款功能强大的电子设计自动化软件,可以帮助我们完成电路图设计、pcb布局和布线等工作。
通过实际操作,我熟悉了软件的界面和各种功能,并学会了如何绘制电路图和布局pcb板。
其次,我了解了51单片机的基本原理和工作方式。
51单片机是一种经典的8位单片机,具有丰富的外设和强大的计算能力。
在实训中,我学习了51单片机的内部结构和寄存器的使用方法,掌握了51单片机的编程技巧和调试方法。
在实训过程中,我遇到了一些挑战和困难。
首先是电路图设计的复杂性。
由于51单片机开发板涉及到多个外设和接口,电路图设计非常复杂。
我需要仔细阅读相关的资料和手册,理解各个元件的功能和连接方式,确保电路图的正确性和可靠性。
其次是pcb布局和布线的困难。
在pcb设计中,布局和布线是非常重要的环节。
合理的布局可以提高电路的稳定性和抗干扰能力,而合理的布线可以减小信号的传输延迟和功耗。
在实训中,我需要考虑各个元件的位置和连接方式,合理规划电路板的布局和布线,确保信号的稳定和可靠。
最后,我通过实训获得了一些宝贵的经验和收获。
首先是团队合作的重要性。
在实训中,我和我的同学们一起合作完成了pcb设计的任务。
我们相互协作,互相帮助,共同解决问题,最终完成了一个优秀的设计。
其次是耐心和细心的重要性。
在pcb设计中,任何一个小的错误都可能导致整个电路的失效。
因此,我需要耐心和细心地检查每一个元件和连接,确保没有错误和疏漏。
通过这次实训,我不仅学到了专业知识和技能,还培养了团队合作和解决问题的能力。
Error: Read status value 0x0001 from symbol PRG_statusFlash algorithm failed during clear operation开始可以正常烧写的,但是上机调试了一下就不能写了.在烧写lf2407内部flash时出现如下错误,不知是什么原因造成的?Error:Read status value 0x0001 from symbol PRG_statusFlash algorithm failed during clear operation.换了一个芯片后正常之前有一次在试CCS功能时,一不小心点了一次加密,还没有执行完,就马上点了解密,大概这样烧坏了吧!太脆弱了,再也不敢试加密了CMD文件要避开FLASH的40H--44H区间,我也出现过这样的问题,烧写2407A的片内flash时会出现下面的错误提示:Error: Read status value 0x0001 form symbol PRG_statusFlash algorithm failed during clear operation后来换了一块2407就能烧写了。
是不是2407的flash坏了?有没有办法检测或者修复flash?昨天在网上查了一下,很多人都遇到了这种问题,可能是dsp内部flash烧坏了吧! 今天重新换了一块芯片,可以烧录进去了,但是上拿到样机上调试一下,再烧录就出现了同样的问题,估计又是flash坏了,到底是什么原因引起的?是不是电源引起的呢?我也出现过能仿真,但不能烧写的情况!解决方法:解决方法:降低时钟频率。
点击FLASH插件上的“View Config File”,打开VAR.h文件。
将该文件中的“PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。
烧录不良问题原因关于NOR FLASH芯片烧录不良分析首先要分析不是由烧录器导致的:1. 先使用常规方式烧录一批芯片进行测试, 例如烧录500片, 或者2000片.烧录的操作内容可以是"编程+校验"(全新空白芯片), 或者"擦除+查空+编程+校验"(非空白芯片)2. 烧录完后对芯片再次进行验证操作(即100%全检)设置编程器的操作内容为"校验"(仅保留校验, 删除其他操作项), 加装同一个烧录文件, 对芯片进行全部根据我们对客户问题的实际分析和验证, 此问题并非烧录器或烧录操作的原因, 基本上都是以下两个方面的原因导致的:1. 大部分芯片具备擦除改写功能, 在产品通电测试时, 由于干扰或者软件运行错误, 会导致数据被意外擦除或改写.因此我们建议如果芯片是25系列的SPI FLASH, 可以在常规烧录时, 加入"写保护"功能.在硕飞编程器软件中的操作方式为:在操作内容中最后一步加入"写入配置", 同时设置芯片的配置选项, 设置芯片的保护位. 如下图:*** 芯片的保护选项需要根据产品的功能要求设置. 具体需要请咨询产品的研发工程师.2. 另外一个原因是芯片本身工艺或质量问题, 在高温回流焊时, 其数据会丢失.此情况先检查芯片回流焊温度是否过高, 以及焊接时间是否过长.如回流焊参数正常, 则问题是由芯片本身质量导致的, 建议咨询芯片厂商或供货方........................................................................................................................ ................................................................. ..............................................验证操作.*** 请不要使用读取, 然后再比较校验和的方式(这样的验证方式不科学).3. 正常进行贴片生产4. 产品上板测试如果有不良产品是因为芯片数据丢失导致导致的, 那么可以确定问题出在贴片生产或后续测试这个步骤, 与芯片烧录没有关系(因为我们在步骤2时已经对芯片做100%全检).。
画PCB板的个人总结画PCB板的个人总结为了做飞思卡尔智能车竞赛光电传感器,我们要自己画电路板。
从刚开始画板,到最后在外面把板子做好,我碰到了很多问题,我犯了很多错误。
不过最后一次总算是成功了。
在这个过程中,我积累了一些画电路板的经验和教训,在这和大家分享一下。
记得刚开始光电传感器的电路基本确定之后。
然后开始画PCB。
由于第一次画板。
根本不知道线要尽量布在底层。
尤其是学校自己做板。
然后器件的封装也没有很明确的概念。
只是认为大体上有那个形状就行了,然而有的器件的电源和地与封装库里面的可能是反着的。
如果不注意的话,把芯片焊好以后,刚上电就会看到冒烟了。
这样的结果就是器件烧坏了。
有的器件比较便宜也就罢了,像飞思卡尔的接收管,调制管一个要8块钱,怎么烧的起啊。
还有不同器件的holesize是不一样的,一般的芯片,电阻也就罢了,如果是插针的话holesize一定要1mm以上,不然根本放不进去。
上述说的问题,我在第一次做伴的时候竟然都出现了,真是郁闷。
器件防反,线都布在顶层,插针也放不进去没办法,只能在电路板上改线。
这样弄来弄去,电路板上的焊盘都没了,电路板也弄的超烂,最后被逼无奈,治好重新做板。
第二次做板,我还是不长记性。
接收管还是防反了,结果一上电就冒烟了。
又烧了一个接收管。
做这些东西真是烧钱啊。
插针的holesize还是忘了改。
最后只能用电钻重新钻。
这样的结果就是焊盘基本就没了最后一次做板,那时候已经调传感器很长时间了,到外面做板。
到外面公司做板一定要认真仔细才行。
因为在外面做板,光一块板就150元,这可不是小数。
所以一定要认真仔细。
时间紧迫,也不允许在出现失误了。
先画原理图,画原理图的时候一定要注意滤波,在芯片的电源和地之间要放电容,起到滤波的作用,当然这是基本常识了。
画好原理图后,开始对器件进行布局。
器件的布局尤其重要。
如果器件布局好的话,布线的难度会减小。
否则布线难度会很大。
在器件布局时一定要保证飞线尽量少有交叉。
关于NOR FLASH芯片烧录不良分析首先要分析不是由烧录器导致的:1. 先使用常规方式烧录一批芯片进行测试, 例如烧录500片, 或者2000片.烧录的操作内容可以是"编程+校验"(全新空白芯片), 或者"擦除+查空+编程+校验"(非空白芯片)2. 烧录完后对芯片再次进行验证操作(即100%全检)设置编程器的操作内容为"校验"(仅保留校验, 删除其他操作项), 加装同一个烧录文件, 对芯片进行全部根据我们对客户问题的实际分析和验证, 此问题并非烧录器或烧录操作的原因, 基本上都是以下两个方面的原因导致的:1. 大部分芯片具备擦除改写功能, 在产品通电测试时, 由于干扰或者软件运行错误, 会导致数据被意外擦除或改写.因此我们建议如果芯片是25系列的SPI FLASH, 可以在常规烧录时, 加入"写保护"功能.在硕飞编程器软件中的操作方式为:在操作内容中最后一步加入"写入配置", 同时设置芯片的配置选项, 设置芯片的保护位. 如下图:*** 芯片的保护选项需要根据产品的功能要求设置. 具体需要请咨询产品的研发工程师.2. 另外一个原因是芯片本身工艺或质量问题, 在高温回流焊时, 其数据会丢失.此情况先检查芯片回流焊温度是否过高, 以及焊接时间是否过长.如回流焊参数正常, 则问题是由芯片本身质量导致的, 建议咨询芯片厂商或供货方......................................................................................................................................................................................... ..............................................验证操作.*** 请不要使用读取, 然后再比较校验和的方式(这样的验证方式不科学).3. 正常进行贴片生产4. 产品上板测试如果有不良产品是因为芯片数据丢失导致导致的, 那么可以确定问题出在贴片生产或后续测试这个步骤, 与芯片烧录没有关系(因为我们在步骤2时已经对芯片做100%全检).。
关于第一次做开发板的笔记——By Monkey·D·Yong写在前面的话做这次板子给了我很大的启发,一个就是在做某一件事情的时候都必须小心谨慎,养成良好的规范对于做起事情来非常的方便,在后期才不至于出现很大的问题,后期的修改部分才会更好的进行。
还有一个就是锻炼到了自己的自学能力,在这次画板之前,我是完全没有接触过altium designer 的。
从开始安装到逐渐学会使用都是通过自己通过网络搜索学来的。
建议大家在做某一件事情的时候找一下相关的qq群,遇到了问题还是可以通过一些高手解决的。
不过有时候没人理,那就的自己一个人慢慢摸索着前进了。
自学其实挺好的,不过遇到问题就挺苦逼的。
有时候一个问题就困扰你半天,耐心这个时候就非常重要了。
准备条件网络这个就不用我多说。
关于altium designer 和protues的安装和下载就不讲了,这里给大家提供我自己网盘里的altium desisigner 09版和protues 7.8的下载链接。
/lb/5lb713ig#Proteus_7.8_SP2_大海橡树.rar 115网盘礼包码:5lb713ig/lb/5lb71854#AltiumDesignerSummer9Build9.3.1.19182.7z 115网盘礼包码:5lb71854/lb/5lb718hw#AltiumDesignerSummer9Build9.2.0.18802 crack.rar115网盘礼包码:5lb718hw前期原理图①在整个工程当中,最关键的就是原理图了,所以这部分是必须得花点时间的。
我觉得电路图这部分必须尽可能参考书51单片机书上的一些原理图,然后才是从网上找一些别人画的板子看看。
如果要从网上看的话建议大家可以去一些论坛里大家共享的买的开发板原理图。
还有画好了之后可以给一些有这方面经验的学长或者老师帮忙看看。
如果有可能的话尽可能的画个protues图仿真一下那是最好不过了。
单片机程序烧录方法及问题解决方式解析自学单片机是一场苦旅,这在第一次面对复杂的烧录界面的时候就会有深刻的感受,面对这么多参数的界面,该如何让自己苦心编写的程序运行在单片机上呢?下面就给大家介绍一下。
先,将烧写线把开发板与电脑连接,安装驱动之后,烧写程序能自动识别设备1,安装USB驱动程序,驱动程序在学习光盘中,具体安装方法参考配套“使用说明书”2.驱动安装完后,请检查USB的COM 端口号。
3.程序烧录时,要满足下面各参数的设置情况,打开c om m a gic.e xe烧录软件,选种“Fla sh Ma gic”选项卡,请按图设置烧录成功的显示烧录方法及问题解决:1. 确认烧录步骤:插上usb后,没有灯亮的,然后点击电脑的download,L1亮了,这时立刻按下板子的电源开关,然后L2亮了,这样就开始烧录了。
PS:每一步都必须按照上面的操作,如果灯的指示有误表明有硬件问题2. 截图烧录软件在1的基础上确认好了,是最后烧录不行,确认下图需要设置的地方是否正确。
关于串口号:并非一定如图所示是com5,具体在安装驱动后看“我的电脑”右键——“属性”——“设备管理器”——“端口(COM和LPT)”,与“USB-SERIAL CH340”一致。
这两个地方没有问题的话,出现以下提示:串口打开失败的错误,要么是没有安装驱动ch340,要么是没有选择正确的com口,用上述方法即可查看。
若出现以下两个情况的话一、确认板子是平放在桌面上的,底部是不接触任何东西影响电路的二、试试把芯片取下来,再放会去,注意芯片缺口是朝向数码管的,另外压芯片的那把手,压到水平位置,不能压得过低三、用杜邦线把P1.0和P1.1接到地GND上,然后按流程正常烧录PS:到了第三还是不行的话,返回第二再做一次,如果还是不行就请联系客服。
单片机无法烧录程序的解决办法1.单击下载按钮,让软件向单片机写入程序,如果出现这个提示无法下载,请在下载状态下关闭单片机电源再重新打开,看烧写过程开始没有2.如果还没有,请检查COM端口设置的是不是你连接编程器或者开发板的端口,数据线有没有连接好3.将串口的波特率降到最低1200,如果1200时写入程序正常,下次写入时再逐渐提高。
《单片机学习心得》单片机学习心得(一):单片机学习心得体会我从大二起,就去实验室去学习。
在那里与老师和一些电子设计爱好者的交流中,我学到了更多的专业知识。
我从此走上了学习嵌入式的道路。
这丰富了我的大学生活,是我在大学的最大收获。
我是从学习单片机开始我的嵌入式学习的。
我接触单片机的方式是在图书馆看书,我看了很多本书,但是大多数书写的大同小异。
书里面讲解的单片机的寄存器我看了很多遍也没有看懂。
我都不明白改怎样学习它了。
慢慢的我悟出了一个道理:电子的学习实践是最重要的,这样,我在大二的时候就买了一块学习板,我一边看视频一边仿照视频的程序,自己编写程序,在很短的时间里,我的单片机有了很大的提高。
那些难懂的寄存器透过编写程序,我慢慢的弄懂了它们,此刻回头看去,原先它还是很简单的。
用哪种编程语言最适合我们。
我看过的单片机的书籍,大部分的程序都是汇编写的。
它是一种基于机器硬件的低级语言,对于我们这些只学习过C语言的人来说,十分难懂。
我认为刚开始学习单片机没有必要必须要从学习汇编编程开始。
我学习单片机就是用C语言编程的,我并不会汇编语言,也没有妨碍我把单片机学好。
我的单片机学习心得。
很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。
在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。
单片机的学习实践。
单片机提高重在实践,想要学好单片机,软件编程必不可少。
但是熟悉硬件对于学好单片机的也是十分重要的。
如何学习好硬件,动手实践是必不可少的。
我们能够透过自己动手做一个自己的电子制作,透过完成它,以提高我的对一些芯片的了解和熟练运用它。
这样我们就能够多一些了解芯片的结构。
我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。
一个初学者烧写板子过程中遇到问题的总结心得[转帖]
*** Very Important Notes ***
1. 28F128J3A must be located at 0x08000000.
J6 : connect 2-3 pins, J9 : connect 1-2 pins
J33 : Open, J34 : Short
2. After programming, 28F128J3A may be located at 0x0.
J6 : connect 1-2 pins, J9 : connect 2-3 pins
J33 : Short, J34 : Open
Source size = 15d54h
Available Target Offset Address:
0x0,0x20000,0x40000, ..., 0x1ce0000
Input target address offset [0x?] : 0x08000000
Target base address(0x08000000) = 0x0
Target offset (0x0) = 0x8000000
Target size (0x20000*n) = 0x15d54
Identification check error !!
[root@localhost Images]#
开始以为是flash坏了,好害怕,后来才明白是JTAG接触不好.在烧写ppcboot 时最好用tftp先下载,实在不行在用JTAG.
6.每次Mount上ramdisk.image后,不能umount?,主机上显示device is busy.
我的解决方法是打开系统工具=>系统监视器,杀死最下面的fam进程就好了,我也不知道为什么,呵呵.
7.烧写ramdisk时发生这样的错误
SMDK2410 # fl 1140000 30800000 220000
start_sect=0xa,end_sect=0x1a
************erase sector 0xa***********
************erase sector 0xb***********
************erase sector 0xc***********
************erase sector 0xd***********
************erase sector 0xe***********
************erase sector 0xf***********
************erase sector 0x10***********
************erase sector 0x11***********
************erase sector 0x12***********
************erase sector 0x13***********
************erase sector 0x14***********
************erase sector 0x15***********
************erase sector 0x16***********
************erase sector 0x17***********
************erase sector 0x18***********
************erase sector 0x19***********
************erase sector 0x1a***********
----------program sector 0xa---------
----------program sector 0xb---------
Error Command Sequence!mflash_program_sector error : status read flash not completed for error
经wpq和hn的指点知道是flash的第13个扇区坏了,可以跳过此坏扇区.fla sh是16M,共128个扇区,16M/128=128K,每个扇区是128k,换成16进制是20000,我的flash是0xc错了,故要跳过0xa和0xb两个扇区继续写,20000*2=40000,可以多跳几个扇区.写在11a0000中.
还有修改ppcboot重新编译,在\ppcboot-2\ppcboot-2.0.0-old\lib_arm下的a rmlinux.c的196行左右将0x140000改为1a0000,这里的40000和
140000都是逻辑地址,在flash中起始地址是1000000,故实际的地址分别为1 040000和1140000,现在ramdisk改写在11a0000中了,呵呵.
好了,先写到这里了,希望对初学者有所帮助,小妹我还要继续下大家学习,在此对wpq和kangw表示最由衷的感谢.......~!~。