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.

求助DSP通过CAN烧写程序?

DSP28335如何通过CAN烧写程序?有哪位大侠愿意指导下,谢谢

  • 怎么没有好心人指点下呀

  • 真的可以吗。。。

  • 请参考:http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/p/122046/338131.aspx#338131

    原理上没有差别。

  • 应该是可以的,我网上搜有人用过,但是具体怎么实现怎么实现一直没找到参考文档

  • 那是不是表示我只能用规定的管脚进行通信呢?

    比如CAN引导的话只能用GPIO30和GPIO31 呢?

    可以改成别的CAN管脚吗,谢谢

  • 你是通过TI固化在ROM里的Bootloader进行升级,就必须使用上表列出的引脚,同时使用CAN Boot模式;

    你是自己编写CAN在线升级代码,就可以根据你的要求自定义任意一个CAN接口,同时不需要进行GPIO的跳线来使用TI的CAN Boot.

  • 谢谢你的回答!!

    还有两个问题:1.烧写时用.hex文件还是.bin文件呢,.hex文件如何转换成.bin?2.CAN烧写的话是用什么上位机发送呢?还是直接can通信发送就可以了?

    谢谢

  • 你先要说清楚,你是想通过CAN直接烧写程序,还是在线升级程序。

    上位机通常都是自己开发,hex或者bin也是自己去解析,就是在这个上位机里。

  • 这是两个问题吗,我一直以为是一回事,他们有什么区别吗?我是想利用dsp的任意can管脚来烧写程序

  • 通过调用TI Bootloader直接烧录芯片,必须通过GPIO跳线使芯片进入对应的引导模式,比如CAN引导是一组电平组合,SCI引导是另外一种,而程序正常运行又是另外一种,它可以将整个芯片的所有flash擦除,然后实现编程,但是对于你的产品来说,在市场上需要升级程序时,就必须先断电使机器不运行,同时MCU也不运行,然后拆机跳线,重新上电进行烧录,这显示不是很方便的。

    在线升级是指用户自己开发一个bootloader驻留在芯片的flash区的某一个secto永远不被擦除,然后需要升级时,不需要进行跳线,而是可以直接通过通讯命令在应用程序层面进行处理,比如通过CAN,然后使机器停机,但MCU仍然正常运行的情况下,使程序跳转到bootloader运行,它可以把除了自己以外的所有flash擦除并编程,并在完成之后跳转回到应用程序继续运行。这个区别就在于不需要断电使MCU停止工作,而且不需要拆机跳线,因此在现场升级时非常方便。

  • 10# 说:

    通过调用TI Bootloader直接烧录芯片,必须通过GPIO跳线使芯片进入对应的引导模式,比如CAN引导是一组电平组合,SCI引导是另外一种,而程序正常运行又是另外一种,它可以将整个芯片的所有flash擦除,然后实现编程,但是对于你的产品来说,在市场上需要升级程序时,就必须先断电使机器不运行,同时MCU也不运行,然后拆机跳线,重新上电进行烧录,这显示不是很方便的。

    在线升级是指用户自己开发一个bootloader驻留在芯片的flash区的某一个secto永远不被擦除,然后需要升级时,不需要进行跳线,而是可以直接通过通讯命令在应用程序层面进行处理,比如通过CAN,然后使机器停机,但MCU仍然正常运行的情况下,使程序跳转到bootloader运行,它可以把除了自己以外的所有flash擦除并编程,并在完成之后跳转回到应用程序继续运行。这个区别就在于不需要断电使MCU停止工作,而且不需要拆机跳线,因此在现场升级时非常方便。

    明白了,谢谢。那我需要的是在线升级。

    另外我可以用记事本打开.hex文件,可以看到里面的信息。我用can发送的话怎么发送呢?怎么把.hex文件集体发送?谢谢

  • 请查看F28335的BOOT ROM手册(TMS320x2833x23x Boot ROM Reference Guide)中有关数据结构的章节2.10 Bootloader Data Stream Structure和2.22 eCAN Boot Function等。

  • 思路就是如此,下面是一个按照该思路实现的工程。开发还是有一定难度的,底层bootloader,USBCAN模块,PC上位机软件,都需要开发。

    https://github.com/xjtuecho/UARTCAN/tree/master/XBOOT_28335