Guest Tom Posted April 24, 2011 Report Share Posted April 24, 2011 Hello Papilio community! I only very recently discovered the Papilio project and it looks great! After spending the last months working with the Arduino platform I am now looking for options on how to overcome certain limitations a microprocessor sets. Since at this point I have very little knowledge about FPGAs in general and their specific application capabilities I was hoping someone here might be able to tell me whether the Papilio is a viable choice for my requirements. I am working on a project that requires large amounts of sensor data to be collected and processed in realtime. I have several sub-modules (between 4 - 16 for now) collecting about 200-300 kB/s of data. This data has to be collected at a central point, processed and sent to a computer. Would an FPGA be a good choice for such an application? Thank you very much for the information! Have a nice day Tom Link to comment Share on other sites More sharing options...
Jack Gassett Posted April 25, 2011 Report Share Posted April 25, 2011 Hello Tom, Thank you for dropping by with your question. The Papilio One uses an FT2232 USB chip that will allow a transfer speed up to 3Mb/s so you won't be able to get 16 sub modules with 300 kB/s of data. But the Papilio was designed to be extensible with Wings and we are working on a high speed FT232H based Wing that should support 480Mb/s. If you are running into a ceiling with the Arduino then an FPGA is a good option for getting around that ceiling. You can use the AVR8 soft processor and an Arduino sketch to control your application and then define VHDL code for your sub modules. Your sub modules would then run in parallel and would not use any of the AVR8 cycles. There is a learning curve involved with doing this but our goal with the Papilio is to help people get past that learning curve. Jack. Link to comment Share on other sites More sharing options...
Guest Tom Posted April 26, 2011 Report Share Posted April 26, 2011 Hello Jack, thanks for the reply! So did I get this right, I could use a single FPGA like the Papilio to implement concurrent data collection modules on the one side and a data processing module on the other side? What about speed, would it be possible to let's say sample 5000+ sensors at a rate of >= 100Hz and have data processing at >= 100Hz? I assume I would still need external multiplexer arrays for the sensors but what about the ADC, external or could this be implemented on the FPGA? Thanks a lot, I guess these are rather basic questions once you are familiar with the topic but at this point I am not yet. One more thing: (how well) does the Papilio work under OSX? I saw a post that it is possible but not yet officially supported?! Have a great day! Tom Link to comment Share on other sites More sharing options...
Jack Gassett Posted April 27, 2011 Report Share Posted April 27, 2011 Hello Tom, The two main benefits with an FPGA in your situation, as I see it, is that they are very good at parallel tasks and they can be configured in any manner that you want. So you can setup a bunch of parallel tasks to collect your data that would all be independent of each other. But there is a real limitation in that the Papilio One only has 48 I/O lines so practically speaking you would probably only be able to sample 48 sensors with one Papilio One. You then have the flexibility to add in a Soft Processor to do work on the collected data. Whether you will be able to find a soft processor that is going to be powerful enough to do the processing you need done is the big question mark. A soft processor is not going to be as fast or powerful as a dedicated Cortex or Atom processor. But, if you have enough space in your FPGA you can implement more than one soft processor. Your soft processor and data sampling could easily exist on the same Papilio One board. It's hard to say if a small FPGA like the Spartan could handle the type of data processing you are talking about. The other limitation is that the Papilio One I/O lines are not ADC capable without some help. We have an SPI ADC Wing and it is possible to make the I/O lines sample analog using an external comparator as outlined in this XAPP. The Papilio tools are written for mingw under windows so they can be as portable as possible to Linux and OS X. We have not been able to package everything up for Linux and OS X yet but users have reported that everything works under both environment. It does require some know how to get the tools compiled and working though. Jack. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.