[beagleboard] Using the MMC interface to read data from an FPGA

I would like to use the MMC 8-bit bus in the expansion connector to pipe in data from an FPGA. If I wrote a kernel driver to read in data on the MMC bus and DMA it to RAM, what would limit the maximum clock rate at which I could read the data on this bus? The FPGA is good to 250MHz.

I am just reading data on the MMC, no need for transmitting.

Thanks!

From a HW perspective, the maxiimum speed is 48MHz.

Gerald

I would like to use the MMC 8-bit bus in the expansion connector to pipe in
data from an FPGA. If I wrote a kernel driver to read in data on the MMC
bus and DMA it to RAM, what would limit the maximum clock rate at which I
could read the data on this bus? The FPGA is good to 250MHz.

I am just reading data on the MMC, no need for transmitting.

There is a max clock rate on the MMC interface. Likely in the area of
50 MHz. What kind of data are you trying to read from the FPGA?

Philip

I would like to use the MMC 8-bit bus in the expansion connector to pipe in
data from an FPGA. If I wrote a kernel driver to read in data on the MMC
bus and DMA it to RAM, what would limit the maximum clock rate at which I
could read the data on this bus? The FPGA is good to 250MHz.

I am just reading data on the MMC, no need for transmitting.

There is a max clock rate on the MMC interface. Likely in the area of
50 MHz. What kind of data are you trying to read from the FPGA?

Video.

Too bad the hardware has that restriction.

The MMC specification is 50MHz max. OMAP is at 48MHz. OMAP does have a camera interface on it. It is just not brought out on the current Beagle board.

Gerald

> I would like to use the MMC 8-bit bus in the expansion connector to
> pipe in
> data from an FPGA. If I wrote a kernel driver to read in data on the
> MMC
> bus and DMA it to RAM, what would limit the maximum clock rate at which
> I
> could read the data on this bus? The FPGA is good to 250MHz.
>
> I am just reading data on the MMC, no need for transmitting.

There is a max clock rate on the MMC interface. Likely in the area of
50 MHz. What kind of data are you trying to read from the FPGA?

Video.

I've moved data via SPI from an FPGA. You can clock that at 48 MHz also.

Philip

I would like to use the MMC 8-bit bus in the expansion connector to
pipe in
data from an FPGA. If I wrote a kernel driver to read in data on the
MMC
bus and DMA it to RAM, what would limit the maximum clock rate at which
I
could read the data on this bus? The FPGA is good to 250MHz.

I am just reading data on the MMC, no need for transmitting.

There is a max clock rate on the MMC interface. Likely in the area of
50 MHz. What kind of data are you trying to read from the FPGA?

Video.

I’ve moved data via SPI from an FPGA. You can clock that at 48 MHz also.

That data is serial. The MMC bus is 8-bits wide.

The MMC specification is 50MHz max. OMAP is at 48MHz. OMAP does have a camera interface on it. It is just not brought out on the current Beagle board.

Whats the max throughput on the Camera interface bus?

If you're looking to do general data transfer between the FPGA and
OMAP3 in a memory mapped fashion (like NOR flash would), the GPMC is
your best bet. You can configure it in various different forms
(synchronous, asynchronous, chip selects, burst capabilities, custom
timings) and it appears as a nice, well behaved memory mapped device
to which you can access from user-space. In terms of bandwidth, you
can achieve up to 180Mhz data clock, with a 16-bit word interface.
Accounting for transactional setup overhead (and assuming bursting),
you can reach potentially up to 300Mbytes/second of raw speed over
that interface. Most likely won't hit this speed due to DDR
limitations, but i did measure on the scope the effective clock period
on the OMAP3 EVM.

If you're doing application specific transfers, like video data
transfers, sound data, etc, your best bet is to use the bandwidth
dedicated peripherals like the video front end of the I2S blocks. The
former has an effective bandwidth of up to 130MBytes/second. This also
supports standard video protocols like BT.656, or parallel YCbCr
transfer using hsync, vsync, etc.

Jerry Johns
Nuvation Research Corporation

How can we read write and configure GPMC in Angstrom? can you provide a small code example please.