This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP320F28027使用串口烧录不成功

大家好,我在使用DSP320F28027进行串口烧录的时候不成功,烧录软件使用C2Prog,烧录的时候提示错误如下:请问是什么原因呢?感谢各位。

  • 自己顶一下,求高人解答啊。困惑

  • 请大家帮我解决,这个问题挺急的,谢谢各位啊

  • 这现象是串口通讯不稳定造成的,前面Connecting和Bootloading都是用低波特率的

    后面烧录使用115200,如果通讯接触等原因不稳定就会失败。

    1、通讯线看看接触是否良好

    2、修改波特率:在c2prog安装目录下有targets\targets.xml文件

    打开它,找到下面这段代码,把<bootbaud>38400</bootbaud>,改小<bootbaud>9600</bootbaud>

    把<loadbaud>38400;115200</loadbaud>改成<loadbaud>9600;38400</loadbaud>

    保存好,重新打开软件试一下

    <target>
    <name>28027,23,21_SCI</name>
    <version>1.0</version>
    <protocols>
    <protocol>
    <port>serial</port>
    <name>default</name>
    <bootclass>codeskin.c2oooprog.BootLoader28xxHalfDuplex</bootclass>
    <bootbaud>38400</bootbaud>
    <boottxdelay>0</boottxdelay>
    <boottxburst>100</boottxburst>
    <bootrecord>600;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;ffff</bootrecord>
    <bootfile>flasher28021_2_3_6_7_200_emu.hex</bootfile>
    <loadbaud>38400;115200</loadbaud>
    <loadtxdelay>5</loadtxdelay>
    <loadtxspace>1</loadtxspace>
    </protocol>
    </protocols>
    <chip>28027</chip>
    </target>

  • 太感谢你了lai jiucai。终于烧写成功了。 谢谢啊

  • 你好lai jiucai,谢谢你之前的帮助。通过截取C2PROG串口发送的数据,我发现它先将flasher28021_2_3_6_7_200_emu文件里面的数据放到RAM,然后返回到0x00000000地址;接着检测boot版本并且解锁CSM;然后把flash api的函数load到安全区里面;检测flash api版本;最后发送用户数据,通过flash api烧写到flash里面。不知道这个过程是否有错?里面的flasher28021_2_3_6_7_200_emu文件是什么作用呢?我使用串口工具模拟CEPROG发送的数据,但是到了检测boot版本的时候总是执行不下去,不知道0x00000000地址开始运行的程序是怎么处理串口的数据呢?

  • 过程是对的,flasher28021_2_3_6_7_200_emu.hex文件是最开始的boot文件,由于该工具面向的使用者可能存在芯片加密的情况,加密条件下只有RAM0和RAM1可用(如2802x有2KRAM),所以这个boot文件要很小。boot文件运行后,读取芯片的型号,版本,解密芯片,

    这样就可以导入flasher28021_2_3_6_7_200_emu_API.hex了。因为该软件使用的是软件flashAPI,没有使用bootROM里面的flashAPI(release里面好像是说TI的bootrom有升级过,一些早期的芯片的bootrom没有更新,所以统一使用软件api)。

    在Unlocking target...OK以后Loading...的就是flasher28021_2_3_6_7_200_emu_API.hex.

    然后读取flashAPI的版本(应该是给使用者一个信息,同时检测下API库正常工作与否)

    正常以后擦除flash,一段一段的接收,烧录目标代码。

    0x00000000地址运行的是boot文件,接受100个数据以后,返回烧录的情况,具体如何定义的就不知道了。

  • 可能你模拟发送flasher28021_2_3_6_7_200_emu.hex文件时出错了,一定要把换行符号去掉。因为换行字符通常看不见,如果发送了换行,那么文件就发送不对了。你看flasher28021_2_3_6_7_200_emu.hex这个文件,第一行不要,从AA 08开始发送。

  • 你好!

    我用C2Prog v1.7 通过串口给28027烧写程序.hex,发现串口连接不上,请问这个有什么解决办法吗?谢谢!

  • 请问您的问题解决了吗??