SUCCESS!! I was able to get the OV7670 camera connected, get the PRU reading it, and get the results over to my PC for display (although because I'm pushing to the PC via serial port, I can only see stills and not video, and the stills take about 20 seconds to transfer (640 * 480 greyscale (I'll work on the color later) image going byte at a time across a 115200 serial connection)). I discovered some of my initial (and persistent) problems were with poor terminations in my wiring (makes me inclined to want to go back and try it again as main core code with the GPIOs). It appears the L3 can consume writes from the PRU fast enough to move to memory (although since this is the ONLY thing running on the device right now, I don't know how it would degrade the operation of other code). This is really giving me the itch now to try to port this to run under Debian, so I can use the other facilities of the OS.
If anyone wants to look at (or laugh at) my code, you can see it here: http://sourceforge.net/p/bioloidfirmware/code/ci/master/tree/ in the 'Beaglebone Firmware' folder. Also, there is a WIndows program in the Utilities folder called 'UARTImageReceiver' that I am using on the PC side to fetch the image. It transmits a character to the BBB, and when the BBB receives it, it dumps back the contents of the array, which the PC program builds into an image and displays. The setup is really sloppy right now (as is the code), I'll try to clean it up soon. Also, I'm using GCC and Eclipse. The way it is set up, you have to run the makefile with 'pru_bin' as the argument to build the PRU part, then run it without the argument to build the main program. I'm running 'the TI 'bintoc' program to convert the PRU program to arrays that I include in the main program which I then load into PRU memory and start the PRU. I tweaked 'bintoc' to take an extra argument to use as the name for the generated array. Because of this, and since I am directly writing to the address of my array in main memory from the PRU, there is some more compile time craziness that is necessary. I have to compile everything, check the map file to see where the array gets placed, put that address into the PRU code, then compile it again. That also only makes either the debug or release version usable, but not both (since I'm not using a debugger anyway, I might just ditch the debug build). Finally, I included a huge chunk of the Starterware code directly in the project so I wouldn't pollute my Starterware install (because I want to keep working through the examples), and so I could move the project around without breaking stuff. TI, please don't sue me. If I need to remove something, let me know. I stole, er, borrowed liberally from a bunch of people, and will try to attribute properly as soon as possible. In case you don't notice, I'm a slob and miss a lot. -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
