Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all 3634 articles
Browse latest View live

数组元素需要输入的时候怎么写?

$
0
0

串口输入两个数A,B,新建一个含B个A的数的数组,请问在430的编程里怎么实现呢?谢谢大家?

int x;

int y[x]这样的我试了,编译没有错误,烧写进单片机里就卡死在这里了。谢谢


MSP430G2744 波特率问题咨询

$
0
0

MSP430G2744新申请的样品  出现一个很奇怪的问题,当配置修改了主频时钟 出现串口波特率变化,之前一直使用的这个芯片没有这个问题,那位大神知道啥原因啊 ?串口用的外部32.768晶振,新样品如下:默认时钟ok,

配置时钟后:

波特率变成8千多了

之前的提供的样品又是ok的:如下是换成之前的芯片的测试:

都是正规渠道拿到货,难道这次拿到是次品????????

msp430fr6047 相关法中的数字滤波器的问题

$
0
0

demo程序中数字滤波器由 “#define USS_ALG_FILT_IS_FILTER_ENABLED false ”来控制,默认为false关闭。此时测量到的静态时间差为-50~10ps,但当打开数字滤波后,时差变的很大,达到ns级别。USS_SW_LIB_APP_FILTER_COEFFICIENTS如下数组。

/* USS_filterCoeffs_4000000Hz */ \
{ 0x0000, 0xF68E, 0x0000, 0x037C, \
0x0000, 0x1714, 0x0000, 0xE229, \
0x0000, 0x2D64, 0x0000, 0xE229, \
0x0000, 0x1714, 0x0000, 0x037C, \
0x0000, 0xF68E, 0x0000, 0x0000 \
},

请问这个数组是如何计算得到的?是不是跟声道长度有关系?能不能提供一下打开数字滤波的demo程序。

MSP430FR6989如何增加检测距离

$
0
0

当前无磁水表方案采用MSP430FR6989MSP430FR5989,实际测试检测距离在4-5mm,通过什么样的方式可以增大检测距离至10mm?

MSP430FR6047量程比,滤波问题?

$
0
0

1、超声波水表方案采用MSP430FR6047,其量程比R值是多少?

2、在测试MSP430FR6047官方DEMO板,DEMO程序里有滤波但是未开启,自己开启后发现效果不如未开启好,查了很多文献,建议超声水表方案要采用滤波,如下为滤波参数,需要如何设置或是否要开启?

MSP430F6 XT1供电电源必须是AUXVCC3么

$
0
0

现在使用TI的MSP-TS430PZ板子进行测试.发现AUXVCC3连接VCC的情况下,XT1(ACLK测)能够持续发振

.如果AUXVCC3不连接VCC情况下, XT1(ACLK测)起振DCO稳定后, XT1就消失了,MCLK的频率也降下来了。

请问,XT1是必须由C供电的么?有没有什么地方可以设定不用AUXVCC3供电,只要有VCC就可以呢 ?

带EIS终端的电脑安装CCS

$
0
0

请问我的电脑上安装了EIS终端(绿盾加密软件),对CCS 8.2.0的安装和使用有什么影响吗?

我在工程中新添加一个.c和.h文件后,打开所有的内容都是乱码,并且编译不通过,bug信息是打不开源文件。请问有什么解决办法吗?

谢谢!

CCS8 找不到IPE 窗口

$
0
0

TI 达人:

           刚开始学习CCS 8,其中一个参考设计上用到#pragma DATA_SECTION(G_FIRMWARE_VERSION,".mysect01"),看Code Composer Studio™ IDE v8.x for MSP430™ MCUs手册中描述要对IPE窗口进行设置,按照文档要求Project → Properties → General → IPE. 但是我的CCS8.2中怎么也找不到!重新全部安装CCS8,后还是没有对应的窗口!CCS App Center 也找不到对应软件!我改如何处理呢?目前编译后一直有警告!写入和读取的数据也不对。

         工程为TIDA-00830_Software


自电容触摸按键结构问题

$
0
0

两种结构方式,从稳定性方面考虑,哪种更好一些?
1. PCB+2.4mm背光板+1.5mm钢化玻璃
2. 带LED的PCB + 弹簧 + 1.5mm钢化玻璃 (LED在弹簧中间)

MSP430FR 多通道ADC采样问题

$
0
0

最近在使用MSP430FR5969时,采用ADC进行采样,将ADC12_B_MEMORY_0设置为ADC12_B_MEMORY_1时无法进入终端,采用ADC12_B_MEMORY_0对采样通道进行切换测试均正常,请问对于多ADC采样应该怎样进行修改,程序如下:

采用官方例程进行了一些修改

//If ref generator busy, WAIT
while (Ref_A_isRefGenBusy(REF_A_BASE)) ;

