天嵌 ARM开发社区

 找回密码
 注册
查看: 2069|回复: 4

TQ210 ADC

[复制链接]
js_gary 发表于 2015-1-20 21:44:37 | 显示全部楼层 |阅读模式

int read_adc(int ch)
{
  // 使能预分频功能,设置A/D转换器的时钟 = PCLK/(65+1)
        TSADCCON0 = (1<<16)|(1 << 14) | (65 << 6);
  // 清除位[2],设为普通转换模式,禁止read start
        TSADCCON0 &= ~((1<<2)|(1<<1));       
        // 选择通道
        ADCMUX = 1; //ch
  // 设置位[0]为1,启动A/D转换
  TSADCCON0 |= (1 << 0);
  // 当A/D转换真正开始时,位[0]会自动清0
  while (TSADCCON0 & (1 << 0));
  // 检测位[15],当它为1时表示转换结束
  while (!(TSADCCON0 &  (1 << 15)) );
  // 读取数据
  return (TSDATX0 & 0xfff);
}



void adc_test(void)
{
        printf("\r\n##################adc test################\r\n");
        while(1)
        {
                printf("adc = %d\r\n",read_adc(1));
                delay(0x100000);
        }
}

请教天嵌工程师,按210手册和TQ210开发板原理图配置好后,一直没有数据显示,不知道那里配置不对,还是你们开发板有什么地方需要特点配置才能工作,在read_adc里debug发现while (TSADCCON0 & (1 << 0));一直退不出来,说明ADC转换没有启动。然后我用你们自带的ADC测试程序是可以测试,并且改变可调电阻AIN1的值能正常变化,说明硬件应该没问题。期待回复,谢谢。
 楼主| js_gary 发表于 2015-1-22 09:15:37 | 显示全部楼层
自己顶下
怎么没有人回复呢
 楼主| js_gary 发表于 2015-1-22 17:06:59 | 显示全部楼层
有人调试过吗
 楼主| js_gary 发表于 2015-1-22 17:10:09 | 显示全部楼层
       

int read_adc(int ch)
{
  // 使能预分频功能,设置A/D转换器的时钟 = PCLK/(65+1)
        TSADCCON1=(1<<17)| (1<<16)|(1 << 14) | (65 << 6);
  // 清除位[2],设为普通转换模式,禁止read start
        TSADCCON1 &= ~((1<<2)|(1<<1));        
        // 选择通道
        ADCMUX = 1; //ch
  // 设置位[0]为1,启动A/D转换
  TSADCCON1 |= (1 << 0);
  // 当A/D转换真正开始时,位[0]会自动清0
  while (TSADCCON1 & (1 << 0));
  // 检测位[15],当它为1时表示转换结束
  while (!(TSADCCON1 &  (1 << 15)) );
  // 读取数据
  return (TSDATX1 & 0xfff);
}
改用这组寄存器,问题是一样的
天嵌科技游客
天嵌科技游客  发表于 2015-1-27 12:12:23
没有人在TQ210上做这个裸机程序吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-4 06:39 , Processed in 1.062500 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表