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

Interfacing nRF5 with an image sensor

Hi,

I'm developing a product that should take an image of a low-resolution image sensor, process it and send the result via BLE.

The camera has an 8-bit parallel interface (+ pixel clock + H/V sync).

I'm looking for a SoC that should be of course ultra-low power but also could interface an image sensor.

Usually, this is done by having a dedicated hardware module on the MCU, but it also could be done by reading a port via DMA when pixel clock serves as a trigger (by connecting it to an interrupt or a timer).

Can you support this type of application on nRF51 or nRF52 family?

Maybe it could be supported on other devices?

Best regards

Gregory

Parents
  • Low res images via BLE sounds quite unheard of, but why not. After all, we are receiving highres images from Mars at lower speeds.

    What you can do with Nrf52: place interrupts on input pins, read inputs in parallel and fast (GPIO is on a fast bus) and treat them in software. What you cannot do: accelerate this with DMA.

    If you read in software, you might consider optimising the code on assembly level in order to increase the throughput, but it would remain limited. Are you certain your camera module does not feature SPI (many do)? In that case, the Nrf52840 would allow to read data at 32mbps with DMA.

    Otherwise, you could consider a second MCU, e.g. STM32. The good thing about them is that they have an integrated boot loader (e.g. via SPI or UART) so you can program them from the primary BLE MCU. You would receive data from the camera and treat it on the STM32 and only pass the processed data via SPI to the BLE MCU.

    Looking elsewhere, the Cypress PSOC 6 family (including BLE radio) might be a candidate for your project, but they are expensive  and there is quite a learning curve to development with PSOC, DMA, etc.

    It might be cheaper to combine a low cost Nrf SOC with a low cost STM32 than buying an integrated PSOC that does it all, but your development process might be more complex.

    Energywise, you can always make the secondary MCU perform a deep sleep. It is vital that you can switch off the camera.

Reply
  • Low res images via BLE sounds quite unheard of, but why not. After all, we are receiving highres images from Mars at lower speeds.

    What you can do with Nrf52: place interrupts on input pins, read inputs in parallel and fast (GPIO is on a fast bus) and treat them in software. What you cannot do: accelerate this with DMA.

    If you read in software, you might consider optimising the code on assembly level in order to increase the throughput, but it would remain limited. Are you certain your camera module does not feature SPI (many do)? In that case, the Nrf52840 would allow to read data at 32mbps with DMA.

    Otherwise, you could consider a second MCU, e.g. STM32. The good thing about them is that they have an integrated boot loader (e.g. via SPI or UART) so you can program them from the primary BLE MCU. You would receive data from the camera and treat it on the STM32 and only pass the processed data via SPI to the BLE MCU.

    Looking elsewhere, the Cypress PSOC 6 family (including BLE radio) might be a candidate for your project, but they are expensive  and there is quite a learning curve to development with PSOC, DMA, etc.

    It might be cheaper to combine a low cost Nrf SOC with a low cost STM32 than buying an integrated PSOC that does it all, but your development process might be more complex.

    Energywise, you can always make the secondary MCU perform a deep sleep. It is vital that you can switch off the camera.

Children
No Data
Related