06-19-2018 07:04 AM
Warning, I am very new to this, so some of my questions may have obvious answers.
As the title suggests my goal is to interface an arduino Lenonardo to a Virtex 6 FPGA. I also wish do add an IMU to the arduino and send live data to the FPGA, first through the arduino, for computation, and then send this data to the PC. At the moment the PC communication is using UART to USB serial communication through the J21 connector, and is working fine.
A few basic questions that I was unable to see a clear answer in the documentation. The USB host J5, uses SPI communication? At least this is what is shows on the hardware guide, MOSI, MISO, ect. I would expect a USB host to use RX and TX. When first looking at the FPGA my first thought was to connect the Arduino to the host port, but this obviously would not work since the micro port on the Arduino uses TX and RX not SPI. Am I misreading the documentation and not seeing something? If not, what is the USB host port usually used for?
My second question is more open ended, if SPI and another USB Serial connection aren't applicable, is IIC through the FMC connector what I should go with?
Or is there a way with VHDL/ISE design suite to hijack ports/interface pins and assign them to connection's in the USB host? Again brand new to VHDL, Digital Design, and micro controllers, kinda learning everything at once.
06-19-2018 12:43 PM
by the sound of it, you have a board with a xilinx on it .
which board ?
06-20-2018 06:17 AM - edited 06-20-2018 07:47 AM
What is the purpose of the Arduino? Just to be a processor for the IMU? If so, why not just instantiate a MicroBlaze MCS core on the Virtex 6, and do the processing on that? The Arduino adds complexity, especially because it's at the wrong voltage (FPGAs are 1.8V/2.5V/3.3V; connecting them to a 5V Arduino output will cause permanent damage. IMUs are also 1.8V/2.5V/3.3V, with the same limitations).
Which FPGA board do you actually have? Virtex 6 is a family of FPGAs; it's like saying "I've got an AVR development board" (which includes virtually all the Arduinos, all the Atmel development kits, etc). Without the specific board it is very hard to give advice.
Edit: come to think of it, what is the purpose of the Virtex 6 in this system? If the aim is just to get data from the IMU/Arduino to a PC, there are easier ways than putting a very expensive FPGA in the middle and learning Verilog or VHDL.
06-20-2018 01:58 PM
The board is a Virtex6 Ml605 evaluation board. I am using 14.7 ISE design suite. I am using the FPGA to do some heavy computations, I am creating a Attitude determination system. This is why I need the FPGA in between the PC and the IMU. I am using an Xsens MTx for the IMU. It has a USB connector.
The thought process behind the Arduino, at least from my mentor(I am a Co-Op) was to make the project a bit easier I guess. Has to do with message structure and ease of use vs going straight to the FPGA. An optimized solution would skip the arduino, but not necessarily looking for optimized, just what ever is easiest.
I was somewhat wrong in my earlier description, after looking at the USB J5 port data sheet pins 47 and 48 named USB_RD_B_LS and USB_WR_B_LS act as rx and tx. So if I stick with the arduino solution, which may not be the way to go from what you have said, I am curious if it will be easy to us these ports? Also you mentioned the off set of voltage, the Leonardo has a regulator creating a 3.3 v supply(with limited current draw), is it not possible to use this?
The MicroBlaze MCS core is a good idea, just looked that up. I know you can utilize SDK with it, but I do not have a license for that. Would that be a problem along my design process?
Pretty much everything I am doing, I am also learning on the fly.
06-21-2018 07:17 AM
I know this is a Xilxin forum
I'd be tempted to ditch the FPGA.
and the 180 MHz Arduino
works great in the flying models here....
06-21-2018 07:35 AM
I wander if I could implement everything I need on that..Floating point computation, Kalman Filter, Quaternion differentials/lat and long equations, ect. Unfortunately even if I could, part of the project is to become efficient with FPGA's and programming them. Since that is what they need in the future. Maybe the project tools could have been better, better thought out, or I could have been given more freedom. But essentially I have been handed a FPGA, a arduino, and a IMU and told to make it work. Arduino is optional, but was suggested heavily at the beginning.
Those look pretty cool though. Thanks for the suggestion!
06-21-2018 07:52 AM
Your reasoning is perfectly understandable,
could you do what you say on the above arduino , yes,
06-21-2018 08:53 AM
Correction to my question. I still confused about the Host port. I need HSS interface, but the one I mentioned was HPI. On the cyprus data sheet I found serial communication, but could not find the correlating pins on the Xilinx documentation. Does that mean Serial communication over uart would not work?