28335 flash 下载到flash带仿真器可以,重新上电不能自动运行

原因找到了。

网上看到的可能出现的:

1、 内核电源是否是1.9V。

       网上有例子说他的内核是1.5,结果就是仿真正常,上电不正常。

2、  晶振是否虚焊,用示波器测晶振的输出波形,应该是正弦的波形。

3、  复位电路,确定是否发生了复位。手动给低电平。

4、  1.9v,3.3v,复位,是有上电时序的。

        28335要求1.9V先上电,3.3V后上电。

       TMS320F28335工作在150MHz频率下需要1.9V的内核电压及3.3V的I/O电压。如果内核先于I/O模块上电,那么I/O引脚将不会产生不稳定的未知状态。反之,如果I/O模块先于内核上电,由于此时内核不工作,I/O输出缓冲器中的晶体管有可能打开,从而在输出引脚上产生不确定状态,对整个系统造成影响。为了避免这种情况的发生,VDD引脚上电应早于VDDIO引脚上电,或与之同时,以确保VDD引脚在VDDIO引脚达到0.7V之前先达到0.7V。因此我们在设计TMS320F28335的供电系统的时候要保证1.9V内核电压先于于3.3V I/O上电,当然能够实现这种上电顺序的方案有很多,可以采用带有使能端的稳压器,并配合相应的逻辑电路达到相应的效果。

5、确认自己是否下载到flash。

      通过观察灯的闪烁变慢,认为仿真时成功下载了。

6、boot引脚。存疑。

      开发板上的几个电阻是没焊的,怪不得一直觉得这里有问题。。。。真是太傻了这个问题。。在画最小系统时,参考了开发板,然后开发板的R25-28没有焊电阻,所以就是高电平。而我焊了以后就是低电平了。

     

 

 

 

