最近的我的一个项目中用到了MSP430F149的ADC转化,由于我需要两路模数转化,索性就使用了P6.0和P6.1口,按照User's Guide查寄存器,也参考了好多TI的官方例程,不管是单通道单次转化,还是多通道转化,结果一直都不正确,我反反复复修改了N遍程序,排除了任何可能出错的地方,可转化结果依然不对,尽管ADC的转化的特征曲线不是直线,但转化结果误差还是很大。我怀疑是430内部ADC的自身输入阻抗过小,在德州仪器的技术支持论坛上,TI总部的工程师也谈到过内部ADC的自身阻抗,在我更换了输入信号之后还是不成功。
由于我身边的朋友没有人会使用430,会的人也仅仅是Copy别人的程序,没有亲自写过ADC的程序。我不得不吐槽一句,我所在的整个机械与电子工程学院都没有几个人(还是研究生)能够熟练掌握430的人,他们不是采用51就是Arduino,设计到嵌入式操作系统,就采用树莓派(高校里面的自然科学基金项目竟然是采用这种方案结题)。市面上便携式仪器中很多都会用到超低功耗的430单片机,然而他们却还是停留在51单片机上,一些硕士毕业论文依然如此。所以我只能自己解决,因为实在没办法使用430内部的ADC,所以我使用了ADC0808这一款8位的模数转化芯片,根据时序图很容易写出了程序。但是这得耗费13个IO,我还是不甘心。
在我无意当中查看430的最小系统板的原理图时,偶然看到了原来板子上的P6.0和P6.1是已将连接到一个10K的分压电阻的,怪不得我每次输入一个信号,转化结果都不对。这下我终于找到看问题的原因所在,解决了困扰我好多天的疑惑。
这件事给我的教训是,在使用开发板做开发时,一定要仔细查看商家给的原理图,弄懂每个IO,每个插针的内部连接电路,这样才不容易出错。
关键字:MSP430 ADC 转化失败
引用地址:
MSP430ADC转化失败的原因
推荐阅读最新更新时间:2024-11-22 21:55
基于MSP430的无线传输协议
该协议基于在同一块MSP430上用串口1发射,串口0接收,使用两块无线收发的NRF401模块。 初始化串口0,用于接收 void init_UART0(void) { UCTL0 &= ~SWRST; UCTL0 |=CHAR;//0X10; UBR00 = 0x03; UBR10 = 0x00; UMCTL0 = 0x4A; UTCTL0 = SSEL0;//0X10; ME1 |= UTXE0+URXE0 ; //enable the UART0 IE1 |=URXIE0; P3SEL|=BIT4+BIT5; P3DIR|=BIT4; Clinet_Receive; } 初始化串口1,用于
[单片机]
基于MSP430F149的多功能测试仪表的设计
随着社会的发展,电子仪表的普及,原先大体积、高功耗功能单一的仪表已经逐步向手持低功耗多用途仪表发展,而TI就是低功耗芯片设计制造的佼佼者,该产品就是一款基于TI的MSP430单片机集低功耗、低成本、高精度、多功能、超便携于一身的新型数字仪表。它不仅集成了一般的数字万用表的基本功能,还具有简单的图形显示功能,能够对较低频率的波形进行时时测量及波形显示功能,方便工程师在实际中的使用,市场前景十分乐观。 1 结构设计 该系统以美国TI公司的低功耗16位单片机MSP430F149为核心,外部由分压网络、电压采集网络、恒流源测电阻网络、测频网络、液晶和USB上位机通信网络组成。核心A/D选择MSP430单片机内部集成的高精度逐次逼
[单片机]
基于51单片机和ADC0809的数字电压表设计
本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。 注:因为ADC0809的通道选择端口是使用插针,做出电路板后再用导线连起来的,在程序里也少了通道选择的语句,请注意一下。 一.原理图 二.仿真图 三.存储空间定义 (1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表所示。 (2)地址30H~39H存放显示在数码管上0~9的数。如表所示。 四.程序 程序可分为数据采
[单片机]
MSP430 G2553 基本时钟模块+ (Basic Clock Module+)
一、时钟源 MSP430的Basic Clock Module+支持的时钟源有: DCOCLK:内部数字控制振荡器,Internal digitally contrlled oscillator。所有MSP430芯片都有。 MSP430G2553的DCO支持的最大频率一般为16MHz,且保存了1MHz、8MHz、12MHz、16MHz四个频率的校正信息。 VLOCLK:内部超低功耗、低频振荡器,Internal very low power, low frequency oscillator,典型频率12kHz。所有MSP430芯片都有。使用方便,但精准性不是太高。 MSP430G2553的VLO频率在4kHz到20kHz之
[单片机]
最佳缓冲器-ADC组合
为使ADC配备最佳的驱动放大器(缓冲器),设计人员必须考虑阻抗匹配、电荷注入、噪声降低和输出精度等问题。ADC制造商常常为某个转换器推荐一种特定的放大器,但实用的组合应该与目标系统的要求相适应。必须考虑系统的整体性能,还有ADC的输入结构及其对缓冲器的影响。
面对A/D转换器的发展(包括不断提高的速度和分辨率,开关电容输入结构和单电源工作等),设计人员必须仔细考虑相关的驱动放大器(缓冲器)。缓冲器必须为驱动ADC输入提供一个低的信号源阻抗和足够的输出电流,而且缓冲器的高频输出阻抗必须足够的低,以避免带来转换误差。对于许多采样ADC,缓冲器还要对微弱信号进行放大。
噪声影响
理想情况下,运放信号源应该对ADC没有误差贡献
[半导体设计/制造]
详述ADC精度和分辨率的概念差异
在与使用模数转换器 (ADC) 的系统设计人员进行交谈时,我最常听到的一个问题就是: 你的16位ADC的精度也是16位的吗? 这个问题的答案取决于对分辨率和精度概念的基本理解。尽管是两个完全不同的概念,这两个数据项经常被搞混和交换使用。 该文详述了这两个概念间的差异,并将深入研究造成ADC不准确的主要原因。 ADC的分辨率被定义为输入信号值的最小变化,这个最小数值变化会改变数字输出值的一个数值。对于一个理想ADC来说,传递函数是一个步宽等于分辨率的阶梯。然而,在具有较高分辨率的系统中( 16位),传输函数的响应将相对于理想响应有一个较大的偏离。这是因为ADC以及驱动器电路导致的噪声会降低ADC的分辨率。 此外,如果DC电
[电源管理]
MSP430单片机串行写入BOOTSTRAP与加密熔断功能
引言 对于MSP430单片机的开发调试有多种技术方案,例如EPROM方式、OTP方式、仿真开发系统方式、JTAG和BOOTSTRAP方式。BOOTSTRAP(又名BootStrap Loader,简称BSL)可与另一种Flash仿真工具JTAG控制器配合使用。对于Flash型的MSP430单片机初期开发进行的仿真,只需要1台PC机和1个FET(Flash Emulator Tool)的JTAG控制器即可实现。进入产品级开发阶段,为了保护用户代码,烧断Flash的保护熔丝以后就无法再通过JTAG口访问单片机,这时用户对Flash中的程序再进行检查或更新就只能通过BOOTSTRAP进行。不用担心用户代码会泄露,BOOTSTRAP
[单片机]
关于逻辑分析仪在ADC及相关领域的应用
TWLA500在ADC及相关领域的应用 FAE:现场技术支持。给客户提 供你所销售产品应用上的技术支持,并对客户提出的质量问题进行处理。FAE与客户直接接触,在产品的应用和市场方向上有信息上的优势,很多时候FAE的表现决定了定单的成败。这个工作的重要性可见一斑。 在IC,通信等领域,新产品,新技术如雨后春笋般亮相在世人面前,如何让客户了解并掌握新技术和新产品的应用也就成了FAE的重要任务,一个完美的演示或许就能获得大批的定单,为自己带来巨大的经济效益。而FAE给客户演示必需的东西有一个就是演示板。 随着市场需求的增长,电子技术的发展,AD/DA的技术也得到了长足的进步。其应用范围也是越来越广泛,比比皆是
[测试测量]