//Select internal ref = 1.2V
Ref_A_setReferenceVoltage(REF_A_BASE,
REF_A_VREF1_2V);

//Turn on Reference Voltage
Ref_A_enableReferenceVoltage(REF_A_BASE);

//Initialize the ADC12B Module
/*
* Base address of ADC12B Module
* Use internal ADC12B bit as sample/hold signal to start conversion
* USE MODOSC 5MHZ Digital Oscillator as clock source
* Use default clock divider/pre-divider of 1
* Not use internal channel
*/
ADC12_B_initParam initParam = {0};
initParam.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_SC;
initParam.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC;
initParam.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1;
initParam.clockSourcePredivider = ADC12_B_CLOCKPREDIVIDER__1;
initParam.internalChannelMap = ADC12_B_NOINTCH;
ADC12_B_init(ADC12_B_BASE, &initParam);

//Enable the ADC12B module
ADC12_B_enable(ADC12_B_BASE);

/*
* Base address of ADC12B Module
* For memory buffers 0-7 sample/hold for 64 clock cycles
* For memory buffers 8-15 sample/hold for 4 clock cycles (default)
* Disable Multiple Sampling
*/
ADC12_B_setupSamplingTimer(ADC12_B_BASE,
ADC12_B_CYCLEHOLD_16_CYCLES,
ADC12_B_CYCLEHOLD_4_CYCLES,
ADC12_B_MULTIPLESAMPLESENABLE);

//Configure Memory Buffer
/*
* Base address of the ADC12B Module
* Configure memory buffer 0
* Map input A1 to memory buffer 0
* Vref+ = IntBuffer
* Vref- = AVss
* Memory buffer 0 is not the end of a sequence
*/
ADC12_B_configureMemoryParam configureMemoryParam = {0};
configureMemoryParam.memoryBufferControlIndex = ADC12_B_MEMORY_1;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A7;
configureMemoryParam.refVoltageSourceSelect = ADC12_B_VREFPOS_INTBUF_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFSEQUENCE;
configureMemoryParam.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE;
configureMemoryParam.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE;
ADC12_B_configureMemory(ADC12_B_BASE, &configureMemoryParam);

configureMemoryParam.memoryBufferControlIndex = ADC12_B_MEMORY_0;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A1;
configureMemoryParam.refVoltageSourceSelect = ADC12_B_VREFPOS_INTBUF_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFSEQUENCE;
configureMemoryParam.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE;
configureMemoryParam.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE;
ADC12_B_configureMemory(ADC12_B_BASE, &configureMemoryParam);

ADC12_B_clearInterrupt(ADC12_B_BASE,
0,
ADC12_B_IFG0|ADC12_B_IFG1
);

//Enable memory buffer 0 interrupt
ADC12_B_enableInterrupt(ADC12_B_BASE,
ADC12_B_IE0|ADC12_B_IE0,
0,
0);

__delay_cycles(75); // reference settling ~75us

while(1)
{
__delay_cycles(5000); // Delay between conversions

//Enable/Start sampling and conversion
/*
* Base address of ADC12B Module
* Start the conversion into memory buffer 0
* Use the single-channel, single-conversion mode
*/
ADC12_B_startConversion(ADC12_B_BASE,
ADC12_B_MEMORY_0 ,
ADC12_B_SINGLECHANNEL);
//LPM0, ADC10_ISR will force exit
__bis_SR_register(CPUOFF + GIE);
//For debug only
__no_operation();
}
}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC12_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(ADC12_VECTOR)))
#endif
void ADC12_ISR(void)
{
switch(__even_in_range(ADC12IV,12))
{
case 0: break; // Vector 0: No interrupt
case 2: break; // Vector 2: ADC12BMEMx Overflow
case 4: break; // Vector 4: Conversion time overflow
case 6: break; // Vector 6: ADC12BHI
case 8: break; // Vector 8: ADC12BLO
case 10: break; // Vector 10: ADC12BIN
case 14: // Vector 12: ADC12BMEM0 Interrupt
break; // Clear CPUOFF bit from 0(SR)
case 12: // Vector 14: ADC12BMEM1
Read_ADCValue[1] = ADC12_B_getResults(ADC12_B_BASE, ADC12_B_MEMORY_0);
Read_ADCValue[0] = ADC12_B_getResults(ADC12_B_BASE, ADC12_B_MEMORY_1);
__delay_cycles(1);
//Clear CPUOFF bit from 0(SR)
//Breakpoint here and watch ADC_Result
__bic_SR_register_on_exit(CPUOFF);
break;
case 16: break; // Vector 16: ADC12BMEM2
case 18: break; // Vector 18: ADC12BMEM3
case 20: break; // Vector 20: ADC12BMEM4
case 22: break; // Vector 22: ADC12BMEM5
case 24: break; // Vector 24: ADC12BMEM6
case 26: break; // Vector 26: ADC12BMEM7
case 28: break; // Vector 28: ADC12BMEM8
case 30: break; // Vector 30: ADC12BMEM9
case 32: break; // Vector 32: ADC12BMEM10
case 34: break; // Vector 34: ADC12BMEM11
case 36: break; // Vector 36: ADC12BMEM12
case 38: break; // Vector 38: ADC12BMEM13
case 40: break; // Vector 40: ADC12BMEM14
case 42: break; // Vector 42: ADC12BMEM15
case 44: break; // Vector 44: ADC12BMEM16
case 46: break; // Vector 46: ADC12BMEM17
case 48: break; // Vector 48: ADC12BMEM18
case 50: break; // Vector 50: ADC12BMEM19
case 52: break; // Vector 52: ADC12BMEM20
case 54: break; // Vector 54: ADC12BMEM21
case 56: break; // Vector 56: ADC12BMEM22
case 58: break; // Vector 58: ADC12BMEM23
case 60: break; // Vector 60: ADC12BMEM24
case 62: break; // Vector 62: ADC12BMEM25
case 64: break; // Vector 64: ADC12BMEM26
case 66: break; // Vector 66: ADC12BMEM27
case 68: break; // Vector 68: ADC12BMEM28
case 70: break; // Vector 70: ADC12BMEM29
case 72: break; // Vector 72: ADC12BMEM30
case 74: break; // Vector 74: ADC12BMEM31
case 76: break; // Vector 76: ADC12BRDY
default: break;
}
}

