2016-02-15 02:23 AM
Hi all
Problem exists in custom board with adapted BSP from stm32f7 discovery. For ov2640 sensor I use component library from stm32cubef2.If
initiate a
camera with
any resolution
and
begin
transferring
getting
only
one interrupt DMA2_Stream1_IRQHandler
once.
At the
oscilloscope
vsync
and
hsync
,PCLK
look good
.I've tried
everything
nothing helps.
Thanks for any help.
#stm32f7-hal-dcmi2016-02-15 02:39 AM
Does DMA complete successfully, or is there any error reported in status register ?
Once an error happens the channel is disabled.2016-02-15 02:46 AM
Thanks for your response.
There is no
error
or
a
DMA
or
at
DCMI
I will add
that
I checked
the wiring
, all is ok.2016-02-15 04:13 AM
Did you correctly clear status flags during the interrupt handler ? (DMA_FLAG_HTIF1 and/or DMA_FLAG_TCIF1)
2016-02-15 04:28 AM
yes - flags are unset.
I will add
that
I get
dma
interrupt
transfer
complete
, andat
the
end.
void
DMA2_Stream1_IRQHandler(
void
)
{
BSP_CAMERA_DMA_IRQHandler();
volatile
uint32_t flags = __HAL_DMA_GET_FLAG(hDcmiHandler.DMA_Handle, DMA_FLAG_TCIF1_5 | DMA_FLAG_HTIF1_5 | DMA_FLAG_TEIF1_5 | DMA_FLAG_DMEIF1_5 | DMA_FLAG_FEIF1_5);
if
(flags > 0) {//Never go into
__HAL_DMA_CLEAR_FLAG(hDcmiHandler.DMA_Handle, DMA_FLAG_TCIF1_5 | DMA_FLAG_HTIF1_5 | DMA_FLAG_TEIF1_5 | DMA_FLAG_DMEIF1_5 | DMA_FLAG_FEIF1_5);
}
}
2016-02-15 05:03 AM
I found the problem. One chip pad had no contact.
Very thanks for help .2016-02-15 05:06 AM
I don't understand how you known you are getting TCIF while never having (flag>0), please clarify.
It this possible thatBSP_CAMERA_DMA_IRQHandler
has some side effects (disabling interrupt, or DMA, or whatever else) ?
You must check the DMA configuration after the interrupt. Does it continue to run ? Does an error happens sometimes later ?
2016-02-15 02:54 PM
>I don't understand how you known you are getting TCIF while never having (flag>0), please clarify.
I saw debugging it. >It this possible thatBSP_CAMERA_DMA_IRQHandler
has some side effects (disabling interrupt, or DMA, or whatever else) ?
>You must check the DMA configuration after the interrupt. Does it continue to run ? Does an error happens sometimes later ?
yes
dma not want to work after the one interrupt.
I insert test code to application
.
Ok, now all work - it was a hardware problem :) thanks