打印
[资料分享与下载]

简单分享一下ADC DMA的配置过程的问题与实现

[复制链接]
1083|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cowboy2014|  楼主 | 2015-9-26 07:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是野火的库,里面没有我们能用的关于AD 触发DMA的程序,,今年搞了一天啊,真心苦逼,,感觉都设置对了就是不出数据,这个是很蛋疼的事情啊,说说我配置过程出现的问题吧。。希望对大家有用,首先要用ad采集128个点,这个就不能让adad的配置肯定要设置好!!关键一点的是要使能ad的DMA(基本上和单独ad的设置差不多唯一这点要注意)芯片手册上有(不好截屏),然后再在野火的关于DMA配置的基础上把关于GPIO触发的删掉(或者直接无视)关键一点触发源要改为ADC的
修改触发源的地方:
/* 配置 DMA 触发源 */
#if defined(MK60DZ10)
    DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR, CHn) = (0
#elif defined(MK60F15)
    DMAMUX_CHCFG_REG(DMAMUX0_BASE_PTR, CHn) = (0
#endif
            | DMAMUX_CHCFG_ENBL_MASK                        /* Enable routing of DMA request */
            //| DMAMUX_CHCFG_TRIG_MASK                        /* Trigger Mode: Periodic   PIT周期触发传输模式   通道1对应PIT1,必须使能PIT1,且配置相应的PIT定时触发 */
            | DMAMUX_CHCFG_SOURCE( 触发源标号)该这个标号即可
//dma_portx2buff_init(DMA_CH0, PTB_B0_IN, buff, PTA7, DMA_BYTE1, 10, DADDR_RECOVER);
                //4003_B010    //DMA初始化,源地址:PTB_B0_IN,目的地址:buff,PTA7触发(默认上升沿),
每次传输1字节,共传输 10次 ,传输结束后恢复地址PS原地址用adc的地址,不着知道具体的用取地址&ADC0_RA或&ADC0_RB,用软件触发ad用&ADC0_RA,用硬件用这个&ADC0_RB)
,配置好DMA之后使能DMA(记得)都配置好后,等曝光时间一到开始采集,采集完了触发DMA,DMA这里我用的是查询法(没有用中断感觉中断不好)
 if(DMA_IsComplete())//DMA传输完成
        {
          DMA_TCD0_CSR&= 0x7f;//清楚标准位(一定要清楚不然一直触发,上位机数据不动)
          SendImageData(CCD_BUFF[0]);//上微机查看波形很好,,,,,,配置完成啦
        }
然后就是重新配置DMA使能,,,,重新曝光采集DMA传输。。。。


相关帖子

沙发
大苏牙| | 2015-9-26 21:20 | 只看该作者
讲解的挺细致的,用DMA做采集能够释放CPU的功能

使用特权

评论回复
板凳
追逐浪花| | 2015-9-27 21:36 | 只看该作者
到现在还没用过dma呢,惭愧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

821

帖子

5

粉丝