打印

PSOC AD模块使用的困惑

[复制链接]
1110|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuangcheng100|  楼主 | 2014-1-15 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.、最近使用CY24894这款芯片来进行采样,发现把一高电平加在其任意一个IO口上面,其他IO口悬空,但也采样,最后发现,没加高电平的IO得到的值也被拉高了,请问版主、大虾们知道这是什么因素引起的?PSOC 的BUS或者IO口间有容性东西?有办法解决?  
2、程序编写上面很简单,把BUS0/1相连,delsigADC的采样端通过PGA接到BUS0,依次接入相应IO进行采样。
沙发
jxin| | 2014-1-27 12:38 | 只看该作者
你是如何对没加高电平的IO进行采样的? 工程文件可以发上来吗?

使用特权

评论回复
板凳
kuangcheng100|  楼主 | 2014-2-6 11:26 | 只看该作者
jxin 发表于 2014-1-27 12:38
你是如何对没加高电平的IO进行采样的? 工程文件可以发上来吗?

和加高电平的方式是一样的,公司没法上传,这里把代码贴出:
    各个IO口进行采样的程序:
for(i = 0; i < MAX_CHIP_PIN; i++)
{
  
  Setting_IO_Status(ADC_Pin.Port, ADC_Pin.Pin, HIGH_IMPEDANCE_ANALOG, LOW, MUX);   // ADC_Pin connected to BUS
  sample = GetADdata();
  Setting_IO_Status(ADC_Pin.Port, ADC_Pin.Pin, HIGH_IMPEDANCE_ANALOG, LOW, UNMUX);  // ADC_Pin disconnected to BUS
  *p_UsbOutBuffer++ = sample & 0xFF;
  *p_UsbOutBuffer++ = (sample >> 8) & 0xFF;      
}
    AD代码:
unsigned int GetADdata(void)
{
    unsigned char i;
unsigned int Temp;
unsigned long DataSum =0;

for(i=0;i<5;i++)
{
  while((!DelSig_fIsDataAvailable())  && USBFS_INTERFACE_0_OUT_RPT_DATA[0] ==0xff);  
  Temp=DelSig_wGetDataClearFlag();
  if(i<4)
      continue;
  DataSum += Temp;
}
DataSum = DataSum;
    //DelSig_StopAD ();
    return DataSum;
}

使用特权

评论回复
地板
zgsxhzac| | 2014-2-26 13:42 | 只看该作者
怎么没下文了?说好的大神呢

使用特权

评论回复
5
sishangcine| | 2014-2-26 22:31 | 只看该作者
不懂 顶起 给你找大神

使用特权

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

本版积分规则

29

主题

72

帖子

0

粉丝