跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. MD1_ADC测试到FIFO错位问题

MD1_ADC测试到FIFO错位问题

已定时 已固定 已锁定 已移动 YTM32B1M系列
1 帖子 1 发布者 419 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • HarlanH 离线
    HarlanH 离线
    Harlan YunTu
    写于 最后由 编辑
    #1

    问题说明:

    • 应用ADC FIFO时,ADC序列未转换完成也要清除FIFO的数据,否则会影响下一次的数据获取;

    问题分析

    • 芯片:MD1

    • 列表代码如同下图逻辑,在FOC运算时做软件组ADC转换;
      7c3f53ca-87a0-4811-aad0-9f9be327f332-image.png

    • 如果FOC运算时间较短,可能会导致软件组ADC未能全部转换完成,为保证FOC的时效性,软件不会对FIFO进行取值;

    • 虽然ADC组没有整体转换完成,但可能已经转换了个别通道,如果不对已转换过的ADC通道进行处理,理论上后续再取值时,会出现FIFO数据错位情况;

    • 正确逻辑:在判断到未转换完成时,如果要放弃本次转换数据,则应该也要将FIFO中数据清掉才较为合理;软件优化如下图:
      6ca69879-610c-425c-94b0-d7887b077e86-image.png

    • 通过上述优化,反复测试未再复现FIFO错位的问题;方案有效。

    特别注意

    • 在排查问题时,尝试重新开关ADC外设也解决不了问题,必须要清除FIFO才OK;

    • FOC应用中,ADC中断优先级一定要最高,ADC中断最好不要被轻易打断;(曾遇到客户移植恒润Autosar自动生成的CAN报文软件后,导致ADC FIFO值先错位,接着FIFO值不更新,后来排查到CAN报文软件内有开关全局中断,手动将相关指令屏蔽后,反复测试ADC正常)

    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    20
    demo
    20
    uds
    13
    lin stack
    10
    md14
    6
    fbl
    5
    yt-link
    5
    adc模块
    4
    Online Users
    FrankieF
    Frankie
    frankieqqF
    frankieqq
    ColinC
    Colin
    z123456111Z
    z123456111
    AlexzA
    Alexz
    HAIYANGH
    HAIYANG
    SelinhuangS
    Selinhuang
    PedroCaoP
    PedroCao
    majorM
    major
    车友车行车
    车友车行
    zhaodong1Z
    zhaodong1
    jinyiJ
    jinyi
    limanjiangL
    limanjiang
    yt0503Y
    yt0503
    runR
    run
    DerrickD
    Derrick
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门