4191|11

294

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【CH579M-R1】小试牛刀之ADC遇到的问题 [复制链接]

 
  本帖最后由 yangjiaxu 于 2020-12-27 23:41 编辑

感觉最近的进度有些慢了,近期应该加速了。最近疫情可能有些严重了,愿各位朋友都保护好自己,注意身体。

今天抽些时间把当时要做的项目分解一下,就搞了段ADC采样的代码,也是从例程里扒出来的。使用定时器,1秒采样20次。

部分代码如下:

void TMR0_IRQHandler( void )        // TMR0 定时中断
{
	UINT8 i;
    signed short  RoughCalib_Value = 0;		// ADC粗调偏差值
	
    if( TMR0_GetITFlag( TMR0_3_IT_CYC_END ) )
    {
        TMR0_ClearITFlag( TMR0_3_IT_CYC_END );      // 清除中断标志
				/* 单通道采样:选择adc通道9做采样,对应 PA0引脚, 带数据校准功能 */   
				PRINT( "\n2.Single channel sampling...\n");
				GPIOA_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_Floating);
				ADC_ExtSingleChSampInit( SampleFreq_4, ADC_PGA_0 );
				ADC_ChannelCfg( 9 );        
				for(i=0; i<20; i++)
				{
						abcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value;      // 连续采样20次
						ADC_DataCalib_Fine( &abcBuff[i], ADC_PGA_0 );
				}
				for(i=0; i<20; i++)
				{
						PRINT("%d ", abcBuff[i]);
				}PRINT("\n");
						
    }
}

代码可以正常运行,不过采样有误差。比如我接 3.3V的电源,采样得到的数据是4045.

接GND的时候理论上是0,不过实际是54。

不知道这块应该怎么解决,是不是我操作的问题,还是硬件的参考电压或者模拟部分有问题。今天就困扰我一下吧。暂时还没有找到问题。

 

最新回复

具体讲讲吧,我还不明白   详情 回复 发表于 2024-10-11 07:46

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

9794

帖子

24

TA的资源

版主

沙发
 

看看手册,ADC有没有校准功能

点评

是我自己搞错了,使用了校准,还多算了一次增益,去掉之后完全正常,感谢您的提示。  详情 回复 发表于 2020-12-30 23:01
有校准,不过不是这个问题,我去问了网上的技术支持,我今晚回去试试,说需要将PA5悬空,并且巴拉巴拉的我给忘记了,哈哈哈哈,不过我回家看看记录就记得了,后续补贴,把问题说明  详情 回复 发表于 2020-12-30 15:14
 
 
 

回复

1942

帖子

2

TA的资源

版主

板凳
 

是不是需要公式转换?这应该是10位ADC吧?

点评

手册写是12位的ADC,不过问题解决了   详情 回复 发表于 2020-12-30 22:57
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 

应该是0才对,我用过不少片子,没有印象接GND不是0,至少接近0

点评

是的,按理来说是0 实际并不是 感觉是我没操作好吧,我今晚回去尝试着改改  详情 回复 发表于 2020-12-30 15:15
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

5
 
本帖最后由 yangjiaxu 于 2020-12-30 23:01 编辑
littleshrimp 发表于 2020-12-28 09:03 看看手册,ADC有没有校准功能

有校准,不过应该不是这个问题,我去问了网上的技术支持,我今晚回去试试,说需要将PA5悬空,并且巴拉巴拉的我给忘记了,哈哈哈哈,不过我回家看看记录就记得了,后续补贴,把问题说明

 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

6
 
freebsder 发表于 2020-12-29 22:39 应该是0才对,我用过不少片子,没有印象接GND不是0,至少接近0

是的,按理来说是0 实际并不是 感觉是我没操作好吧,我今晚回去尝试着按网上技术支持的方法改改

 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

7
 

用STM32生成一个最小ADC例程测测看CH579M-R1的3.3和0

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

8
 
w494143467 发表于 2020-12-28 09:28 是不是需要公式转换?这应该是10位ADC吧?

手册写是12位的ADC,不过问题解决了 ,是我自己搞错了

点评

哈哈我也算错了,确实是12位的ADC。  详情 回复 发表于 2020-12-30 23:44
 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

9
 

经过技术人员的指点,是我自己失误导致出现了这个尴尬的事情,最后,把增益调整一下就好。

点评

具体讲讲吧,我还不明白  详情 回复 发表于 2024-10-11 07:46
 
 
 

回复

294

帖子

0

TA的资源

一粒金砂(高级)

10
 
littleshrimp 发表于 2020-12-28 09:03 看看手册,ADC有没有校准功能

是我自己搞错了,使用了校准,还多算了一次增益,去掉之后完全正常,感谢您的提示。

 
 
 

回复

1942

帖子

2

TA的资源

版主

11
 
yangjiaxu 发表于 2020-12-30 22:57 w494143467 发表于 2020-12-28 09:28 是不是需要公式转换?这应该是10位ADC吧? 手册写是12位的ADC ...

哈哈我也算错了,确实是12位的ADC。

 
 
 

回复

113

帖子

0

TA的资源

一粒金砂(中级)

12
 
yangjiaxu 发表于 2020-12-30 22:59 经过技术人员的指点,是我自己失误导致出现了这个尴尬的事情,最后,把增益调整一下就好。

具体讲讲吧,我还不明白

个人签名欲穷千里目 更上一层楼
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表