|
Hi,
We are working with the SAM9XE512 and are using it to stream low resolution, low frame rate video from an Omnivision OVO7690 sensor vis the ISI interface over USB. The sensor frame rate is 7.5FPS, QVGA resolution, BT656 format. We are using the preview path rather than codec path and drop most of the frames as we only require 1FPS over the USB. We have this working reliably on the SAM9XE512-EK development platform. We have designed a custom board based upon this, but have changed the external 32bit SDRAM for 16bit wide external SRAM. We have confirgured the Static Memory Controller for SRAM and are able to read/write to the external SRAM reliably. The memory access cycle time looks correct (approx 50ns) with a scope on the ~CS.
The problem is the ISI DMA into the external memory - this works running on reference platform when DMAing into external SDRAM, but does not work on our custom board with when trying to DMA into external SRAM. The key issue seems to be the write strobe is not being asserted (NWE pin 70)
(We know the external SRAM static memory controller is setup properly - we can read and write the device. In fact we can even stream hardcoded video frames over USB from it that we write there manually.)
As per the ATMEL SAM9XE512-EK development platform, the SDRAM is memory mapped to address 0x20000000. We have the external SRAM mapped to address 0x30000000 - but no SRAM write strobes (NWE signal) when trying to DMA ISI data The only relevant user control over the ISI DMA in the spec. seems to be the address register ISI_PPFBD where the Frame Buffer Descriptor (FBD) is placed. here we place whatever external memory addres we are targeting. We believe the DMA is not writing to the target address space we have programmed. Is there a limitation on the address range the ISI DMA can write to? Many Thanks for any help offered.
|