I’ve got this camera on a PCB with a 2.8V reg, a 1.5V reg, pullups on SDA, SCL and RESET and all the pins going to a 20 pin connector that leads to an ARM STM32 F103 VBT6, which is running at 72MHz.
While the ARM has a DMA controller I can’t see how to use it to clock in data on an input port, it seems more designed to clocking in/out data from its peripherals e.g. the SPI or I²C interfaces. I may be wrong on this count and would love to hear it if so.
Before I start sending any data, though, I’m worried that the 3.3V of the ARM will upset the camera (which gives a max of 3V on its inputs).
I could add a series resistor to the ribbon cable, but have no idea what value to use to get a suitable voltage drop. Alternatively, if this will work without the series resistor (i.e. the camera can take 3.3V) that’d be great.
Also, I’m only familiar with programming these things in C - while I could learn assembler if needed it would be quicker to get this off the ground in C. With my ARM running at 72MHz and giving the camera a 6MHz clock, divided by two for 3MHz data I calculate 24 operations per data, roughly?
Is that enough that I could realistically write this in C or not?
While it would be nice to get an actual image output, my application just needs the centre of mass of colours matching a threshold - I’m not sure if this will be easier or harder but essentially I just need to see if incoming data is within a colour threshold and store its x,y values if so. The ARM only has 20KB of RAM and 128x96 at 565 needs some 24KB, so if I have to store an entire image before processing I’ll need to cut some off or something.
Thanks for any help or advice!