msp430f5438a遇到TimeA-CCR0捕获无法每次都触发DMA0传输的问题

$
0
0

DMA0的配置

  dmaAddr = (unsigned int) &CCR0Time[ChN];
  DMA0SZ = CCRX_NUM;
  __data16_write_addr((unsigned short) &DMA0SA,TA0CCR0_);                                    
  __data16_write_addr((unsigned short) &DMA0DA,dmaAddr); 
  DMACTL0 = DMA0TSEL_1;                      //(Ta0CCR0.IFG)
  DMACTL4 = DMARMWDIS ; 

  DMA0CTL = DMAEN + DMADT_0 + DMADSTINCR_3;

定时器配置

  TA0CCTL0 = CM_3 + CCIS_0 + SCS + CAP;    //TA0.0捕获
  TA0CCTL0 &=~(COV + CCIFG);
  P1SEL |= BIT1;

MCLK = 20M,SMCLK = 20M,捕获间断的信号,信号周期1us

现象:有时可以实现捕获,有时无法实现,没有任何捕获值。没有捕获值的情况往往伴随着cov的置位,请大家帮忙分析一下,谢谢!

请各位大神看看 ADS127L01EVM评估板问题出在哪里?

$
0
0

各位大神 我是正规渠道购买了ADS127L01EVM评估板  连接电脑后,打开PC软件,没有任何反应,能不能帮我看下是什么问题。

                               附件图片分别是板子上电后的状态,设备管理器和上位机软件的显示。

CCS7.3.0 如何生成bin文件

$
0
0

使用的是MSP432工程, build setting中已经做了更改但是还是没有生成bin 文件,请问我是少了哪里的设置么?

"$[CCS_INSTALL_ROOT]/utils/tiobj2bin/tiobj2bin" "${ProjName}" "${ProjName}.bin" "$[CG_TOOL_ROOT]/bin/armofd" "$[CG_TOOL_ROOT]/bin/armhex" "$[CCS_INSTALL_ROOT]/utils/tiobj2bin/mkhex4bin"

关于MSP430FR4133IPMR的LCD_E的LCDCAP0和LCDCAP1之间的电容问题咨询

$
0
0

各位大神好

       我用MSP430FR4133IPMR驱动LCD时,发现选用 internal charge pump时LCDCAP0和LCDCAP1之间的电容,电容按照数据手册推荐值0.1uF时,LCD出现屏目一直闪烁;当把这个LCDCAP0和LCDCAP1之间的电容增加到1uF时,闪屏问题消失。

问题如下:

1、在internal charge pump模式下LCDCAP0和LCDCAP1之间的电容的电源来源是什么?比如:DVCC或者external reference voltage VREF,EXT

2、将LCDCAP0和LCDCAP1之间的电容值由0.1uF增加到1uF,可以解决闪屏问题的原因是什么?

3、MSP430的LCD_C和LCD_E 的区别是什么?

MSP430FR6972手动复位失败

$
0
0

芯片:MSP430FR6972

IDE:IARforMSP6.30

问题:手动复位失败。

描述:

