Help needed to emulate a microcontroller.

F

foxclab01

Guest
Hello to all.

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

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

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

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

Thank you in advance for your time.





---------------------------------------
Posted through http://www.FPGARelated.com
 
On Thu, 11 Aug 2011 13:29:57 -0500, foxclab01 wrote:

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?
Yes, although the USB part may be a challenge.

Are FPGA chips only for development boards or can I use them
independently in a PCB as I would do with any microcontroller?
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
 
On 08/11/2011 01:29 PM, foxclab01 wrote:

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.
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
 
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
www.sioi.com.au
 
On Fri, 12 Aug 2011 07:29:57 +1000, Steve wrote:

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.
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
 
On Thu, 11 Aug 2011 21:22:21 +0000, glen herrmannsfeldt wrote:

foxclab01 <foxclab01@n_o_s_p_a_m.yahoo.gr> wrote:

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.

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.

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.
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
 
foxclab01 <foxclab01@n_o_s_p_a_m.yahoo.gr> wrote:

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.
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.

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.
(snip)

-- glen
 
On 08/12/2011 04:13 AM, Jon Elson wrote:
On 08/11/2011 01:29 PM, foxclab01 wrote:

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.
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
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
http://www.triplespark.net/elec/periph/USB-FX2/
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
 
On Fri, 12 Aug 2011 09:25:53 +0900, Steve B wrote:

On 08/12/2011 04:13 AM, Jon Elson wrote:
On 08/11/2011 01:29 PM, foxclab01 wrote:

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.
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

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
http://www.triplespark.net/elec/periph/USB-FX2/ 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.
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
 
Am 11.08.2011 20:29, schrieb foxclab01:

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.
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.

Is there a way to emulate this behaviour with an FPGA?
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.

Are FPGA chips only for development boards or can I use them independently
in a PCB as I would do with any microcontroller?
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
 
"foxclab01" <foxclab01@n_o_s_p_a_m.yahoo.gr> wrote:

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.
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=.)
--------------------------------------------------------------
 
Have a look at XMOS:

http://www.xmos.com/

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
 
On 08/11/2011 07:25 PM, Steve B wrote:

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.
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
 
In article <0PSdnccmCKE4gtnTnZ2dnUVZ_tWdnZ2d@giganews.com>, foxclab01
@n_o_s_p_a_m.yahoo.gr says...
Are FPGA chips only for development boards or can I use them
independently
in a PCB as I would do with any microcontroller?
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
 

Welcome to EDABoard.com

Sponsor

Back
Top