This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

interrupt entry time and interrupt disable ( nRF52 DK + image sensor )

Hi,

I am testing that nRF52832 transfer QVGA still image from image sensor to phone as follows.

  1. nRF52832(nRF52 DK) is connected with image sensor through some signals(8bit data bus, MCLK, PCLK, HSYNC and VSYNC..)

  2. Initialize pin change interrupt by VSYNC signal.

  3. When user push button, nRF52 DK read QVGA still image from image sensor in VSYNC interrupt service routine.

  4. nRF52 DK transfer image to phone by Bluetooth.

Then, I have two problems so I ask some questions to you.

First, for pin change interrupt,

Interval between H/W external interrupt(VSYNC interrupt) generation time and interrupt service routine(pin change interrupt) entry time is about 7.6us(B), but it should be under 0.4us in our project.
Also, I had test it in GPIOTE_IRQHandler() but the interval is 2.4us(A).

If you have any solution that can decrease interval to under 0.4us, please let me know it.

image description

HSYNC_IN => HSYNC interrupt signal from image sensor

DBG_PORT0 => Debug signal which I add in GPIOTE_IRQHandler() start position

DBG_PORT1 => Debug signal which I add in HSYNC interrupt service routine(pin change int)

Second, VSYNC interrupt service routine should not be disturbed by any other interrupt for about 200ms because image sensor output image data by only VSYNC, HSYNC and PCLK timing irrespective of nRF52832.

Then it seems that other interrupt (RF interrupt?) is disturbing VSYNC interrupt.

I had changed interrupt priority to Low - High, but read image have noise lines.

Also I had changed it to Highest but nRF52832 is not working.

Do you have any solution that other interrupt does not disturb VSYNC interrupt? (ex. : RF off => read image data from interrupt => RF on => tx data to phone..)

Parents
  • Hi

    I have more question about softdevice interrupt.

    VSYNC interrupt is occurring every 200ms in my project.

    If softdevice interrupt is occurring during VSYNC interrupt, I throw that frame away,

    And if softdevice interrupt has not occurred during VSYNC interrupt, I will send that frame to central.

    Is it possible?

    In other words, can I know that softdevice interrupt has occurred during VSYNC interrupt?

    Best regards.

Reply
  • Hi

    I have more question about softdevice interrupt.

    VSYNC interrupt is occurring every 200ms in my project.

    If softdevice interrupt is occurring during VSYNC interrupt, I throw that frame away,

    And if softdevice interrupt has not occurred during VSYNC interrupt, I will send that frame to central.

    Is it possible?

    In other words, can I know that softdevice interrupt has occurred during VSYNC interrupt?

    Best regards.

Children
No Data
Related