1.我把RST引脚短接到地发现程序没有复位,郁闷啊,为什么我强制复位不理我呀!!可能是什么原因啊!!!

2.RST复位电路按照手册上拉47K电阻下拉一个2.2nF电容,我照着做发现程序下载不进去呀,是因为FET不是正版的原因吗?后面没办法换成R=10K,C=0.1uF,能下载但是出现复位不管用的情况。这又是什么原因呢?

相关电路:

VDD_MSP=3.0V


USB-MSP430-FPA-GANG-JB和 MSP-GANG 能否通用??紧急

$
0
0

您好!

我之前使用的是USB-MSP430-FPA-GANG-JB,烧录的芯片是MSP430G2xx,但是我觉得这款产品还是不太好用。

请问MSP-GANG   这款可以代替USB-MSP430-FPA-GANG-JB的产品吗?

他们的区别是什么?可以告知我么?

如果确认可以通用的,我将购买MSP-GANG烧录器!

谢谢回复!!!!

EV2400 无法正常使用 非常着急

$
0
0

EV2400使用3个,其中2个可以正常使用,1个无法正常使用,正常连电脑使用,指示灯不亮,连板子无法通讯,另外两个盒子可以正常通讯,检查接线没有问题就是指示灯不亮,是什么原因导致的

MSP430FR2033 TLV 内容

$
0
0

请问hardware revision跟firmware revision在哪查?

MSP430FR2033的data sheet并未给出这两个值

MSP430功耗升高问题

$
0
0

芯片:MSP430FR6972

问题:

1.手动焊接了三块板子,烧写同一个程序,三块板子的功耗都不一样(25,35,45),一致性太差了,想知道这个能确定是PCB设计或者焊接问题吗?

2.两块板子都存在这样一个问题:刚开始功耗能降到8uA以下,但是过个1分钟的样子功耗上升到18uA之后就一直是这么多,这情况可能是什么原因导致的呢?

这情况是在没开射频模块功能的情况下产生的,开了射频模块程序也存在则个问题,刚复位时功耗能到25ua,但是过会也会上升上升到40ua左右。

 射频模块接收过程:

正常情况处在低功耗模式(睡眠时间:700ms,T1=1ms,T2=200ms),即睡眠700ms后,唤醒进入RX模式,T1时间内检测前导码,满足后进入T2检测同步码,都成功后停留在RX。

程序:

int main(void)
{
 WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗
 Indicator_FRAM_Init();  //初始化存储在FRAM的结构体
 Unused_GPIO_Init();   //全部GPIO初始化
 Power_Pin_Init();   //电源开关控制脚初始化
 Led_Init();     //LED GPIO初始化
 ADC_GPIO_Init();   //ADC GPIO初始化
 Turn_Bowl_Init();   //功能模块GPIO初始化
 CT_DET_Up();    //P4.6外部中断初始化
 BAT_DET_Down();    //P4.5外部中断初始化
 PJSEL0 |= BIT4 | BIT5;  //LFXTCLK
 PM5CTL0 &= ~LOCKLPM5;
 Clock_Init();    //ACLK=32.768KHz   MCLK=DCO=16MHz  SMCLK=1MHz
// RF_Init();     //射频模块初始化
 TimerA0_Init();    //定时器初始化
 Reset_Status_Detect();  //逻辑判断
 _EINT();     //使能中断开关
 Led_ON();
 DelayMs(20);
 Led_OFF();
 while(1)
 {
  {
   状态机;
  }
  LPM3;
 }
}
 射频模块接收过程:
正常情况处在低功耗模式(睡眠时间:700ms,T1=1ms,T2=200ms),即睡眠700ms后,唤醒进入RX模式,T1时间内检测前导码,满足后进入T2检测同步码,都成功后停留在RX。
#pragma vector=PORT3_VECTOR
__interrupt void Port_3(void)
{
 //射频接收中断
}
#pragma vector=PORT4_VECTOR
__interrupt void Port_4(void)
{
 //电压监控器触发中断
 //功能:满足条件后使能ADC模块工作

 
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer0_A0_ISR(void)
{
 //定时器,ACLK,秒计时
}
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
 //ADC采样中断,由定时器B0触发(1ms)。
 //CH0
}

SMBUS library for MSP430f 系列(MSP430f5172)

$
0
0

1. 在官网上面有找到MSP430 SMBUS Library(msp430_smbuslib_1_10_00_00),但研究了一下发现里面主要是给MSP430FR5xx_6xx和MSP430G2xx3使用,请问可以提供MSP430f5172 SMBUS libray吗?感谢!

2. msp430f5172 i2c 上接了一颗sensor, 如果再接上 bq40z50, 请问下SMbus和I2C设备同时使用是否会造成干扰?谢谢!!

Viewing all 3634 articles
Browse latest View live