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 http://www.FPGARelated.com
Help needed to emulate a microcontroller.
Started by ●August 11, 2011
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 11, 20112011-08-11
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. > > JonThe 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
Reply by ●August 11, 20112011-08-11
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
Reply by ●August 12, 20112011-08-12
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






