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.

[参考译文] CCS/MSP432P401R:MSP432P401R芯片停止运行,无效响应/目标正忙

Guru**** 2380860 points
Other Parts Discussed in Thread: ENERGIA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/664645/ccs-msp432p401r-msp432p401r-chip-stop-running-and-invalid-response-target-is-busy

部件号:MSP432P401R
主题中讨论的其他部件: Energia

工具/软件:Code Composer Studio

嗨,伙计们

我有这个示例代码用于A1端口的温度传感器。 昨天工作正常,今天我再次尝试调试。 我的调试器中有“无效响应/目标占线”(无论我关闭和重新打开多少次)。 因此,我无法再连接到芯片。 我正在将此MSP432P401R芯片用于我自己的项目。 这也是第3个芯片的作用。   

我通过Energia使用ADC (Energia库中的ADC代码示例),一旦上载代码,它就会给我这些响应(来自XDS110/ Target的响应无效/正忙)。(更改了一个新芯片并再次加载ADC示例,它仍然会这样做)。  然后,我再次更换了另一个新芯片,这次使用了代码编写器(使用代码编写器示例代码),问题已经解决了,昨天似乎工作正常。 今天下午,当我暂停程序并检查变量值时,问题又回到了(无法连接我的芯片)。 我真的很困惑。

发生这种情况时,芯片似乎停止工作,因为以前在其中加载的同一程序似乎也停止工作。(LED不会亮起)

此代码是当针脚的电压超过1.6V时,LED将亮起。 (在I/O和我的LED之间放置一个220欧姆电阻)。

/*--版权--,BSD_EX
*版权所有(c) 2013,Texas Instruments Incorporated
*保留所有权利。
*
*以源代码和二进制形式重新分发和使用,无论是否使用
*允许进行修改,前提是满足以下条件
满足*:
*
**重新分发源代码必须保留上述版权
*注意,此条件列表和以下免责声明。
*
**以二进制形式重新分发必须复制上述版权
*注意,此条件列表和中的以下免责声明
*随分发提供的文档和/或其他材料。
*
**既不是德州仪器(TI)公司的名称,也不是的名称
*其贡献者可用于支持或推广衍生产品
*未经事先书面许可。
*
*本软件由版权所有者和贡献者"按原样"提供
*和任何明示或暗示的担保,包括但不限于
*对适销性和特定适用性的暗示担保
*不承担目的。 在任何情况下,版权所有者或
*贡献者对任何直接,间接,附带,特殊,
*惩戒性或后果性损害(包括但不限于
采购替代货物或服务;使用,数据或利润损失;
(*或营业中断),但基于任何责任理论,
*无论是合同,严格责任还是侵权行为(包括疏忽或
*否则)因使用本软件而产生,
*即使已被告知可能发生此类损害。
*
*****************
*
* MSP432代码示例免责声明
*
* MSP432代码示例是通常自包含的低级程序
*在高度中演示单个外设功能或器件功能
*简明扼要。 为此,代码可能依赖于设备的默认开机设置
*注册值和设置,如时钟配置和必须注意
*在合并多个示例中的代码时使用,以避免潜在的问题
效果。 另请参阅 www.ti.com/.../mspdriverlib 了解API功能
*库和 https://dev.ti.com/pinmux/ ,用于GUI方法的外围设备配置。
*
*--/copyright--*/
//************************************************************************************************
//************************************************************************************************
// MSP432P401演示- ADC14,样品A1,AVcc Ref,设置0.5 1.0 IF A1 > AVCC
//
//描述:在A1上根据AVcc制作单个样本。
//软件将ADC14_CTL0_SC设置为开始采样和转换- ADC14_CTL0_SC
//在EOC自动清除。 ADC14内部振荡器倍采样(16x)
//和转换。 在主环路中,MSP432在LPM0中等待以节省电源,直到ADC14
//转换完成,ADC14_ISR将强制退出Mainloop中的LPM0
//返利 如果A1 > 0.5 TmAVcc,则为WFP 1.0 SET,否则重置。 的完整,正确处理
//和ADC14中断也会显示。
//
//
// MSP432P401x
//-----------
///|\\| Xin|-
//||||
//--|RST XOUT|-
//||
//>--|WFP LED/A1 5.4 1.0
//
//威廉·高
//德州仪器(TI)
// 2016年6月(更新)| 2013年11月(创建)
//与6.1 ,IAR,Keil,GCC一起构建
//************************************************************************************************
#include <ti/devices/msp432p4xx/inc/msp.h>
包含"math.h"
#include <stdint.h>
#include <stdio.h>

