OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9565|回复: 24

stm32f4 驱动ov7725摄像头,使用dcmi一直无法产生中断

[复制链接]

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
发表于 2017-8-6 14:02:37 | 显示全部楼层 |阅读模式
400金钱
本帖最后由 zamm 于 2017-8-6 14:07 编辑

摄像头的信号时序用示波器看了一下大概如图。


现在的情况是,用手拔插一下像素时钟线,会产生一次中断,之后数据寄存器就会更新,但是就是一直不会产生中断。


请问有人遇到过同样的问题吗?请问是如何解决的

或者有没有人将飞思卡尔用的鹰眼摄像头,移植到stm32f4,可否分享一份程序学习一下。

十分感谢

初始化程序如下[mw_shl_code=applescript,true]
void DCMI_Init(void)
{
        //设置IO
        RCC->AHB1ENR|=1<<0;                //使能外设PORTA时钟
        RCC->AHB1ENR|=1<<1;                //使能外设PORTB时钟
         RCC->AHB1ENR|=1<<2;                //使能外设PORTC时钟
          RCC->AHB1ENR|=1<<4;                //使能外设PORTE时钟     
        RCC->AHB2ENR|=1<<0;                //能DCMI时钟

        GPIO_Set(GPIOA,PIN4|PIN6,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);        //PA4/6   复用功能输出
        GPIO_Set(GPIOB,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);        //PB6/7   复用功能输出
        GPIO_Set(GPIOC,PIN6|PIN7|PIN8|PIN9|PIN11,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//PC6/7/8/9/11 复用功能输出
        GPIO_Set(GPIOE,PIN5|PIN6,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);        //PE5/6  复用功能输出
        delay_ms(100);
        GPIO_AF_Set(GPIOA,4,13);        //PA4,AF13  DCMI_HSYNC
        GPIO_AF_Set(GPIOA,6,13);        //PA6,AF13  DCMI_PCLK  
        GPIO_AF_Set(GPIOB,7,13);        //PB7,AF13  DCMI_VSYNC
         GPIO_AF_Set(GPIOC,6,13);        //PC6,AF13  DCMI_D0
         GPIO_AF_Set(GPIOC,7,13);        //PC7,AF13  DCMI_D1
         GPIO_AF_Set(GPIOC,8,13);        //PC8,AF13  DCMI_D2
         GPIO_AF_Set(GPIOC,9,13);        //PC9,AF13  DCMI_D3
         GPIO_AF_Set(GPIOC,11,13);        //PC11,AF13 DCMI_D4
        GPIO_AF_Set(GPIOB,6,13);        //PB6,AF13  DCMI_D5
        GPIO_AF_Set(GPIOE,5,13);        //PE5,AF13  DCMI_D6
        GPIO_AF_Set(GPIOE,6,13);        //PE6,AF13  DCMI_D7
        
        delay_ms(100);
        //清除原来的设置
        DCMI->CR=0x0;        
        DCMI->IER=0x0;
        DCMI->ICR=0x1F;
        DCMI->ESCR=0x0;
        DCMI->ESUR=0x0;
        DCMI->CWSTRTR=0x0;
        DCMI->CWSIZER=0x0;
        
        DCMI->CR|=0<<1;                //连续模式
        DCMI->CR|=0<<2;                //全帧捕获
        DCMI->CR|=0<<4;                //硬件同步HSYNC,VSYNC
        
        DCMI->CR|=1<<5;                //PCLK 上升沿有效
        DCMI->CR|=0<<6;                //HSYNC 低电平有效
        DCMI->CR|=1<<7;                //VSYNC高电平有效
        
        DCMI->CR|=0<<8;                //捕获所有的帧
        DCMI->CR|=0<<10;         //8位数据格式  
        
        DCMI->IER|=1<<0;         //开启帧中断
        DCMI->IER|=1<<3;         //开启帧中断
        DCMI->IER|=1<<4;         //开启帧中断
//        
        
        MY_NVIC_Init(1,0,DCMI_IRQn,2);        //抢占1,子优先级2,组2 //设置IO
        DCMI->CR|=1<<14;         //DCMI使能
} [/mw_shl_code]

微信图片_20170806140019.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-8-6 20:37:41 | 显示全部楼层
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-6 22:14:15 | 显示全部楼层
正点原子 发表于 2017-8-6 20:37
示波器看看输出信号

原子哥你好,示波器看的输出信号没问题,跟理论上的一样。要是把三个信号线的其中一条拔了,换成自己io随便产生的信号,就可以进中断了。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-8-7 00:41:31 | 显示全部楼层
zamm 发表于 2017-8-6 22:14
原子哥你好,示波器看的输出信号没问题,跟理论上的一样。要是把三个信号线的其中一条拔了,换成自己io随 ...

如果VSYNC,HSYNC有信号,那就肯定会进入帧中断才对。
你配置错了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 00:59:35 | 显示全部楼层
正点原子 发表于 2017-8-7 00:41
如果VSYNC,HSYNC有信号,那就肯定会进入帧中断才对。
你配置错了么?

你好,配置是按着原子的例程来的啊,最近是全国大学生电子设计竞赛,好多人在移植鹰眼k60的程序到stm32f4的时候都遇到这个问题了。
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-7 11:05:09 | 显示全部楼层
我们也遇到这个问题,鹰眼的OV7725,它的硬件二值化一点都不好弄
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-7 11:21:19 | 显示全部楼层
DCMI显示出一片花瓶
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-8-5
在线时间
4 小时
发表于 2017-8-7 12:39:36 | 显示全部楼层
我移植的 时候也出现了问题,楼主弄好了么?
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 12:43:53 | 显示全部楼层
13821456050 发表于 2017-8-7 12:39
我移植的 时候也出现了问题,楼主弄好了么?

没有,已经打算放弃dcmi的方法
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 12:44:20 | 显示全部楼层
Z1650570741 发表于 2017-8-7 11:05
我们也遇到这个问题,鹰眼的OV7725,它的硬件二值化一点都不好弄

要是解决了,可否给我参考一下
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-7 12:59:02 | 显示全部楼层
zamm 发表于 2017-8-7 12:44
要是解决了,可否给我参考一下

我们放弃了DCMI,改用了端口模拟的方式,如果能找到解决方式,希望楼主共享共享
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-8-5
在线时间
4 小时
发表于 2017-8-7 12:59:52 | 显示全部楼层
那我也不用dmic了 直接dma采集io寄存器试试吧  回头弄好交流下
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 13:24:27 | 显示全部楼层
13821456050 发表于 2017-8-7 12:59
那我也不用dmic了 直接dma采集io寄存器试试吧  回头弄好交流下

好的,我的QQ 273744983
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 13:25:01 | 显示全部楼层
Z1650570741 发表于 2017-8-7 12:59
我们放弃了DCMI,改用了端口模拟的方式,如果能找到解决方式,希望楼主共享共享

请问你们端口模拟的方式可以了吗?QQ 273744983
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-7 14:58:36 | 显示全部楼层
zamm 发表于 2017-8-7 13:25
请问你们端口模拟的方式可以了吗?QQ 273744983

目前还存在问题,还在找问题所在。。。弄出在,分享下

Eagle7725摄像头.zip

4.44 MB, 下载次数: 523

回复

使用道具 举报

7

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-25
在线时间
19 小时
发表于 2017-8-7 15:13:16 | 显示全部楼层
鹰眼的硬件二值化实在是不好用,而且他好像有点太快了,就算用DMA都不行,因为IO口速度低。反应不过来
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 16:18:20 | 显示全部楼层
Downstream 发表于 2017-8-7 15:13
鹰眼的硬件二值化实在是不好用,而且他好像有点太快了,就算用DMA都不行,因为IO口速度低。反应不过来

IO口的速度最快100M应该不会反应不过来吧?会不会是其他地方的问题?
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
 楼主| 发表于 2017-8-7 16:18:34 | 显示全部楼层
Z1650570741 发表于 2017-8-7 14:58
目前还存在问题,还在找问题所在。。。弄出在,分享下

好的 感谢
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-7 16:30:14 | 显示全部楼层
zamm 发表于 2017-8-7 16:18
IO口的速度最快100M应该不会反应不过来吧?会不会是其他地方的问题?

不会哦,它的二值化,只是让并行的端口一次输出8个像素点,32应该是可以跟上的
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2017-8-5
在线时间
4 小时
发表于 2017-8-7 22:04:27 | 显示全部楼层
用的存储器到存储器 dma传输数据  出来图像是这个样子 也不知道是内存没转换好 还是中断配置有问题 如果有人解决了 麻烦回复一下
QQ截图20170807220359.png

ov7725移植实验.rar

8.68 MB, 下载次数: 422

回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-8-10
在线时间
0 小时
发表于 2017-8-10 16:34:40 | 显示全部楼层
13821456050 发表于 2017-8-7 22:04
用的存储器到存储器 dma传输数据  出来图像是这个样子 也不知道是内存没转换好 还是中断配置有问题 如果有 ...

请问你解决问题了吗
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2017-4-16
在线时间
5 小时
发表于 2017-8-12 23:23:32 | 显示全部楼层
我在尝试移植小钻风 也是同样的问题  开始是 dcmi-》DR没有数据   重新插拔VSYNC线就开始接受数据了  奇怪的很
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-5-2
在线时间
14 小时
发表于 2018-6-9 09:26:47 | 显示全部楼层
请问楼主这个问题解决了么
回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2018-5-19
在线时间
54 小时
发表于 2018-6-10 08:04:52 | 显示全部楼层
学习了, 谢谢分享
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-7-13
在线时间
3 小时
发表于 2018-7-13 15:37:15 | 显示全部楼层
解决了吗? 解决了麻烦分享一下
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 19:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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