Help needed to emulate a microcontroller.

Hello to all.

I am very new in FPGAs but I have good experience in microcontrollers. I need a very high frequency microcontroller for a project. I tried the PIC32MX575F512L from microchip, which can be clocked in 80Mhz. Unfortunately this frequency was not enough, because it turned out that I need at least 300 Mhz frequency.

I just need the microcontroller to take USB data from a computer ( fast serial data ) and export the data bits in parallel through the output ports.

Is there a way to emulate this behaviour with an FPGA?

Are FPGA chips only for development boards or can I use them independently in a PCB as I would do with any microcontroller?

Thank you in advance for your time.

--------------------------------------- Posted through

formatting link

Reply to
foxclab01
Loading thread data ...

Yes, although the USB part may be a challenge.

FPGA chips are for products, and you can certainly use them there. The prices may make you gasp if you look at the high-end parts. But you should be able to do this with one of the lower-priced parts if you can get USB working on it.

--
www.wescottdesign.com
Reply to
Tim Wescott

Have you looked at one of the USB target device chips like the Cypress CY7C68013A? They have some libraries for this chip that allow 20 - 20 MByte/second transfers. There is a little board called a SERMOD-56 that brings out the parallel pins of the chip.

The advantage of this chip is that the micro is for setup only, and then the USB hardware takes over to process the bulk data without needing the CPU.

Jon

Reply to
Jon Elson

FPGAs can process data very fast, but they mostly do it by doing things in parallel. 300MHz is a little high for the lower priced FPGAs, but 150MHz isn't so hard. You need to get it down to at least two bits parallel as fast as you can. If you can't do that in the FPGA, then you can do it outside.

(snip)

-- glen

Reply to
glen herrmannsfeldt

FTDI make some good chips for this type of application. Parts like the FT232H are mainly designed for USB to RS232 serial, but they also support USB to parallel and USB to FIFO. They can be set up with very little effort, it's really a matter of configuring the type of operation instead of writing a complete program. PC side drivers for Windows are included free.

Stephen Ecob

Silicon on Inspiration

formatting link

Reply to
Steve

But they don't do high speed -- if you need more than 12Mbps raw (which means a lot less by the time _you_ get your hands on it) then you're out of luck.

Which is really a bummer, but they have their business model, I'm sure.

--
www.wescottdesign.com
Reply to
Tim Wescott

If the OP is extrapolating from what he can do to what he needs to do, then he may be OK.

But he does need to weigh in.

--
www.wescottdesign.com
Reply to
Tim Wescott

The SERMOD-56 board, I believe, is discontinued. But, many Digilent evaluation boards have the Cypress USB chip on board, which is used for loading the bitfiles into the FPGA, etc., but you can also use it for data transfer, and you should be able to load your own firmware onto it after you've programmed the FPGA. On the FPGA side, you don't really need

Anyway, I do agree with you on this chip, it's pretty powerful and reasonably easy to use; there's a nice example at

formatting link
And it's faster than the run-of-the-mill FTDI chip FT245R. I think you have to do a bit of trickery with your host side driver (isochronous transfers, multiple threads?) to be able to get the full speed, though. Using standard blocking bulk transfers, I could only get up to about

11MB/s,though Cypress says it should go up to 40, and the software radio guys say they've gotten 30 or so out of it.

FTDI2232H is also supposed to be able to do high-speed transfers in synchronous FIFO mode, though I don't know if this works with the VCP drivers or not.. my guess is not.

Steve

Reply to
Steve B

Well, I'll be dipped -- I had been sure that the FTDI chips were all limited to USB full speed. The things you learn on USENET...

--
www.wescottdesign.com
Reply to
Tim Wescott

Am 11.08.2011 20:29, schrieb foxclab01:

What exactly are you trying to do? And why do you think that you need at least 300 Mhz? The PIC32MX575F512L contains a full speed usb controller, so there is less that 12mbit/s of bandwidth available. If you want to a

8-bit parallel out, that is just 1.5 Mhz.

Yes. But not unlikely this will be much harder and more expensive than doing this with a microcontroller. Or if the task can't be completely done within a microcontroller, combine the microcontroller with a small fpga or cpld.

Of course you can use the independently, but most FPGAs aren't as easy to deploy as a microcontroller. Most of them do not contain internal non-volatile memory, so you need a external memory to configure them. Also most of them need multiple externally generated voltages.

Greetings, Jan

Reply to
Jan Lucas

Use a fast ARM microcontroller which has DMA (like NXP's LCP1700 series which can run at speeds up to 120MHz). This should solve your problems unless you have to do a lot of processing on the data. Transferring 1.2MB/s (full-speed USB) should not be a problem. You can problably optimize a lot by handling data by 32bit words and not bytes.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico@nctdevpuntnl (punt=.)
--------------------------------------------------------------
Reply to
Nico Coesel

Have a look at XMOS:

formatting link

Their devices run at 400/500 MIPS per core, with the two-core XS1-L2 delivering 1000 MIPS. They can handle high-speed USB in software.

Leon

Reply to
Leon

On a decent Linux host PC, I actually got 30 MB/s from USB-> PC, and 22 MB/s from PC -> USB, using some test software from, I think, Wolfgang Weiser. This was just data transfer, with nothing being done with the data. I abandoned the project because I was never able to program their little state machine that is capable of doing hardware handshaking and data strobe timing. Someday, I'd really like to figure out how to make that work without buying a bunch of expensive development software.

Jon

Reply to
Jon Elson

independently

Of course you can use the FPGA or CPLD components on your own boards. The development boards exist for the main purpose to enable initial playing around and algorithm development before there is a commitment to produce a full product PCB.

--

Michael Karas
Carousel Design Solutions
http://www.carousel-design.com
Reply to
Michael Karas

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.