k60 DMA配置问题(已解决)

2020-02-20 20:45发布

本帖最后由 FSL_TICS_ZP 于 2014-3-6 09:21 编辑

小弟这两天配置DMA 程序如下
        SIM->SCGC7|=SIM_SCGC7_DMA_MASK;
        SIM->SCGC6|=SIM_SCGC6_DMAMUX_MASK;
        SIM_ModuleClockSet(SIM_DMAMUX,ENABLE);
        SIM_ModuleClockSet(SIM_DMA   ,ENABLE);
        DMA->DCHPRI1|=DMA_DCHPRI1_ECP_MASK |DMA_DCHPRI1_CHPRI(1);


        DMA->TCD[1].NBYTES_MLNO=DMA_NBYTES_MLNO_NBYTES(1);
        DMA->TCD[1].ATTR|=DMA_ATTR_DMOD(0)|DMA_ATTR_DSIZE(0)|DMA_ATTR_SSIZE(0)|DMA_ATTR_SMOD(0);
        DMA->TCD[1].SADDR=(uint32_t)&(ADC0->R[0]);
        DMA->TCD[1].SOFF=DMA_SOFF_SOFF(0);
        DMA->TCD[1].DADDR=(uint32_t)&data;
        DMA->TCD[1].DOFF=DMA_DOFF_DOFF(0);
        DMA->TCD[1].SLAST=DMA_SLAST_SLAST(-4);
        DMA->TCD[1].DLAST_SGA=DMA_DLAST_SGA_DLASTSGA(-4);
        DMA->TCD[1].CSR=0;
        DMA->TCD[1].CITER_ELINKNO=DMA_CITER_ELINKNO_CITER(4);
        DMA->TCD[1].BITER_ELINKNO=DMA_BITER_ELINKNO_BITER(4);
//        DMA->CR &=~DMA_CR_EMLM_MASK;
        SIM_ModuleClockSet(SIM_DMAMUX,ENABLE);
        DMAMUX->CHCFG[1]|=DMAMUX_CHCFG_SOURCE(40);
        DMA->SERQ|=DMA_CERQ_CERQ(1);
        DMAMUX->CHCFG[1]|=DMAMUX_CHCFG_ENBL_MASK;
用的是AD采样,DMA传输数据,,AD采样肯定没有问题,,但是DMA就是老是出错,无论我地址偏移和字节量怎么传输,DMA的ES寄存器总会出现800001c8
附上1c8的错误指示
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
wangpengcheng
1楼-- · 2020-02-20 22:48
我是来学习、帮顶、顺便升级的!
3guoyangyang7
2楼-- · 2020-02-21 01:07
一直不知道问题出哪了,向大神求教
FSL_TICS_ZP
3楼-- · 2020-02-21 02:57

2.jpg (190.73 KB, 下载次数: 0)

下载附件

2014-3-5 15:13 上传


AN4590-Using DMA to Emulate ADC Flexible Scan Mode on Kinetis K Series.pdf (201.08 KB, 下载次数: 11) 2014-3-5 15:13 上传 点击文件名下载附件
3guoyangyang7
4楼-- · 2020-02-21 08:25
FSL_TICS_ZP 发表于 2014-3-5 15:13

谢谢指教啊,你说的对,但是主要问题不在这个,我中间试了好多值都不正确,官方手册上的值也试了就是不行,今天下午问题解决了,最主要的原因是在设置数据带宽时ATTR寄存器没有清零,我清了一下零后来问题就解决了,试了几个值,都对的,再一次表示感谢,嘿嘿
FSL_TICS_ZP
5楼-- · 2020-02-21 13:05
 精彩回答 2  元偷偷看……
3guoyangyang7
6楼-- · 2020-02-21 18:46
这个偏移量和返回地址设置不正确很容易出现问题,配置寄存器前不要忘了清零,一个小小的错误,搞了两天,,嘿嘿,好在问题解决了

一周热门 更多>