智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7832|回复: 15
打印 上一主题 下一主题

K60内部AD DMA的问题

  [复制链接]

26

主题

457

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5381

论坛元老奖章在线王奖章

威望
2166
贡献
1705
兑换币
576
注册时间
2011-9-19
在线时间
755 小时
跳转到指定楼层
1#
发表于 2012-5-8 15:08:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我看了下数字摄像头触发DMA的都是IO管脚,我使用内部ADC1的。然后我就不明白这句DMA_ERQ|=DMA_ERQ_ERQ0_MASK;就能开始AD转换么(不需要对ADC1的SC1再次赋值)?还有就是DMA下ADC选择是连续模式还是一般的?我是在行中断里面开始DMA的,现在出来都是0x00,也没有进入DMA0中断,所以目视有问题。求指导呀!!

30

主题

838

帖子

0

精华

常驻嘉宾

mrguang.taobao.com

Rank: 8Rank: 8

积分
3047

资源大师奖章论坛元老奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
1840
贡献
289
兑换币
15
注册时间
2010-12-3
在线时间
459 小时
2#
发表于 2012-5-8 20:16:19 | 只看该作者
要开启DMA读取数据,AD必须连续转换,不能单次的。
回复 支持 反对

使用道具 举报

26

主题

457

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5381

论坛元老奖章在线王奖章

威望
2166
贡献
1705
兑换币
576
注册时间
2011-9-19
在线时间
755 小时
3#
 楼主| 发表于 2012-5-8 21:36:21 | 只看该作者
本帖最后由 agogos 于 2012-5-8 21:38 编辑
568581185 发表于 2012-5-8 20:16
要开启DMA读取数据,AD必须连续转换,不能单次的。

仔细看了下,我已经写了连续转换了。。。初始化代码如下。
static void CaptureInit(void){
//Init Interrupts PTE3->CS,行同步下降沿,PTE5->VS,场同步上升沿
SIM->SCGC5|=SIM_SCGC5_PORTE_MASK;//Enable Interrupt Clock
PORTE->PCR[3]|=PORT_PCR_IRQC(10)|PORT_PCR_MUX(1);//GPIO,Falling Edge Interrupt
PORTE->PCR[5]|=PORT_PCR_IRQC(9)|PORT_PCR_MUX(1);//GPIO,Rasing Edge Interrupt
PTE->PDDR&=0xFFFFFFD7;//PTE3,PTE5 Input
NVIC_EnableIRQ(PORTE_IRQn);//Enable Interrupt
//ADC ADC1->ADC1_SE5a->PTE1(ALT0)
SIM->SCGC5|=SIM_SCGC5_PORTE_MASK;
PORTE->PCR[1]|=PORT_PCR_MUX(0);//PTE1->ADC1_SE5a
PTE->PDDR&=~GPIO_PDDR_PDD(1<<1);//PTE1->Input
SIM->SCGC3|=SIM_SCGC3_ADC1_MASK;//ADC1 Clock Enable
ADC1->SC1[0]&=~ADC_SC1_AIEN_MASK;//ADC1A
ADC1->SC1[0]|=ADC_SC1_ADCH(5);//ADC1_5->Input, Single Pin, No interrupt
ADC1->SC1[1]&=~ADC_SC1_AIEN_MASK;//ADC1B
ADC1->SC1[1]|=ADC_SC1_ADCH(5);//ADC1_5b
ADC1->SC2&=0x00000000;//Clear all.
ADC1->SC2|=ADC_SC2_DMAEN_MASK;//DMA, SoftWare Triggle
ADC1->SC3&=(~ADC_SC3_AVGE_MASK&~ADC_SC3_AVGS_MASK);
ADC1->SC3|=ADC_SC3_ADCO_MASK;
ADC1->CFG1|=ADC_CFG1_ADICLK(1)|ADC_CFG1_MODE(0)|ADC_CFG1_ADIV(1);//InputClk, ShortTime, 8bits, Bus
ADC1->CFG2&=~ADC_CFG2_MUXSEL_MASK;//ADC1A
ADC1->CFG2|=ADC_CFG2_ADACKEN_MASK;//OutputClock
//DMA
SIM->SCGC6|=SIM_SCGC6_DMAMUX_MASK;//DMAMUX Clock Enable
SIM->SCGC6|=SIM_SCGC7_DMA_MASK;//DMA Clock Enable
DMAMUX->CHCFG[0]|=DMAMUX_CHCFG_SOURCE(41);//DMA0->No.41 request, ADC1
DMA->TCD[0].SADDR=(uint32_t)&(ADC1->R[0]);//Source Address 0x400B_B010h
    DMA->TCD[0].SOFF=0;//Source Fixed
DMA->TCD[0].ATTR=DMA_ATTR_SSIZE(0)|DMA_ATTR_DSIZE(0);//Source 8 bits, Aim 8 bits
DMA->TCD[0].NBYTES_MLNO=DMA_NBYTES_MLNO_NBYTES(1);//one byte each
DMA->TCD[0].SLAST=0;
    DMA->TCD[0].DADDR=(uint32_t)&SysImgBuffer[0][0];
DMA->TCD[0].DOFF=1;
DMA->TCD[0].CITER_ELINKNO=DMA_CITER_ELINKNO_CITER(IMG_COL);
DMA->TCD[0].DLAST_SGA=0;
DMA->TCD[0].BITER_ELINKNO=DMA_BITER_ELINKNO_BITER(IMG_COL);
DMA->TCD[0].CSR=0x00000000;//Clear
DMA->TCD[0].CSR|=DMA_CSR_DREQ_MASK;//Auto Clear
DMA->TCD[0].CSR|=DMA_CSR_INTMAJOR_MASK;//Enable Major Loop Int
DMA->INT|=DMA_INT_INT0_MASK;//Open Interrupt
DMA->ERQ&=~DMA_ERQ_ERQ0_MASK;//Clear Disable
DMAMUX->CHCFG[0]|=DMAMUX_CHCFG_ENBL_MASK;//Enable
NVIC_EnableIRQ(DMA0_IRQn);
}
回复 支持 反对