<think>好的,用户的问题是解决设备断重启后无法自动工作的问题,涉及DSP芯片TMS320F28377D的仿真器烧录FLASH、断重启自动工作、上位机通信故障等。首先需要分析可能的原因,然后逐一排查解决。 首先,用户提到设备断后无法自动工作。这可能和程序没有正确烧录到FLASH有关。根据引用[2],STM32的启动模式中有从Main Flash启动的选项,如果烧录时没有正确配置,可能导致程序没有写入FLASH或者启动模式不正确。虽然用户使用的是28377D,但类似的问题可能存在。需要检查烧录配置是否正确,确保程序烧录到FLASH而非RAM中。 其次,断重启后无法自动工作还可能是因为上复位路有问题。DSP需要正确的复位信号才能从FLASH启动。如果复位路不稳定,可能导致芯片无法正常初始化。这时候需要检查复位路的设计,包括复位引脚的平是否正确,是否有容或阻配置不当导致复位时间不足。 然后,FLASH烧录后的启动配置是否正确。28377D可能需要设置特定的引导模式引脚(Boot Mode Pins),以确定从FLASH启动。如果这些引脚的状态不正确,芯片可能无法跳转到FLASH中的程序入口。需要查阅数据手册,确认引导模式引脚的配置是否正确,比如是否上拉或下拉。 接下来是程序中的初始化代码是否有问题。例如,DSP在从FLASH启动时,需要将代码从FLASH复制到RAM中运行,特别是涉及到高速运行的代码段。如果这部分初始化代码缺失或配置错误,可能导致程序无法正确执行。需要检查工程的cmd文件(链接器配置文件),确保FLASH到RAM的复制过程正确,并且中断向量表等关键部分已正确重定位。 上位机通信故障可能和程序运行异常有关。如果主程序未能正常启动,通信模块自然无法工作。需要确认烧录后的程序是否真的在运行,可以通过点亮LED或者发送调试信息来判断。如果通信部分硬件故障,如CAN或UART的引脚配置错误、平不匹配,也可能导致通信失败。此时需要检查硬件连接和软件配置,比如波特率、数据位等是否匹配。 另外,FLASH烧录过程中可能出现数据损坏。可以尝试重新烧录程序,并验证FLASH的内容是否正确。有些仿真器在烧录后可能需要执行特定的复位操作,或者需要等待FLASH完成写入。引用[4]中提到FLASH和EEPROM的区别,FLASH需要块擦除,如果在烧录过程中出现意外断,可能导致部分数据损坏,因此确保烧录过程稳定也很重要。 还有源稳定性问题。设备在断重启时,如果压上升时间过长或有波动,可能导致DSP工作异常。需要检查路,确保在上压快速稳定,符合芯片要求。可以在源部分增加滤波容或调整源设计。 总结下来,可能的故障点包括烧录配置、启动模式设置、复位路、初始化代码、FLASH到RAM的复制、源稳定性等。解决方案需要逐一排查这些方面,确保每个环节都正确无误。</think>### 问题分析:设备断重启后无法自动工作的可能原因及解决方案 针对TMS320F28377D(以下简称28377D)的仿真器烧录FLASH、断重启异常、通信故障等问题,可能的原因和解决方法如下: --- #### **1. FLASH烧录配置错误** **原因**: - 程序未正确烧录到FLASH中,而是烧录到RAM中,导致断程序丢失[^2]。 - FLASH烧录后未正确配置启动模式(Boot Mode),导致芯片上后无法从FLASH启动[^4]。 **解决方案**: 1. **检查烧录工具配置**: - 在CCS(Code Composer Studio)中,确认工程配置的“Memory Mode”为FLASH,而非RAM。 - 烧录时勾选“Program to FLASH”选项,确保代码写入FLASH而非临时RAM。 2. **验证FLASH内容**: - 使用仿真器读取FLASH内容,确认烧录后的数据与编译生成的二进制文件一致。 3. **配置启动模式引脚**: - 根据28377D数据手册,设置Boot Mode引脚(如GPIO84/GPIO85)的平,选择从FLASH启动模式[^2]。 --- #### **2. 程序初始化代码缺失** **原因**: - FLASH中的代码需要初始化操作(如搬移代码到RAM、配置PLL时钟等),若初始化代码未执行,可能导致程序无法运行[^1]。 **解决方案**: 1. **检查启动代码(Bootloader)**: - 确认工程中包含`DSP2837x_SysCtrl.c`等系统初始化文件,并正确配置PLL、时钟和外设。 2. **添加FLASH到RAM的搬移代码**: - 对于需要高速运行的代码(如中断服务程序),需在启动时将其从FLASH复制到RAM。参考以下代码段: ```c #pragma CODE_SECTION(ISR_function, "ramfuncs"); ``` 3. **验证中断向量表**: - 确保中断向量表已正确重定位到FLASH或RAM的固定地址。 --- #### **3. 源或复位异常** **原因**: - 上复位时间不足或压不稳定,导致芯片未完成初始化。 - 复位路设计不合理(如容值过小),导致复位信号抖动。 **解决方案**: 1. **检查复位路**: - 确保复位引脚(XRS)在上时保持低平至少20ms,推荐使用10kΩ阻和1μF容组成RC复位路。 2. **测量源稳定性**: - 使用示波器检测芯片供压(如1.2V核心压和3.3V IO压),确认无跌落或纹波过大现象。 --- #### **4. 上位机通信故障** **原因**: - 通信接口(如SCI、CAN)未正确初始化,或波特率/时钟配置错误。 - 通信协议异常(如数据帧格式不匹配)[^3]。 **解决方案**: 1. **检查通信初始化代码**: - 确认SCI/CAN模块的时钟源、波特率寄存器(如BRR)与上位机设置一致。 - 示例:CAN模块初始化时需配置位时序寄存器(CANBTC)以匹配2MHz通信速率[^3]。 2. **使用逻辑分析仪调试**: - 捕获通信引脚信号,验证数据帧格式(如起始位、停止位、校验位)是否符合协议要求。 --- #### **5. FLASH损坏或寿命问题** **原因**: - FLASH因频繁擦写导致存储单元失效。 **解决方案**: 1. **减少FLASH擦写次数**: - 将频繁修改的数据存储到RAM或外部EEPROM中,而非FLASH。 2. **启用FLECC(FLASH错误校正码)**: - 在烧录时开启FLASH的ECC校验功能,纠正单比特错误。 --- ### **操作流程总结** 1. 确认烧录配置正确(FLASH模式 + 启动引脚平)。 2. 检查初始化代码(时钟、FLASH到RAM搬移、中断向量表)。 3. 验证源/复位路稳定性。 4. 调试通信协议与硬件信号。 5. 必要时更换FLASH芯片或优化存储策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值