int main (void){
易失性无符号int I;
挥发性无符号长rawVolt;
浮点ADC_Volt;
浮子温度C;
浮子温度F;
浮点平均值;
浮子平均值1;
浮子Steinhart;

WDT_A->CTL = WDT_A_CTL_PW |//停止WDT
WDT_A_CTL_HOLD;

// GPIO设置
P2->out &=~BIT4;//清除LED以启动
P2->DIR || BIT4;//将2.4 设置为输出
P5->SEL1 |= BIT4;//为ADC配置WFP 5.4
p5->SEL0 |= BIT4;

//启用全局中断
__enable_IRQ();

//在NVIC模块中启用ADC中断
NVIC->ISER[0]=1<<(ADC14_IRQn)& 31);

//采样时间,S&H=16,ADC14打开
ADC14->CTL0 = ADC14_CTL0_SHT0_2 | ADC14_CTL0_SHP | ADC14_CTL0_ON;
ADC14->CTL1 = ADC14_CTL1_RES_2;//使用采样计时器,12位转换结果

ADC14->MCTL[0]|= ADC14_MCTLN_Inch_1;// A1 ADC输入选择;Vref=AVCC
ADC14->IER0 || ADC14_IER0_IE0;//启用ADC连接完全中断

SCB->SCR &=~SCB_SCR_SLEEPONEXIT_MSK;//从ISR退出时唤醒

//确保SLEEPONEXIT立即生效
__DSB();

同时(1)

用于(I = 2万;I > 0;I--);//延迟

//开始采样/转换
ADC14->CTL0 || ADC14_CTL0_ENC | ADC14_CTL0_SC;
rawVolt = ADC14->MEM[0];
ADC_Volt =((3.3 * rawVolt)/(4096);
平均值=((1万 * rawVolt)/(4096)-(rawVolt)));
Steinhart =平均/ 1万;//(R/Ro)
Steinhart = log (Steinhart);// ln (R/Ro)
Steinhart /= 3950;// 1/B * ln (R/Ro)
Steinhart += 1.0 /(25 + 273.15);//+(1/to)
Steinhart = 1.0 / Steinhart;// Invert
Steinhart -= 273.15 ;//转换为C
温度C = Steinhart;
温度F =(Steinhart * 9.0)/ 5.0 + 32.0 ;

}
}

// ADC14中断服务例程
void ADC14_IRQHandler (void){
如果(ADC14->MEM[0]>= 0x7FF)// ADC12MEM0 = A1 > 0.5AVcc?
P2->OUT |= BIT4;// WFP 2.0 =4
否则
P2->out &=~BIT4;// WFP 2.0 =4
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jeffery,
    是否可以对无响应的设备执行出厂重置?
    您使用的芯片版本是什么?

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jeffery,
    我更仔细地看一下原始示例(dev.ti.com/.../)

    设置起始转换位后,您正在尝试立即从ADC转换存储器中读取数据。 您应该等到ISR得到服务,数据才生效。 这可能是一个更适用的示例:

    dev.ti.com/.../

    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chris,
    我正在使用RVE D。由于它无法连接到调试器,我无法执行出厂重置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jeffery,
    很抱歉耽误你的时间。 您仍应能够连接到DAP并执行出厂重置。 除非您已永久禁用出厂重置。 www.ti.com/.../slau575j.pdf

    此致,
    Chris