2

I have a FIFO module running at 24MHz, producing 1 byte per clock. Then it produces 24MB/s. I need to send this data to PC through USB or Ethernet.

How can I achieve this? Doesn't exist some USB controller or something? Searching in the web I read about I2C but it seems very slow for my purposes.

This is what I'd like. However I'm able to reduce the amount of data to 6MB/s if no solution exists for the previous requirement.

PeterJ
  • 17,131
  • 37
  • 56
  • 91
HAL9000
  • 186
  • 8
  • 24MB/s is a fairly high datarate. Your average consumer grade USB2 external disk does around 20MB/s. – jippie Sep 08 '13 at 09:56
  • I don't need to save it on hard disk. I only need to process data. However I'm able to reduce the amount of data, even below 6MB/s. What is the highest speed I can reach? – HAL9000 Sep 08 '13 at 09:59
  • Just try to give an indication of how much data you are trying to send into the PC. – jippie Sep 08 '13 at 10:07
  • The indication is 6MB/s. Below I sacrifice too much quality. However I just found this one http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT245R.pdf It says "full speed USB 2.0". Do you think it could be what I'm looking for? – HAL9000 Sep 08 '13 at 10:10
  • Full speed USB2.0 is just the name of the protocol used, it tells you little to nothing about the actual datarate. You have to check the datasheet for that. – jippie Sep 08 '13 at 10:11
  • The datasheet says "USB 2.0 Full Speed compatible", so I assume the speed is 12 Mbit/s – HAL9000 Sep 08 '13 at 10:13
  • Bad assumption. Also 12Mb/s is something different than 12MB/s, it differs an order of magnitude (bit vs. byte). – jippie Sep 08 '13 at 10:22
  • "12Mb/s is something different than 12MB/s". I never asserted they're equal. – HAL9000 Sep 08 '13 at 10:44
  • You mentioned 24 and 6 MByte/second in your question and some comments. How does that relate to 12Mbit/s? (which is still only the name of the protocol, the actual achievable datarate is lower). Check into chat if you want to discuss this further: http://chat.stackexchange.com/rooms/15/electrical-engineering – jippie Sep 08 '13 at 10:47
  • Check the FT245 chip and google for the maximum data rates people have achieved with it. – Wouter van Ooijen Sep 08 '13 at 12:14
  • I read 1200 Mbit/s. This is not enaugh for me. I have an Arduino 2009. What about reading a byte from inputs, store the byte in a buffer (64? 512? more?) and then send the buffer via USB? The clock is 16MHz so I would expect a speed of 16MB/s. Am I right? – HAL9000 Sep 08 '13 at 14:17
  • If you MB means MegaBit your are only neglecting all overhead. As a first guess count on 100% overhead. If you MB means MegaByte there is further factor of 8. – Wouter van Ooijen Sep 08 '13 at 16:05
  • B is Byte, b is bit. However.. What overhead should I count? I read 8 bit in 8 different inputs and in the same cycle I store them in the buffer. When it's full I flush it. Even in case of 100% overhead I cannot understand why should I divide by 8. Can you explain please? – HAL9000 Sep 08 '13 at 16:11
  • 1
    The software radio people with fairly similar needs manage to fill up USB2 pipes to a high degree using things like the Cypress FX2 parts - and presumably today the FX3. – Chris Stratton Sep 08 '13 at 18:09

0 Answers0