MSP430ADC转化失败的原因

本文记录了作者在使用MSP430F149进行ADC转换时遇到的问题及解决过程。作者尝试使用P6.0和P6.1口进行模数转换,但在多次尝试后发现结果始终不准确。最终通过检查最小系统板原理图找到了问题所在:这两口已被连接到10K的分压电阻,导致输入信号失真。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的我的一个项目中用到了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,每个插针的内部连接电路,这样才不容易出错。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值