From: Julian B. <jul...@gm...> - 2013-05-14 12:25:57
|
Hello, I'm looking for a way to transmit and/or receive a continuous stream of digital, serial data using my Overo Fire COM on a Summit expansion board. I'm relatively new to the whole embedded stuff, so I'm not sure how to best go about this. I'm experimenting with various devices like video game console controllers and RGB LED strips, which use serial data communication, but don't adhere to any commonly used protocol like 8n1 UART, SPI or I2C. So I find myself in need to be able to transmit and receive arbitrary streams of serial data with clocks of around 1 MHz. A concrete example would be sending a raw bitstream of 2400 bits to some device at 800 kHz, with the data line being set to low before and after the transfer, and no pauses during the transfer. I've been looking into SPI and from what the OMAP35x reference manual says in the section about Single-Channel Master Mode (19.5.2.5) it seems like I may be able to abuse the SPI interface to transmit arbitrary serial data streams without having pauses between the individual data words, but I'm not entirely sure, maybe I'm not interpreting it correctly. From what I've read in the section about the McBSP module, it wouldn't work since there may be pauses between the data frames. Another possibility may be using the GPIO ports directly (simply switching them on and off with the right timing to send my data), but I don't know what kind of transfer rates I can get on GPIO, or whether that is a good idea at all, with the scheduler and interrupts getting in my way. Using the UARTs is out of the question since these are way too slow from what I've seen in my experiment, in addition to forcing me to send start and stop bits. So, I'm not sure which approach is the easiest/best and I've been thinking that what I'm trying to do here can't be all that special, so I'm hoping that there is somehow a more straightforward way of doing this, which doesn't involve low-level programming of the SPI interface or bitbanging on the GPIO pins while fighting the process scheduler and the interrupts. So any pointers on how to approach this problem would be very helpful. Thanks in advance, Julian |