查看: 15822|回复: 25

[已解决] K60,PDB-ADC-DMA问题(已解决)

[复制链接]

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
发表于 2013-8-26 11:12:15 | 显示全部楼层 |阅读模式
我想实现用PDB硬件触发AD控制采样率,然后由DMA传递AD转换数据到RAM。碰到下面几个问题:
 
1. ADC必须工作在连续模式才可以,但是连续模式不是一启动就不停止了么?如文档中所说 In continuous convert configuration, only the initial rising edge to launch continuous conversions is observed, and until conversion gets aborted the ADC continues to do conversions on the same ADC status and control register that initiated the conversion.那我想知道PDB硬件触发只是第一次启动AD开始采样,还是以后每次采样都是有PDB硬件触发的?
 
2.用DMA传输数据的问题:我开启了DMA外循环结束中断,但是进入中断的时候通过观察DADDR寄存器发现目的地址并没有按预期的偏移,总是相差几个数的样子,然后进入中断后单步调试发现目的地址还在变,也就是数据还在传输,然后我会在出中断的时候重新调整下目的地址:DMA_DADDR(5) = (uint32)&newaddr;对应寄存器的值也确实随之改变了,但是下次进入该中断,地址还是有点偏移,不是我预期传输的数据大小,求问何解?
 
(正解见17楼和20楼,用PDB的话ADC就必须工作在单次转换模式,否则就没必要用PDB了)
我知道答案 目前已有25人回答
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-8-26 14:25:41 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

第一个问题,在PDB和ADC的配置寄存器都有可以配置为Contious连续模式的位。两者并不冲突,我的理解是,在ADC设置为continuous时,就不能使用PDB的周期性设置了;在如果使用PDB去Schedule ADC时需要设置ADC为One conversion。
第二个问题,你观察到DADDR寄存器发现目的地址并没有按预期的偏移,总是相差几个数的样子,不知是不是因为IDE界面刷新的问题?
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-8-26 16:28:44 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

谢谢版主!关于问题1,我在官网上下的K20有个相关类似的demo,有些语法错误,我改正后,ADC工作在单次转换模式,调试结果是PDB能触发转换两次,再就不能触发了。我自己的程序是只能触发一次。如果按您所说,那不是只能触发一次,那不是控制不了采样率吗?问题2,我也真的不太确定。
回复第 2 楼 于2013-08-26 14:25:41发表:
第一个问题,在PDB和ADC的配置寄存器都有可以配置为Contious连续模式的位。两者并不冲突,我的理解是,在ADC设置为continuous时,就不能使用PDB的周期性设置了;在如果使用PDB去Schedule ADC时需要设置ADC为One conversion。
第二个问题,你观察到DADDR寄存器发现目的地址并没有按预期的偏移,总是相差几个数的样子,不知是不是因为IDE界面刷新的问题?
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-8-26 16:38:18 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

你的PDB设置为Contious连续模式了吗?因为PDB的工作模式有一种是One-shot模式,一种是Continupous模式。
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-8-26 17:01:51 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

是的,连续模式。
回复第 4 楼 于2013-08-26 16:38:18发表:
你的PDB设置为Contious连续模式了吗?因为PDB的工作模式有一种是One-shot模式,一种是Continupous模式。
 
回复 支持 反对

使用道具 举报

该用户从未签到

85

主题

790

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2279
最后登录
1970-1-1
发表于 2013-8-27 10:23:04 | 显示全部楼层

RE:K60,PDB-ADC-DMA问题

PDB触发和ADC采样的模式,你可以看成是两个东西。PDB触发就是给ADC一个开始采样的信号,至于ADC是连续采样还是只采一次,这个取决于ADC采样模式的设置。举个例子,如果你的ADC的采样模式是连续模式,那么PDB触发第一次有效果,后面的PDB触发就看不出效果了,因为ADC的采样模式是连续模式。所以我们PDB常和单采样模式配合使用。
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 09:56:25 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

谢谢版主,我明白了。但是我跑的例程ADC只能触发两次,到第三次就开始发生PDB sequence error 了,我用的是官方例程,请问什么原因呢?
回复第 6 楼 于2013-08-27 10:23:04发表:
PDB触发和ADC采样的模式,你可以看成是两个东西。PDB触发就是给ADC一个开始采样的信号,至于ADC是连续采样还是只采一次,这个取决于ADC采样模式的设置。举个例子,如果你的ADC的采样模式是连续模式,那么PDB触发第一次有效果,后面的PDB触发就看不出效果了,因为ADC的采样模式是连续模式。所以我们PDB常和单采样模式配合使用。
 
回复 支持 反对

使用道具 举报

该用户从未签到

85

主题

790

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2279
最后登录
1970-1-1
发表于 2013-8-28 10:20:16 | 显示全部楼层

RE:K60,PDB-ADC-DMA问题

官网例程?哪个例程呢?
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-8-28 11:52:04 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

程序是否修改过?如果配置正确的话,是不是在中断服务函数中添加了过多的处理程序,导致PDB触发完成,而程序依然在中断服务程序中。
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-8-28 14:42:44 | 显示全部楼层

回复:K60,PDB-ADC-DMA问题

版主你好,我用的是KINETIS512_SC\k60_pdb_adc_demo,没有进行任何改动,(前面说有改动的不是这个例程)这个例程适用的是
MK60N512VMD100,我的芯片是MK60DN512VLL10,晶振是50M。我刚开始怀疑是时钟的问题,因为文档中说 Sequence error is typically happened because the delay m is set too short and
the pre-trigger m asserts before the previously triggered ADC conversion is completed.但是我更改后还是如此,说实话,我对于PDB怎么连续触发ADC的预触发一类机制,确实不太懂,求赐教!
回复第 9 楼 于2013-08-28 11:52:04发表:
程序是否修改过?如果配置正确的话,是不是在中断服务函数中添加了过多的处理程序,导致PDB触发完成,而程序依然在中断服务程序中。
 
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-28 07:37 , Processed in 0.108043 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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