msp430f5529中文资料 adc12 怎么测量高于2.5v的值

msp430f149 adc-学网-提供健康,养生,留学,移民,创业,汽车等信息
msp430f149 adc
有什么问题呢? 你要在数码管上显示的是正弦波的有效值吧? 按照有效值的定义,是指一个周期内所有采样点的方均根值。 因此,程序的关键是以下三点: 第一、采样频率必须... MSP430F149是TI第一代产品,贵且过时。 建议你还是切换到MSP430FRAM的平台或者MSP430G2xx平台。可以的,原理就是时分,通俗的讲就是各路轮流采样,然后分别处理,至于例程,你找本430单片机的书,他的AD模块讲解部分就有=0X40,然后在DC12CTL1 = SHP+CONSEQ_2;// 使用采样定时器语句后加上把ADC12MCTL0寄存器的INCH位改为0110的语句就可以了。你可以去看看ADC12MCTLx寄存器的... #define SHT0_0 (0*0x100u)//分频因子为N=0(此时无保持时间,无法运行) #define SHT0_1 (1*0x100u)//分频因子为N=8.8(对应采样频率为166k) #define SHT0_2 (2*0x100u)//分... 任意找到一组数据DIN(0:7)作为起始,保存到寄存器R1,然后以后连续把每一组数据都保存在R2与R1做比较,if(R1==R2) begin R3<=t1; end t1是计数器的从0开始计数的值,0时刻... 用外部中断 可以将采集的电压信号进行分压啊!之后在进行电压基准的选择! #define SHT0_0 (0*0x100u)//分频因子为N=0(此时无保持时间,无法运行) #define SHT0_1 (1*0x100u)//分频因子为N=8.8(对应采样频率为166k) #define SHT0_2 (2*0x100u)//...需要将一个10uF的电容和一个0.1uF的电容并联到它的输出端。而且使用的时候,打开发生器至少需要等待17ms以让参考电压达到一个稳定的值。 ADC的采样参考电压可以由...
您可能还关注:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
大类导航: |MSP430F5529 adc基准电压请教 - MSP430(TM)16 位超低功耗 MCU - 德州仪器在线技术支持社区
MSP430F5529 adc基准电压请教
发表于2年前
<input type="hidden" id="hGroupID" value="37"
大家好,今天写了ADC12A的程序,上午还转换得好好的,下午的时候弄着弄着突然就不行了,是基准电压设置问题,基准电压默认为3.3V就没事,但是只要设置ADC12CTL2 = ADC12RES_2 ;用内部基准电压后,只要有电压输入,不管输入多小,转换的值都是4095(12位),信号电压到0的时候是正常的。不知道大家有没有遇到过这种情况,希望大家指导下。下面是我的最简AD程序&/p>
&p>#include &msp430.h& &br>unsigned int AD_data = 0;&br>unsigned int AD_data_buf[8];&br>&br>/*&br>&* main.c&br>&*/&br>int main(void) {&br>&&& WDTCTL = WDTPW | WDTHOLD;&// Stop watchdog timer&br>&&& P6SEL |= BIT0 ;&/p>
&p>&br>&&& ADC12CTL2 = ADC12RES_2 ;&&& //我感觉问题在此&/p>
&p>&br>&&& ADC12CTL0 = ADC12ON + ADC12MSC + ADC12SHT0_0 + ADC12REFON ;&br>&&& ADC12MCTL0 |= ADC12SREF_1;&br>&&& ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2+ADC12SSEL_1;&/p>
&p>&&& for (i=0;i&0xFFFF;i++);&/p>
&p>&&&& ADC12IE = 0x01;&&&&&&&&&&&&&&&&&&&&&&&&&& // Enable ADC12IFG.0&br>&&&& ADC12CTL0 |= ADC12ENC;&br>&&&& _EINT();&br>&&&& ADC12CTL0 |= ADC12SC;&br>&&&& LPM3;&br>&&br>&return 0;&br>}&/p>
&p>#pragma vector = ADC12_VECTOR&br>__interrupt void ADC12ISR(void)&br>{&br>& AD_data = (ADC12MEM0_H*256)+ADC12MEM0_L;&br>&&&& for(i=7;i&0;i--){&br>&&&& &&&&AD_data_buf[i] = AD_data_buf[i-1];&br>&&&& &&&}&br>&&&& &&&AD_data_buf[0] = AD_&br>}&/p>&div style=&clear:&>&/div>" />
MSP430F5529 adc基准电压请教
此问题已被解答
All Replies
大家好,今天写了ADC12A的程序,上午还转换得好好的,下午的时候弄着弄着突然就不行了,是基准电压设置问题,基准电压默认为3.3V就没事,但是只要设置ADC12CTL2 = ADC12RES_2 ;用内部基准电压后,只要有电压输入,不管输入多小,转换的值都是4095(12位),信号电压到0的时候是正常的。不知道大家有没有遇到过这种情况,希望大家指导下。下面是我的最简AD程序
#include &msp430.h& unsigned int AD_data = 0;unsigned int AD_data_buf[8];/*&* main.c&*/int main(void) {&&& WDTCTL = WDTPW | WDTHOLD;&// Stop watchdog timer&&& P6SEL |= BIT0 ;
&&& ADC12CTL2 = ADC12RES_2 ;&&& //我感觉问题在此
&&& ADC12CTL0 = ADC12ON + ADC12MSC + ADC12SHT0_0 + ADC12REFON ;&&& ADC12MCTL0 |= ADC12SREF_1;&&& ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2+ADC12SSEL_1;
&&& for (i=0;i&0xFFFF;i++);
&&&& ADC12IE = 0x01;&&&&&&&&&&&&&&&&&&&&&&&&&& // Enable ADC12IFG.0&&&& ADC12CTL0 |= ADC12ENC;&&&& _EINT();&&&& ADC12CTL0 |= ADC12SC;&&&& LPM3;&&return 0;}
#pragma vector = ADC12_VECTOR__interrupt void ADC12ISR(void){& AD_data = (ADC12MEM0_H*256)+ADC12MEM0_L;&&&& for(i=7;i&0;i--){&&&& &&&&AD_data_buf[i] = AD_data_buf[i-1];&&&& &&&}&&&& &&&AD_data_buf[0] = AD_}
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
你好,zhiye Lai!
看完你的帖子之后,我认为:
1. 基准电压中的Vref未设置,需要到REF模块中设置。
2.中断服务程序尽量简单
// 声明全局变量
// 在主函数的开始部分初始化赋值
#pragma vector = ADC12_VECTOR__interrupt void ADC12ISR(void){& & & &AD_data_buf[ii++]&= (ADC12MEM0_H*256)+ADC12MEM0_L;
& & & &if(ii==8){
& & & & & & LPM4_EXIT; & // LPM4_EXIT;可以退出所有的低功耗模式,包括LPM3
慢工出细活
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
HI,Bilk Hellc
&&&& 谢谢!问题解决了,如你所说REFCTL0_L这个寄存器并没有设置好,怪我没看清楚!
&&&&&&还有个问题不知道你遇到过没,就是430中断嵌套的问题,我查过资料说进入中断后关闭总中断,如果要嵌套,则需要在中断中再开总中断,我试了一次,在优先级低的中断中开了总中断,然后停了在低优先级的中断中,但是发现并没有进入高优先级中断,一直停留在低优先级的中断中,不知道是否除了要开总中断外还需要哪些条件
You have posted to a forum that requires a moderator to approve posts before they are publicly available.MSP430F5528 | MSP430F5x/6x | MSP430 超低功耗 MCU | 描述与参数
MSP430F5528
(正在供货)
16 位超低功耗微处理器,具有 128KB 闪存、8KB RAM、USB 接口、12 位 ADC、2 个 USCI、32 位 HW MPY
&(英文內容)
&(英文內容)
&(英文內容)
In English
日本語表示
相关终端应用
Special NoteFor prototype samples please order the XMS430F5528IZQE.
The TI MSP430 family of ultra-low-power microcontrollers consists of several devices featuring peripheral sets targeted for a variety of applications. The architecture, combined with extensive low-power modes, is optimized to achieve extended battery life in portable measurement applications. The microcontroller features a powerful 16-bit RISC CPU, 16-bit registers, and constant generators that contribute to maximum code efficiency. The digitally controlled oscillator (DCO) allows the devices to wake up from low-power modes to active mode in 3.5 &s (typical). The MSP430F5529, MSP430F5527, MSP430F5525, and MSP430F5521 microcontrollers have integrated USB and PHY supporting USB 2.0, four 16-bit timers, a high-performance 12-bit analog-to-digital converter (ADC), two universal serial communication interfaces (USCI), a hardware multiplier, DMA, a real-time clock (RTC) module with alarm capabilities, and 63&I/O pins. The MSP430F5528, MSP430F5526, MSP430F5524, and MSP430F5522 microcontrollers include all of these peripherals but have 47 I/O pins. The MSP430F5519, MSP430F5517, and MSP430F5515 microcontrollers have integrated USB and PHY supporting USB 2.0, four 16-bit timers, two universal serial communication interfaces (USCI), a hardware multiplier, DMA, an RTC module with alarm capabilities, and 63&I/O pins. The MSP430F5514 and MSP430FF5513 microcontrollers include all of these peripherals but have 47 I/O pins. Typical applications include analog and digital sensor systems, data loggers, and others that require connectivity to various USB hosts.
Low Supply Voltage Range: 3.6 V Down to 1.8 V Ultra-Low Power Consumption Active Mode (AM): All System Clocks Active: 290 &A/MHz at 8 MHz, 3.0 V, Flash Program Execution (Typical) 150 &A/MHz at 8 MHz, 3.0 V, RAM Program Execution (Typical) Standby Mode (LPM3): Real-Time Clock (RTC) With Crystal, Watchdog, and Supply Supervisor Operational, Full RAM Retention, Fast Wake up: 1.9 &A at 2.2 V, 2.1 &A at 3.0 V (Typical) Low-Power Oscillator (VLO), General-Purpose Counter, Watchdog, and Supply Supervisor Operational, Full RAM Retention, Fast Wake up: 1.4 &A at 3.0 V (Typical) Off Mode (LPM4): Full RAM Retention, Supply Supervisor Operational, Fast Wake up: 1.1 &A at 3.0 V (Typical) Shutdown Mode (LPM4.5): 0.18 &A at 3.0 V (Typical) Wake up From Standby Mode in 3.5&&s (Typical) 16-Bit RISC Architecture, Extended Memory, up to 25-MHz System Clock Flexible Power Management System Fully Integrated LDO With Programmable Regulated Core Supply Voltage Supply Voltage Supervision, Monitoring, and Brownout Unified Clock System FLL Control Loop for Frequency Stabilization Low-Power Low-Frequency Internal Clock Source (VLO) Low-Frequency Trimmed Internal Reference Source (REFO) 32-kHz Watch Crystals (XT1) High-Frequency Crystals up to 32 MHz (XT2) 16-Bit Timer TA0, Timer_A With Five Capture/Compare Registers 16-Bit Timer TA1, Timer_A With Three Capture/Compare Registers 16-Bit Timer TA2, Timer_A With Three Capture/Compare Registers 16-Bit Timer TB0, Timer_B With Seven Capture/Compare Shadow Registers Two Universal Serial Communication Interfaces USCI_A0 and USCI_A1 Each Support: Enhanced UART Supports Automatic Baud-Rate Detection IrDA Encoder and Decoder Synchronous SPI USCI_B0 and USCI_B1 Each Support: I2C Synchronous SPI Full-Speed Universal Serial Bus (USB) Integrated USB-PHY Integrated 3.3-V and 1.8-V USB Power System Integrated USB-PLL Eight Input and Eight Output Endpoints 12-Bit Analog-to-Digital Converter (ADC) (MSP430F552x Only) With Internal Reference, Sample-and-Hold, and Autoscan Feature Comparator Hardware Multiplier Supports 32-Bit Operations Serial Onboard Programming, No External Programming Voltage Needed Three-Channel Internal DMA Basic Timer With RTC Feature
查看更多内容
相关终端应用 (49)
特色工具和软件
(评估模块和开发板)
(评估模块和开发板)
WEBENCH& Designer MSP430F5528
Ambient Temp
Non-volatile Memory (KB)
Comparators
Timers - 16-bit
Timers - 32-bit
Multiplier
Active Power (uA/MHz)
Standby Power (LPM3-uA)
Wakeup Time (us)
Additional Features
Special I/O
Operating Temperature Range
Package Group
Package Size: mm2:W x L (PKG)
MSP430F5528
ADC12 - 10ch&
ADC12 - 14ch&
ADC12 - 10ch&
ADC12 - 10ch&
ADC12 - 14ch&
ADC12 - 10ch&
ADC12 - 14ch&
ADC12 - 14ch&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
USB Real-Time Clock Watchdog Temp Sensor Brown Out Reset IrDA&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
-40 to 85&
BGA MICROSTAR JUNIOR DSBGA VQFN&
BGA MICROSTAR JUNIOR VQFN&
BGA MICROSTAR JUNIOR VQFN&
BGA MICROSTAR JUNIOR DSBGA VQFN&
BGA MICROSTAR JUNIOR DSBGA VQFN&
See datasheet (DSBGA)&
80BGA MICROSTAR JUNIOR: 25 mm2: 5 x 5(BGA MICROSTAR JUNIOR) 64VQFN: 81 mm2: 9 x 9(VQFN)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
80BGA MICROSTAR JUNIOR: 25 mm2: 5 x 5(BGA MICROSTAR JUNIOR) 64VQFN: 81 mm2: 9 x 9(VQFN)&
See datasheet (DSBGA)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
See datasheet (DSBGA)&
80LQFP: 196 mm2: 14 x 14(LQFP)&
80LQFP: 196 mm2: 14 x 14(LQFP)&基于L1602液晶显示和msp430f5529 ADC12的信号采集器程序
<em style="color:#999;font-size:12 margin-left:10" id="authorposton15-8-1 13:50:42&nbsp
基于L1602液晶显示和msp430f5529 ADC12的信号采集器程序
楼主的描述也太简单了吧 啥要求都没说 自己的思路也不说
好想看一下啊好想看一下啊好想看一下啊好想看一下啊
说详细点好不好
应该找的到例程吧
楼主太坑啦
描述也太简单了 要求没说,思路整理下发上来吧
楼主 有没有mps430g的相关程序 ?
什么都没有啊,这几天我已经进来n次了
kankan,tixuyaiyong
楼主是水贴的?
woxiangshuochengxune!!!!
站长推荐 /6
Powered by21ic官方微信-->
后使用快捷导航没有帐号?
查看: 3414|回复: 1
msp430f5529 adc12 检测电压范围问题
&&未结帖(20)
主题帖子积分
资深技术员, 积分 474, 距离下一级还需 26 积分
资深技术员, 积分 474, 距离下一级还需 26 积分
主题帖子积分
专家等级:结帖率:4%
主题帖子积分
资深技术员, 积分 474, 距离下一级还需 26 积分
资深技术员, 积分 474, 距离下一级还需 26 积分
在AD检测时, 当引脚的电压低于参考电压的一半时,检测值一直是参考值的一半,比如用的2.5的内部参考电压,当电压低于1.25V时检测的电压一直是1.25;&&
下面是MSP430的AD部分代码,麻烦查看下是否有问题?
void luce_drv_msp_adc_init(void)
&&/* Enable A/D channel A1 A3*/
&&P6SEL |= (BIT1 | BIT3);
&&/*Reset REFMSTR to hand over control to ADC12_A ref control registers*/
&&REFCTL0 &= ~REFMSTR;& && && && && && &&&
& && && && && && && && && && && && && && &&&
&&/* Turn on ADC12, set sampling time*/
&&ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12MSC+ADC12REFON+ADC12REF2_5V;
&&/* set multiple sample conversion*/
&&/* Use sampling timer,slecet smclk set mode*/
&&ADC12CTL1 = ADC12SHP+ADC12SSEL_3+ADC12CONSEQ_3;
&&/*&&VR+ = VREF+ and VR. = AVSS, channel = A1*/
&&ADC12MCTL0 = ADC12SREF_1+ADC12INCH_1;
&&/*&&VR+ = VREF+ and VR. = AVSS, channel = A3, end seq. */
&&ADC12MCTL1 = ADC12SREF_1+ADC12INCH_3+ADC12EOS;
&&/* Enable ADC12IFG.1*/
&&//ADC12IE = 0x02;& && &
& &/* Enable conversions*/
&&//ADC12CTL0 |= ADC12ENC;
& &/* Start conversion*/
&&//ADC12CTL0 |= ADC12SC;& && && && && &
void luce_drv_msp_adc_enable(void)
& &&&/* Enable ADC12IFG.1*/
& &&&ADC12IE = 0x02;& && &&&
& &&&/* Enable conversions*/
& &&&ADC12CTL0 |= ADC12ENC;& &
& &&&/* Start conversion*/
& &&&ADC12CTL0 |= ADC12SC;& && && && && && && &
ADC中断连续取8次值取平均值
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
&&static unsigned char index = 0;
&&switch(__even_in_range(ADC12IV,34))
&&case&&0:& && && && && && && && && &/* Vector&&0:&&No interrupt*/
&&case&&2:& && && && && && && && && &/* Vector&&2:&&ADC overflow*/
&&case&&4:& && && && && && && && && &/* Vector&&4:&&ADC timing overflow*/
&&case&&6:& && && && && && && && && &/* Vector&&6:&&ADC12IFG0*/
&&case&&8:& && && && && && && && && && && & /* Vector&&8:&&ADC12IFG1*/
& & uiBattVoltResults[index] = ADC12MEM0;& && && && & /* Move results*/
& & uiD5VSBVoltResults[index] = ADC12MEM1;&&
& & index++;& && && && && && && && && && &&&/* Increment results index, Set Breakpoint1 here*/
& & if (index &= 8)& && && && && && && && && &/*8次检测完后清中断,停止ADC,置完成标志*/
& && &index = 0;
& && &ADC12IE = 0x00;
& && &ADC12IFG = 0x00;
& && &ADC12CTL0 &= ~( ADC12ENC | ADC12SC );& && && && && && &&&/* Disable conversions & Stop conversion*/
& && &ucBattCheckFlag = LUCE_DRV_MSP_ADC_CHECKED;
&&case 10:& && && && && && && && && &/* Vector 10:&&ADC12IFG2*/
&&case 12:& && && && && && && && && &/* Vector 12:&&ADC12IFG3*/
&&case 14:& && && && && && && && && &/* Vector 14:&&ADC12IFG4*/
&&case 16:& && && && && && && && && &/* Vector 16:&&ADC12IFG5*/
&&case 18:& && && && && && && && && &/* Vector 18:&&ADC12IFG6*/
&&case 20:& && && && && && && && && &/* Vector 20:&&ADC12IFG7*/
&&case 22:& && && && && && && && && &/* Vector 22:&&ADC12IFG8*/
&&case 24:& && && && && && && && && &/* Vector 24:&&ADC12IFG9*/
&&case 26:& && && && && && && && && &/* Vector 26:&&ADC12IFG10*/
&&case 28:& && && && && && && && && &/* Vector 28:&&ADC12IFG11*/
&&case 30:& && && && && && && && && &/* Vector 30:&&ADC12IFG12*/
&&case 32:& && && && && && && && && &/* Vector 32:&&ADC12IFG13*/
&&case 34:& && && && && && && && && &/* Vector 34:&&ADC12IFG14*/
&&default:
/*计算电池的平均电压值*/
& & for( ucIndex=0; ucIndex & Num_of_R ucIndex++ )
& && &uiBattNowVolt+= uiBattVoltResults[ucIndex];
& && &uiD5VSBNowVolt+= uiD5VSBVoltResults[ucIndex];
& && &luce_drv_msp_debug_printf(&ADC uiBattVoltResults=0x&, uiBattVoltResults[ucIndex]);
& & g_uiBattVoltValue&&= (((unsigned long)( uiBattNowVolt/8)*ADC_REFER_VOLTAGE)/0xFFF)*ADC_BATT_VOLTAGE_MULT;
g_uiD5VSBVoltValue = (((unsigned long)( uiD5VSBNowVolt/8)*ADC_REFER_VOLTAGE)/0xFFF)*ADC_5VSB_VOLTAGE_MULT;
ADC_BATT_VOLTAGE_MULT&&为11分压倍数
ADC_REFER_VOLTAGE&&为参考电压现在值为2.43V
当电压低于13.78V时测的值一直是 13.78& & uiBattNowVolt/8=0x0840
主题帖子积分
中级工程师, 积分 4530, 距离下一级还需 470 积分
中级工程师, 积分 4530, 距离下一级还需 470 积分
主题帖子积分
专家等级:结帖率:57%
主题帖子积分
中级工程师, 积分 4530, 距离下一级还需 470 积分
中级工程师, 积分 4530, 距离下一级还需 470 积分
引脚电压高于参考电压的一半时,检测电压依然是参考电压的一半吗?
另外,引脚的电压都是用万用表测量的吗?
邮箱:.cn GD32超级QQ群:
专业支持,用心服务。.cn
GD32零售地址:
涓涓之细流
发帖类勋章
突出贡献奖章
等级类勋章
技术导师奖章
人才类勋章
时间类勋章
沉静之湖泊
发帖类勋章

我要回帖

更多关于 msp430f5529例程 的文章

 

随机推荐