Archive for the ‘Papilio’ Category

Implementing SPI & I2C Interfaces On Papilio One

Friday, April 19th, 2013


Papilio user and tech blogger Duane Benson from All Programmable Planet has a new article on his ongoing quest to create his own robotic tele-presence avatar. This one is about implementing SPI and I2C interfaces on his Papilio One for the project.

Duane’s avatar will need a series of motors and sensor controls for various functions; these will be communicating via I2C. Also, some of the robot’s sensors will require an SPI interface. In his article, Duane explains what he intends to do to hash out the details of getting these systems working. Goals for this phase of building the avatar are laid out below:

I’ve already gotten the slave motor drivers working with MCUs in command, so I know they work, which means I can concentrate on making sure I get the FPGA code right. So, here’s the plan (we’ll call it “Plan A” so no one gets confused):

•The FPGA will be the master for both my I2C and SPI interfaces

•My first implementation will be in my Papilio One FPGA development board

•At some point, I’ll port everything to my ZedBoard

•I’ll create a state machine at the heart of my I2C engines (maybe update the SPI too)

•The first incarnation will just send commands to my motor drivers

•Following that, I’ll start receiving data from my sensors

Duane goes into more detail, as well as some code in his article, so be sure to take a look for a much more in-depth view of what he’s up to. It’s always great to see the Papilio being put to creative use in these projects. Keep us updated on your progess, Duane!

(via All Programmable Planet)

Papilio And pcDuino Together As A USB to 3.3V TTL RS232 adapter

Friday, April 5th, 2013

Here’s a great and simple project using a Papilio One and a pcDuino together for the purpose of making a USB to 3.3V TTL RS232 adapter. This is from Mike Field’s site Hamsterworks where he’s got a full project description and the code to go along with it! Mike says,

I’ve got a pcDuino and sometimes it is nice to have access to the serial console. Although you wouldn’t want to dedicate a board to it it is perfect for occasional use. As a bonus, due to the flexibility of the FPGA’s I/O pins you can use it for multiple different I/O standards and voltages – If you change to IOSTANDARDs and maybe the Vco jumper you have also got yourself 2.5V or 1.2V CMOS to USB adapter!

Cool project, Mike.  It just so happens that we are now selling the pcDuino to compliment our own Gadget Factory product line-up, you can check it out in all its glory here.

(via Hamsterworks)

In-Fabric Serialization: 1080p DVI-D With a Spartan 6 LX FPGA

Wednesday, March 6th, 2013

Mike Field, best known as “hamster” came up with an innovative way to display 1080p video at 60Hz from a Spartan 6 LX FPGA. It really came down to a workaround solution given the transmission speeds of the board vs. what is reqired for 1080p video at 60Hz. Mike explains:

The SERDES2 function in the Spartan 6 LX family of FPGAs can transmit at about 1Gb/s. This is a quite useful and respectable figure, and quite a few development boards combine this ability with the ability to generate TMDS (transition-minimized differential signaling) signals to implement a DVI-D / HDMI interface at next-to-no extra cost. For users of these boards, this is a great feature — being able to display 24-bit full color images is very appealing compared with the not-so-nice 8-bit or 12-bit analogue VGA (video graphics array) interface implemented on most older boards.

If you’re like me, you too would be slightly disappointed if you were to read the infamous XAPP495 application note to discover that 1Gb/s is only 66 percent of the bit rate required for a “Full HD” 1080p/60Hz display. My laptop can do 1080p, my $99 media player too, but not my FPGA board?


So how did Mike get the Spartan 6 LX to achieve the required speeds for full HD video? He invented a technique to serialize data within the FPGA’s main fabric at 1.5Gb/s that he’s calling “In-fabric serialization”. This technique will work on any Spartan 6 LX-equipped FPGA, which of course includes the Papilio Pro. So lay it out for us, hamster:
Using two 375MHz clocks, my technique implements 4:1 serialization and can generate a 1.5Gb/s stream of bits — fast enough to implement a full 1920×1080 @ 60Hz DVI-D interface without any extra hardware! It is also somewhat scalable — with three clocks, for example, the same technique can implement 6:1 serialization.

Very cool, Mike. So, those of you that have your Papilio Pro hardware can now amaze your friends and insult your enemies with this new ninja technique! Feel free to add your thoughts in the comments, and be sure to check out Mike’s full article over at All Programmable Planet here.

(via All Programmable Planet)

 

 

Sneak Peek – Build Arduino-Compatible SOCs With New Schematic Editor

Monday, February 11th, 2013

Today we wanted to give you a sneak peek at a new SOC (System On Chip) schematic editor for Papilio that we are working on.  The editor is a drag and drop system that makes it easy (even for beginners) to draw schematics even without necessarily having VHDL experience.  Jack says,

What we need is a bridge that allows people to pick up a Papilio and build their custom designs without learning a line of VHDL. Then as they become comfortable with all of the concepts they can start tackling VHDL when they need it.

Here are the goals for the Papilio SOC system:

  • Provide schematic symbols for the ZPUino, AVR8, and any future Soft Processors we want to include.
  • Create a library of Wishbone peripherals such as VGA controllers, Stepper controllers, Delta-Sigma DACs, UARTs, etc.
  • Write Arduino libraries to support those Wishbone peripherals
  • Write documentation for the Wishbone cores and the supporting libraries.

A new user with zero experience would be able to drag and drop a ZPUino symbol onto the schematic editor and then drag and drop whatever peripherals they need onto the wishbone slots. Next they connect the external I/O pins, update the ucf file, and they are ready to synthesize their custom design! Need two UARTs? Just drag and drop two uarts into the wishbone slots… Next they would fire up the Arduino IDE and in the define section they would add the library they need and specify what wishbone slot that library should communicate with. Voila! A custom Arduino compatible system that anyone of any skill level can design and use!

Please note that this is a work in progress, and we’ll spill more details as they become available. Take a look at the resource list below if you’d like to mess with the editor, and please throw in your comments or suggestions in the comments section.  Any and all feedback is appreciated!

(via the forums)