Guest Tom

Is the Papilio a good choice for ...

Recommended Posts

Guest Tom

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Guest Tom

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now