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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. SDK应用_MD14_ETMR触发PTU延时触发ADC转换

SDK应用_MD14_ETMR触发PTU延时触发ADC转换

已定时 已固定 已锁定 已移动 未解决 YTM32B1M系列
1 帖子 1 发布者 23 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • HAIYANGH 离线
    HAIYANGH 离线
    HAIYANG YunTu
    编写于 最后由 HAIYANG 编辑
    #1
    1. 前言
    • 需求1:在eTMR硬件触发后需要延时一段时间后再进行ADC采样;
    • 需求2:在一个etmr周期内需要多个硬件触发点且触发点需要自定义(不是mid或mod等位置)进行ADC采样;
    • 需求3:在etmr硬件触发ADC采样后使用DMA进行ADC数据的传输;

    基于以上需求,本demo 选用eTMR+PTU模块(可编程触发单元)+ADC+DMA的ADC采样方案,在eTMR模块计数开始时(即init trig)触发PTU工作,再通过PTU配置不同的通道进行不同的延迟时间触发ADC采样,最后使用DMA通道进行ADC采样数据的传输;
    PTU模块可以根据外部触发对ADC采样进行可编程的延时,PTU设置的延时时间结束后会自动触发ADC采样,PTU模块介绍如下图;
    0490e946-24d6-4847-8317-38c7b35a30a1-image.png
    2. 基础工程配置
    型号:YTM32B1MD14
    配置工具版本:3.0.0
    SDK版本:1_4_0
    2.1 功能要求
    以PWM频率为16Khz为例,则PWM周期值为1/16k=62.5us,如下任选三个触发点进行ADC采样,共采集3个通道:
    在PWM计数开始后延时3.34us,采集1次ADC电压
    在PWM计数开始后延时16.67us,采集1次ADC电压
    在PWM计数开始后延时41.67us,采集1次ADC电压
    2.2 配置eTMR模块
    MD14的FAST_BUS_CLK默认是120Mhz,分频配置为2分频(具体分频值根据频率进行计算,注意不能超过最大计数),配置eTMR在初始值时生成触发信号;
    531c4841-1b59-497d-b063-83a3b550c0a2-image.png
    配置输出16Khz的PWM;
    7afedc1b-9217-4f39-a25f-e3e85a8c2a47-image.png
    2.3 配置TMU模块
    配置TMU通道,一个触发通道,两个监控通道(后两个通道无实际用途,测试使用,实际项目可不配置);
    43dad203-36d9-49c8-8e48-5075ebc0de61-image.png
    2.4 配置PTU模块
    PTU时钟固定是FAST BUS CLOCK = 120M(详情参考IPC章节);
    由于PWM的频率是16K,周期是62.5us,且PTU的MOD值(计数值大值)为16位=65535,所以PTU时钟可以与etmr保持一致,这样每个cnt计数的时间也是一致的:
    故PTU配置如下:
    Prescaler divider = 2
    Multiplication factor = 1
    频率为:PTU_TIM = 120MHz /(21) = 60MHz,1个cnt计数值为:1/MHz = 0.0167us;
    1281cbd5-d96f-42ce-afbb-42f39bc7ab3f-image.png
    2.5 配置ADC模块
    ADC配置分为两套:中断方式和DMA方式;
    中断方式:配置3个采样通道,一次触发采一个通道,PWM一个周期共3次触发刚好采样3个ADC通道各一次,使用中断方式进行ADC读值;
    19a7632e-1057-4a48-8243-2ec678f34e90-image.png
    DMA方式:配置3个采样通道,每次触发采集整个序列即配置的全部3个通道,使用DMA方式进行ADC读值;
    59369e69-8fcf-4246-991b-ceaa0caadfe7-image.png
    3. 代码编写
    3.1 PTU通道属性配置
    3.1.1. 设计PTU总周期值
    PTU和etmr的时钟源都是Fast_bus,且配置的两者时钟分频值也一致,故两者单个cnt计数值相同;
    16Khz的PWM周期值为:1/16k = 62.5us
    PTU频率为:120MHz /(2
    1) = 60MHz
    单个CNT计数值为:1/60MHz = 0.0167us
    PTU总计数周期:62.5us/0.0167us = 3750 count,PTU周期和计时精度与eTMR保持一致
    3.1.2. 计算PTU通道延迟
    延时3.34us(ch0): 3.34us / 62.5us * 3750 = 200
    延时16.67us(ch1):16.67us / 62.5us * 3750 = 1000
    延时41.67us(ch2):41.67us / 62.5us * 3750 = 2500
    3.1.3. 配置PTU通道参数
    定义:PTU_PERIOD_COUNT = 3750
    定义:PTU_BASE_COUNT = 0,表示PWM的计数值起始值为0,与PWM的init计数值保持一致;
    定义:PTU_OFFSET_COUNT0 = 200,配置PTU_CH0从PTU接收eTMR的trigger到触发ADC采样的时间间隔
    定义:PTU_OFFSET_COUNT1 = 1000,配置PTU_CH1从PTU接收eTMR的trigger到触发ADC采样的时间间隔
    定义:PTU_OFFSET_COUNT2 = 2500,配置PTU_CH2从PTU接收eTMR的trigger到触发ADC采样的时间间隔
    d31a236a-bbbe-4aaf-99b8-b98d1ce93bdc-image.png
    3.2 PTU通道使能
    使能PTU通道0-2,配置工具无此配置项,需在工程中手动配置;
    4c243ff2-ea4b-48c8-9b27-e709378df2d6-image.png
    3.3 PTU模块初始化
    03f5af1b-04b6-411e-9e41-9bf98ad1f61f-image.png
    3.4 ADC两种方式配置介绍
    DMA方式:
    9dd33c20-276e-4b2f-b8b8-8617abbf3e92-image.png
    中断方式:
    3db7db5d-e1fc-4040-b1eb-655f0b4caf46-image.png
    4. 实验验证
    将代码下载进芯片,逻辑分析仪监测PWM(eTMR_CH0)、PTE10(TMU_OUT4)和PTE11(TMU_OUT5);

    • 运行中断方式代码:
      e30224e7-f904-494e-a569-89acad594055-image.png
      中断正常进入,采样值也可通过watch正常观测;
      7c37007a-d87e-4f87-9c2e-7fb445b2ba7a-image.png
      df6bc316-ce20-4c24-88e0-8346795ffe60-image.png
      通道2对应的是PWM的周期,16Khz;
      通道0对应的是eTMR初始化值的触发信号,每个周期开始时,即cnt=0时触发;
      通道1对应的是ADC通道转换完成信号,可以看到每个周期有三个完成信号,对应3个PTU延时通道配置;
      可以看到通道0到通道1第一和第三个信号之间的距离为4.17us和42.52us,与我们计算值的3.34us和41.67us都是0.85us的差值,属于正常测量误差,即我们的配置已经正常生效;
    • 运行DMA方式代码:
      68513c67-48af-4042-bd5e-a4ffcebed359-image.png
      代码正常运行,ADC采样结果持续刷新,不会进中断;
      c8ad5c13-702a-4942-a531-3f1e4f4e4fd4-image.png
      004dd9fb-2d86-40f7-b303-6267f8b6a0db-image.png
      同ADC中断方式观测结果:etmr每个周期都能触发一次trig信号给到PTU,每个etmr周期PTU都会有三个不同位置的延时触发ADC采样,与预期配置一致;
      可以看到通道0到通道1第一和第二个信号之间的距离为4.19us和17.52us,与我们计算值的3.34us和16.67us都是0.85us左右的差值,属于正常测量误差,即我们的配置已经正常生效;

    demo代码:PWM_ADC_HW_PTU_DMA.zip

    1 条回复 最后回复
    0
    • HAIYANGH HAIYANG 被引用 于这个主题

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

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

  • can
    25
    demo
    23
    lin stack
    13
    uds
    13
    md14
    6
    yt-link
    6
    fbl
    5
    adc模块
    4
    Online Users
    • 登录

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