打印

向广大大牛咨询一个关于MSP430F6436ADC转换的问题

[复制链接]
1384|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我们公司正在做一个小项目:项目产品的功能、规格及问题点描述如下。
产品功能:采用MSP430F6436处理器,制作三个压电触摸按键,按键的材料是一种具有压电效应的压电薄膜(即对压电薄膜施加一定压力时,薄膜产生扭曲形变,随即产生电荷,电荷经电荷放大器放大后,转换为电压;不施加压力时,处于静态状态,无任何电荷、电量、电压产生),三个按键连接MSP430F6436的三个不同ADC输入引脚,在任意时刻按下某个按键时,显示出该按键的压力大小数据。
实现方法:采取轮询ADC输入口的方式,即,在某一时刻,只有一个按键所对应的ADC输入引脚有效,其他按键所对应的ADC输入引脚无效。ADC的采样转换方法为单通道单次采样。具体控制过程描述:当MSP430F6436轮询到某一个ADC输入引脚时,首先对ADC输入引脚进行切换,然后采用单通道单次采样对该ADC输入通道采样一次,采样时,main函数等待ADC中断服务程序完成,待完成之后,main函数再往下执行,采样完成后对采样数据和1000进行比较(因为有点工频干扰,所以设置了1000的门限值),如采样值大于等于1000,则进行5毫秒的延时消抖处理,5毫秒延时之后,接着再采用单通道单次采样对该ADC输入通道采样一次,若采样值还是大于等于1000,则认为是“有键按下”,紧接着对该ADC输入通道进行多次采样,采样率为5毫秒的单通道单次采样,直至所采集到的数据跌落至1000以下,采样期间,main函数等待ADC中断服务程序完成,待完成之后,main函数再往下执行;最后从多次采样到的数据中找出最大值,并转换为压力大小显示出来,最后一步,将ADC输入通道切换到下一通道。
三个ADC输入通道均按此方式进行处理,轮回循环。
问题点:
1、当从A键输入通道切换到B键输入通道时,而此时此刻不触按B键,但B键所对应的ADC输入通道却能采集到一个很大的数据,应经超出了1000的门限值,最大时有2000多的值;理论上讲,当B键没有任何触按时,除了工频干扰外,是没有其他信号输入的。从B键切换到C键时,C键也出现这样的情况。
2、执行ADC12_A_startConversion(ADC12_A_BASE, ADC12_A_MEMORY_0,ADC12_A_SINGLECHANNEL)这个函数时,会产生一个脉冲信号;该脉冲信号可以传输到相应的ADC输入引脚外面,该脉冲信号是否会影响ADC的采样值,脉冲信号是否作为ADC输入信号的一部分?
3、我原以为是通道轮询切换的问题,后来我采用了序列通道采样方式,问题更严重,在不对任何键按下时,ADC采样到的数据更是离谱。
  烦请TI的技术专家及广大网友提供帮助,谢谢~!附件是该项目的软件架构框图。

力度按键软件架构框图.pdf

54.61 KB

相关帖子

沙发
dirtwillfly| | 2013-10-8 10:19 | 只看该作者
不知道你的电路是怎么样的,有可能A键被按下时对B键有干扰的。

使用特权

评论回复
板凳
hustjitiejun| | 2013-10-10 09:55 | 只看该作者
AD高阻输入,是很容易受到干扰的,将AD输入通过一个10k电阻接地

使用特权

评论回复
地板
gaochy1126| | 2013-10-10 19:26 | 只看该作者
扫描么?

使用特权

评论回复
5
comeon201208| | 2013-10-11 23:07 | 只看该作者
我看还是AD采集的时候处理上的问题的,轮询查询的时候,的确是需要先怕官是哪个按键有效的

使用特权

评论回复
6
comeon201208| | 2013-10-11 23:07 | 只看该作者
楼主把你的硬件设计的原理图的部分的贴出来的,我帮你看下的吧

使用特权

评论回复
7
comeon201208| | 2013-10-11 23:08 | 只看该作者
现在的软件引荐上都不好确认的,硬件上可先用示波器看看采集之前的信号的

使用特权

评论回复
8
楚地潮人|  楼主 | 2013-10-12 14:18 | 只看该作者
谢谢各位的帮助,有个问题我忘了提示,那就是我们的信号源是压电薄膜材料,当对它施加压力的时候才会产生信号,而且产生的信号是较陡峭的尖峰,信号不是连续的;也就是说当没有键按下时,而内部软件扫描(轮询)到该ADC口时,该ADC口是不是处于悬空状态?这一点不很明白。
这两天也做了个试验,同样的软件代码,当我用三个信号发生器分别直接(即没有经过任何前端处理电路)对三个ADC口输入信号时(无论是方波、正弦波还是三角波),系统执行正常,采集到的数据正确,我在某一个引脚输入15mV的恒定电压,该引脚都能采样到26数量级左右的采样值(转换量化公式:N = 4095 *[(Vin - 0)/(Vref - 0)]),当我调节输入信号的幅度时,显示的力度级数也相应的改变。附件是硬件电路图。请大家帮助解决。

78.JPG (65.16 KB )

78.JPG

使用特权

评论回复
9
vivilzb1985| | 2013-10-13 22:52 | 只看该作者
楚地潮人 发表于 2013-10-12 14:18
谢谢各位的帮助,有个问题我忘了提示,那就是我们的信号源是压电薄膜材料,当对它施加压力的时候才会产生信 ...

回复楼主的,至于压电薄膜的,得学是你压一下的就会产生一个很尖的信号的,只需要检测这个信号的就可以的啦

使用特权

评论回复
10
vivilzb1985| | 2013-10-13 23:08 | 只看该作者
这不过压一下的,这个信号的后续的信号要回归到正常状态的还是需要些时间的

使用特权

评论回复
11
vivilzb1985| | 2013-10-13 23:10 | 只看该作者
这个跟材料有关系的,这是材料的电荷要回归到正常的位置的是需要一个时间过程的

使用特权

评论回复
12
楚地潮人|  楼主 | 2013-10-14 10:13 | 只看该作者
材料所产生的信号,没有太多的规律性,而时很窄的脉冲,时而很宽的脉冲,我在软件里也做了最大约50~100ms延时(反正是很多延时都做过),也做过在检测出力度以后,一直进行ADC采样,直至信号跌落至我设置的预值,再做通道切换,可是延时太长,又影响灵敏度,再说硬件电路板的干扰也很大。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

115

帖子

1

粉丝