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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. 客户需要MD ADC 16通道DMA配置问题?帮分析

客户需要MD ADC 16通道DMA配置问题?帮分析

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

    const dma_transfer_config_t adcTransferConfig = { .srcAddr = (uint32_t)&ADC0->FIFO,
    .destAddr = (uint32_t)&g_adc_result[0U],
    .destOffset = 0x02U,
    .srcOffset = 0x00U,
    .srcTransferSize = DMA_TRANSFER_SIZE_2B,
    .destTransferSize = DMA_TRANSFER_SIZE_2B,
    .srcModulo = DMA_MODULO_OFF,
    .destModulo = DMA_MODULO_OFF,
    .transferLoopByteCount = (SEQ_LEN * 2),
    .loopTransferConfig = &adcLoopTransferConfig,
    .destLastAddrAdjust = -(SEQ_LEN * 2),
    .interruptEnable = false };

    const dma_transfer_config_t adcTransferConfig1 = { .srcAddr = (uint32_t)&ADC0->FIFO,
    .destAddr = (uint32_t)&g_adc_result1[0U],
    .destOffset = 0x02U,
    .srcOffset = 0x00U,
    .srcTransferSize = DMA_TRANSFER_SIZE_2B,
    .destTransferSize = DMA_TRANSFER_SIZE_2B,
    .srcModulo = DMA_MODULO_OFF,
    .destModulo = DMA_MODULO_OFF,
    .transferLoopByteCount = (SEQ_LEN * 2),
    .loopTransferConfig = &adcLoopTransferConfig,
    .destLastAddrAdjust = -(SEQ_LEN * 2),
    .interruptEnable = false };

    DMA_DRV_ConfigLoopTransfer(0U, &adcTransferConfig);
    DMA_DRV_StartChannel(0U);
    ADC_DRV_ConfigConverter(0, &adc_config0);
    // DMA_DRV_ConfigLoopTransfer(1U, &adcTransferConfig);
    //DMA_DRV_StartChannel(1U);

    while (i--)
    {
        ADC_DRV_Start(ADC_INST);
        OSIF_TimeDelay(500);
        PRINTF("=======\r\n");
        for (uint8_t j = 0; j < SEQ_LEN; j++)
        {
            PRINTF("ADC0 CH %d=%d\r\n", j, g_adc_result[j]);
        }
    }
    	
    	
    	
    	DMA_DRV_ConfigLoopTransfer(1U, &adcTransferConfig1);
    DMA_DRV_StartChannel(1U);
    ADC_DRV_ConfigConverter(0, &adc_config1);
    i=2;	
    	while (i--)
    {
        ADC_DRV_Start(ADC_INST);
        OSIF_TimeDelay(500);
        PRINTF("=======\r\n");
        for (uint8_t j = 0; j < SEQ_LEN; j++)
        {
            PRINTF("ADC1 CH %d=%d\r\n", j, g_adc_result1[j]);[链接文本]([Adc_Dma_Demo.zip](https://yt-static-media.oss-cn-hangzhou.aliyuncs.com/nodebb/61/c9fbf02d-b42c-4f54-8b63-5c31de071c9f.zip) 链接地址)
        }
    }
    

    ADC0 CH 0=1884
    ADC0 CH 1=1906
    ADC0 CH 2=1892
    ADC0 CH 3=663
    ADC0 CH 4=4084
    ADC0 CH 5=4094
    ADC0 CH 6=4094
    ADC0 CH 7=4047

    ADC1 CH 0=0
    ADC1 CH 1=0
    ADC1 CH 2=0
    ADC1 CH 3=0
    ADC1 CH 4=0
    ADC1 CH 5=0
    ADC1 CH 6=0

    1 条回复 最后回复
    0
    • DigaD 离线
      DigaD 离线
      Diga
      在 回复了 Jacky_tan 最后由 编辑
      #5

      Jacky_tan
      YTM32B1MD14 ADC 一次转换最多只能转换8个通道,如果要使用 16 通道,可在转换完成一次 8 通道序列后,修改 DMA 配置,修改序列配置,以转换第二次 8 通道序列。

      代码如下图
      9255d6b2-cc5e-415d-96b8-250961b5bb13-image.png

      结果如图
      5e546afa-e7ed-4a3c-9b36-e1b2dc3a10ac-image.png

      1 条回复 最后回复
      0
      • DigaD 离线
        DigaD 离线
        Diga
        写于 最后由 编辑
        #2

        问题描述可以再详细一点。
        代码不好贴的话可以直接上传个压缩包

        Jacky_tanJ 1 条回复 最后回复
        0
        • Jacky_tanJ 离线
          Jacky_tanJ 离线
          Jacky_tan
          写于 最后由 编辑
          #3

          Adc_Dma_Demo 712p.zip

          1 条回复 最后回复
          0
          • Jacky_tanJ 离线
            Jacky_tanJ 离线
            Jacky_tan
            在 回复了 Diga 最后由 编辑
            #4

            Diga 在 客户需要MD ADC 16通道DMA配置问题?帮分析 中说:

            问题描述可以再详细一点。
            代码不好贴的话可以直接上传个压缩包

            已经提交附件,请查看。

            DigaD 1 条回复 最后回复
            0
            • DigaD 离线
              DigaD 离线
              Diga
              在 回复了 Jacky_tan 最后由 编辑
              #5

              Jacky_tan
              YTM32B1MD14 ADC 一次转换最多只能转换8个通道,如果要使用 16 通道,可在转换完成一次 8 通道序列后,修改 DMA 配置,修改序列配置,以转换第二次 8 通道序列。

              代码如下图
              9255d6b2-cc5e-415d-96b8-250961b5bb13-image.png

              结果如图
              5e546afa-e7ed-4a3c-9b36-e1b2dc3a10ac-image.png

              1 条回复 最后回复
              0
              • ,FrankieF Frankie 将这个主题转为问答主题
              • ,FrankieF Frankie 将这个主题标记为已解决

            • 云途开发生态介绍

              快速上手云途开发生态

            • 云途论坛规则/Yuntu Forum Rules

              发帖前请查看

            • YT CONFIG TOOL调查问卷

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

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

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