找回密码
 立即注册
查看: 501|回复: 13

8G1K08A/DFN8 测量ADC 经常返回0结果。

[复制链接]
  • TA的每日心情
    无聊
    2024-2-14 08:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    4

    主题

    19

    回帖

    218

    积分

    中级会员

    积分
    218
    发表于 2023-8-17 16:15:08 | 显示全部楼层 |阅读模式

    测量两个通道:15 和 3

    ===================================
    用编程器供电时,稳定。没有任何问题。
    用示波器看VCC:


    用示波器看VCC

    用示波器看VCC

    数据稳定:第一个数是通道15;第二个数是通道3;后面的依次类推。

    数据稳定

    数据稳定


    =================================

    用外部供电,经过升压DC-DC,再经过LDO,供单片机:
    供电纹波比较大:

    外部供电

    外部供电

    数据不稳定:通道15或通道3,都出现GET_ADC返回0的情况,截取的这一小段数据,只在通道3出现了几个0,实际上,通道15和通道3都有相当多的,返回0的数据。

    ADC返回0

    ADC返回0


    ===========================================
    我认为取ADC得到0,尤其是对通道15取值,得到0。肯定是因为对芯片内部ADC供电的电源纹波太大导致的。
    这个0或很小数据,可能是内部ADC失败后,给出的结果,ADC转换结束,这个标志还是能够每次都给出的,并没有发现其他问题(比如“死等”)。
    ---------------------------------------------
    解决办法,肯定是解决纹波大的问题。
    问题是,
        对于,8G1K08A这个问题:ADC失败就返回0(还观察到有返回比0大一点的数据,所以0不是判断ADC失败的依据)。
        1 芯片是否能给出ADC失败标志?
        2 其他厂家单片机一般是怎样的?--因供电电源纹波大,是否也会导致内部ADC电路运行失败,给出0数值?是否有失败标志?
    回复 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-14 08:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    4

    主题

    19

    回帖

    218

    积分

    中级会员

    积分
    218
     楼主| 发表于 2023-8-17 16:32:19 | 显示全部楼层
    本帖最后由 main 于 2023-8-17 17:33 编辑

    纹波大引起ADC失败,内部失败是否有标志给出?

    改善纹波,※肯定※是解决办法。
    芯片内部ADC失败,也要有失败标志,才更安全。

    下面是只测量ADC15通道,按说这个通道很稳定不受外部干扰,应该每次测量都能得到一个值,但因为供电电源纹波大,让测量ADC15都有失败机会:
    ----------------------------------------------------------------------------------------------------------------------------------------
    把通道3注释掉,只观察通道15:

    注释掉通道3

    注释掉通道3

    大多数异常是数据 00,偶尔还会出现其他数据,比如这次出现的是 06

    标记异常数据

    标记异常数据


    芯片内部测量失败返回大多数情况是0,但偶尔会返回其他值,其他值也比较小。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9252

    回帖

    1万

    积分

    管理员

    积分
    13987
    发表于 2023-8-17 18:51:17 | 显示全部楼层
    将采样时间延长
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2929

    回帖

    6589

    积分

    超级版主

    积分
    6589
    发表于 2023-8-17 22:44:12 | 显示全部楼层
    ADC是模数混合IC,对电源纹波有要求,先将电源做好来,才是治本的方法。
    没有芯片能给出ADC失败标志,每次采样都对输入信号采样于采样电容中,转换时跟参考电压比较得到ADC值,每次转换都认为输入和参考电压是合法的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-14 08:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    4

    主题

    19

    回帖

    218

    积分

    中级会员

    积分
    218
     楼主| 发表于 2023-8-18 09:28:37 | 显示全部楼层

    时间已经都是最长了:
    1.     // 准备ADC       2+32+4+10=48 共48个ADC周期,ADC时钟是:2M/2/10,转换一次用时:0.48mS
    2.     ADC_Init_struct.ADC_AdjResult   = ADC_RIGHT_JUSTIFIED;  //ADC结果调整,        ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
    3.     ADC_Init_struct.ADC_Speed       = ADC_SPEED_2X10T;      //设置 ADC 工作时钟频率        ADC_SPEED_2X1T~ADC_SPEED_2X16T
    4.     ADC_Init_struct.ADC_CsSetup     = 1;                    //ADC 通道选择时间控制 0(默认),1
    5.     ADC_Init_struct.ADC_SMPduty     = 31;                   //ADC 模拟信号采样时间控制, 0~31(注意: SMPDUTY 一定不能设置小于 10)
    6.     ADC_Init_struct.ADC_CsHold      = 3;                    //ADC 通道选择保持时间控制 0,1(默认),2,3
    7.     ADC_Inilize(&ADC_Init_struct);
    复制代码
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-14 08:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    4

    主题

    19

    回帖

    218

    积分

    中级会员

    积分
    218
     楼主| 发表于 2023-8-18 09:37:28 | 显示全部楼层
    梁工 发表于 2023-8-17 22:44
    ADC是模数混合IC,对电源纹波有要求,先将电源做好来,才是治本的方法。
    没有芯片能给出ADC失败标志,每次 ...

    改善纹波,谈不上是“治本”的办法。
    纹波到什么程度就能保证100%不出问题,而不是99.9%就行了。
    第一次遇到ADC会失败并返回0或小数值的芯片,AVR/STM8/32/PIC/MSP430...都用过,似乎都没遇到过这种情况。

    点评

    我用了STC所有型号的ADC,都没遇到过问题。  详情 回复 发表于 2023-8-18 09:47
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2929

    回帖

    6589

    积分

    超级版主

    积分
    6589
    发表于 2023-8-18 09:47:29 | 显示全部楼层
    main 发表于 2023-8-18 09:37
    改善纹波,谈不上是“治本”的办法。
    纹波到什么程度就能保证100%不出问题,而不是99.9%就行了。
    第一次 ...

    我用了STC所有型号的ADC,都没遇到过问题。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-14 08:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    4

    主题

    19

    回帖

    218

    积分

    中级会员

    积分
    218
     楼主| 发表于 2023-8-18 10:03:12 | 显示全部楼层
    本帖最后由 main 于 2023-8-18 10:11 编辑
    梁工 发表于 2023-8-18 09:47
    我用了STC所有型号的ADC,都没遇到过问题。

    升压到十几伏给其他电路用,升压的同时,再用LDO降压到5V给8G1K08A供电,这样供电质量可能差点。
    刚刚,临时在芯片电源上并联一个钽电容,ADC15通道已经没有返回0的现象了。
    但ADC3通道还是有返回0现象(即使加了104小电容,也是这样)。

    点评

    大部分人对电源的重要性认识不足,电源相当于汽车的发动机(提供能源的),如果发动机本身就像拖拉机那样抖动不停,还时不时熄火停转,你想通过别的办法让汽车非常的稳定柔顺是不可能的。 我还真是那句话:将电源做  详情 回复 发表于 2023-8-18 12:31
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9252

    回帖

    1万

    积分

    管理员

    积分
    13987
    发表于 2023-8-18 12:17:25 | 显示全部楼层
    1.png
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9252

    回帖

    1万

    积分

    管理员

    积分
    13987
    发表于 2023-8-18 12:19:55 | 显示全部楼层
    建议合作伙伴用我们的核心版测试下我们 STC 的 ADC 的稳定性,
    提升下您对 您PCB/外围电源的反思


    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-1 11:25 , Processed in 0.085894 second(s), 72 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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