使用道具 举报

4

主题

487

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2981

活跃会员奖章优秀会员奖章

QQ
威望
2216
贡献
489
兑换币
53
注册时间
2010-11-10
在线时间
138 小时
4#
发表于 2012-5-8 21:39:13 | 只看该作者
飘过 令人蛋疼的K60
回复 支持 反对

使用道具 举报

26

主题

457

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5381

论坛元老奖章在线王奖章

威望
2166
贡献
1705
兑换币
576
注册时间
2011-9-19
在线时间
755 小时
5#
 楼主| 发表于 2012-5-8 21:40:47 | 只看该作者
xinmengwangran 发表于 2012-5-8 21:39
飘过 令人蛋疼的K60

呵呵。。。对这个有了解不??有了解的点拨下嘛
回复 支持 反对

使用道具 举报

4

主题

487

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2981

活跃会员奖章优秀会员奖章

QQ
威望
2216
贡献
489
兑换币
53
注册时间
2010-11-10
在线时间
138 小时
6#
发表于 2012-5-8 21:45:32 | 只看该作者
agogos 发表于 2012-5-8 21:40
呵呵。。。对这个有了解不??有了解的点拨下嘛

不好意思 真的不会 我弄XS128的 这个 刚要弄就被吓退啦 太麻烦 不舒服
回复 支持 反对

使用道具 举报

26

主题

457

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5381

论坛元老奖章在线王奖章

威望
2166
贡献
1705
兑换币
576
注册时间
2011-9-19
在线时间
755 小时
7#
 楼主| 发表于 2012-5-8 21:49:33 | 只看该作者
xinmengwangran 发表于 2012-5-8 21:45
不好意思 真的不会 我弄XS128的 这个 刚要弄就被吓退啦 太麻烦 不舒服

其实。。也还好。。。。主要是主频是摄像头的生命。。。
回复 支持 反对

使用道具 举报

4

主题

487

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2981

活跃会员奖章优秀会员奖章

QQ
威望
2216
贡献
489
兑换币
53
注册时间
2010-11-10
在线时间
138 小时
8#
发表于 2012-5-8 22:09:14 | 只看该作者
agogos 发表于 2012-5-8 21:49
其实。。也还好。。。。主要是主频是摄像头的生命。。。

嗯 你这个超到多少啊 我队友的好像抄到100M啦
回复 支持 反对

使用道具 举报

26

主题

457

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5381

论坛元老奖章在线王奖章

威望
2166
贡献
1705
兑换币
576
注册时间
2011-9-19
在线时间
755 小时
9#
 楼主| 发表于 2012-5-8 22:18:08 | 只看该作者
xinmengwangran 发表于 2012-5-8 22:09
嗯 你这个超到多少啊 我队友的好像抄到100M啦

现在超频的主要目的还是为了像素点,100M在正常工作条件下,不算超频。我200M
回复 支持 反对

使用道具 举报

4

主题

487

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2981

活跃会员奖章优秀会员奖章

QQ
威望
2216
贡献
489
兑换币
53
注册时间
2010-11-10
在线时间
138 小时
10#
发表于 2012-5-8 22:22:07 | 只看该作者
agogos 发表于 2012-5-8 22:18
现在超频的主要目的还是为了像素点,100M在正常工作条件下,不算超频。我200M

是吗 总线分得100M!这个和XS128不一样啊!
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-10 01:22 , Processed in 0.055557 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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