查看: 16647|回复: 29

[S32] S32K144 ADC采样数据用DMA传输

[复制链接]
  • TA的每日心情

    2017-12-27 08:01
  • 签到天数: 45 天

    [LV.5]常住居民I

    6

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    283
    最后登录
    2018-1-15
    发表于 2017-8-22 11:21:10 | 显示全部楼层 |阅读模式
    大家好,这边有一个问题,目前我想要使用DMA来传输ad采样的数据。
    具体情况是这样的,我现在是按照一定的频率采样,等采样满100个数据然后就使用DMA来将数据从外设传到内存中去,
    我使用PE来配置,但是一直没有办法调试成功,不知有没有哪位也做过同样的操作,求指导,万分感谢!
    我知道答案 目前已有29人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    10

    主题

    64

    帖子

    0

    注册会员

    Rank: 2

    积分
    176
    最后登录
    2021-6-16
    发表于 2017-10-30 08:38:17 | 显示全部楼层
    seaaa 发表于 2017-9-7 19:06
    总算全部搞定,

    这个调了好久没调好,楼主能发一个ADC和DMA配合使用例程吗,非常感谢!
    1210065487@qq.com
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20071
    最后登录
    2024-4-29
    发表于 2017-8-22 13:40:59 | 显示全部楼层
    楼主你好。
    通常都是ADC采集好后直接放到DMA然后传输到具体的目的地址去。
    如果你等收集好100个放到buffer中之后,再统一使用DMA传输,也不太能体现DMA的优势了。
    所以你可以把DMA的源地址配置为ADC的结果寄存器地址,DMA的目的地址配置为你想要放的地址。
    然后使用ADC转换完成去触发DMA传输。
    关于代码,建议你看看S32K IDE按照目录下关于S32K的DMA代码,然后再尝试修改。
    C:\nxp\S32DS_ARM_v1.3\S32DS\S32SDK_S32K144_RTM_1.0.0\examples\S32K144\driver_examples\system\edma_transfer
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-12-27 08:01
  • 签到天数: 45 天

    [LV.5]常住居民I

    6

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    283
    最后登录
    2018-1-15
     楼主| 发表于 2017-8-22 13:48:41 | 显示全部楼层
    小恩GG 发表于 2017-8-22 13:40
    楼主你好。
    通常都是ADC采集好后直接放到DMA然后传输到具体的目的地址去。
    如果你等收集好100个放到buffer ...

    版主你好,这边ADC转换完成触发DMA的条件是什么,示例代码我看过了,也仿照写了一下,但是我这边并没有成功,不知道是DMAMUX配置的问题还是DMA配置的问题,还有就是利用DMA传输时我的AD应该是怎么配置的,如果版主有时间,请给我一些知道,不胜感激
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20071
    最后登录
    2024-4-29
    发表于 2017-8-22 15:28:10 | 显示全部楼层
    本帖最后由 小恩GG 于 2017-8-23 08:53 编辑
    guxiaosang 发表于 2017-8-22 13:48
    版主你好,这边ADC转换完成触发DMA的条件是什么,示例代码我看过了,也仿照写了一下,但是我这边并没有成 ...

    好的,我回头先帮你到我们S32K FAE那边找看看,看他们是否有现成的例子给你参考。
    如果没有,等我空下来,我帮你仔细查看。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-12-27 08:01
  • 签到天数: 45 天

    [LV.5]常住居民I

    6

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    283
    最后登录
    2018-1-15
     楼主| 发表于 2017-8-22 15:55:06 | 显示全部楼层
    小恩GG 发表于 2017-8-22 15:28
    好的,我回头先帮你到我们S23K FAE那边找看看,看他们是否有现成的例子给你参考。
    如果没有,等我空下来 ...

    嗯嗯,那麻烦你了,我们这边也挺急的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20071
    最后登录
    2024-4-29
    发表于 2017-8-25 11:26:58 | 显示全部楼层
    guxiaosang 发表于 2017-8-22 13:48
    版主你好,这边ADC转换完成触发DMA的条件是什么,示例代码我看过了,也仿照写了一下,但是我这边并没有成 ...

    楼主你好!
    刚碰到汽车的FAE,帮你问了下,没有现成的DMA结合ADC代码,所以还是需要在现有的DMA代码基础上修改。
    如果在ADC模块那边配置DMA触发的话,ADC转换完成的标志会自动去触发DMA传输的。前提是DMA也配置好。
    关于DMA的配置,代码是现场的,但是关于ADC的DMA配置,我觉得你仍然可以参考ADC的代码,然后读下S32K的参考手册,ADC章节,把ADC章节中关于DMA的寄存器触发使能,然后再试下。
    你可以先尝试修改下,如果还是不成功,我们再继续交流!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-12-27 08:01
  • 签到天数: 45 天

    [LV.5]常住居民I

    6

    主题

    65

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    283
    最后登录
    2018-1-15
     楼主| 发表于 2017-8-25 15:27:37 | 显示全部楼层
    小恩GG 发表于 2017-8-25 11:26
    楼主你好!
    刚碰到汽车的FAE,帮你问了下,没有现成的DMA结合ADC代码,所以还是需要在现有的DMA代码基础 ...

    版主你好,ADC采样利用DMA传输,这个问题这边已经解决了,现在有一个新问题,不知道您了解吗?
    我这边想利用PDB硬件触发ADC定时采样,然后利用DMA来直接传输数据,但是这边我对PDB不是很了解,不知道您这边能否对PDB做一个说明,或者有没有现成的PDB硬件触发ADC采样的代码
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20071
    最后登录
    2024-4-29
    发表于 2017-8-25 15:41:53 | 显示全部楼层
    guxiaosang 发表于 2017-8-25 15:27
    版主你好,ADC采样利用DMA传输,这个问题这边已经解决了,现在有一个新问题,不知道您了解吗?
    我这边想 ...

    你好。
    PDB是可编程延迟模块,可以提供从内部/外部触发源、可编程间隔到A/D转换的硬件触发。
    关于例程,我们是有现成的PDB触发ADC的代码的:
    C:\nxp\S32DS_ARM_v1.3\S32DS\S32SDK_S32K144_RTM_1.0.0\examples\S32K144\driver_examples\analog\adc_hwtrigger
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    21
    最后登录
    2018-9-19
    发表于 2017-9-6 15:30:45 | 显示全部楼层
    小恩GG 发表于 2017-8-25 15:41
    你好。
    PDB是可编程延迟模块,可以提供从内部/外部触发源、可编程间隔到A/D转换的硬件触发。
    关于例程, ...

    你好,我这边也有同样需求,能否提供个例程。
    谢谢!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    21
    最后登录
    2018-9-19
    发表于 2017-9-6 15:32:03 | 显示全部楼层
    guxiaosang 发表于 2017-8-25 15:27
    版主你好,ADC采样利用DMA传输,这个问题这边已经解决了,现在有一个新问题,不知道您了解吗?
    我这边想 ...

    你这个问题有解决吗?能否提供个参考??多谢
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-30 03:54 , Processed in 0.139727 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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