i need to konw how to make labview get data from "CY7C68013A-56 USB Microcontroller High-Speed USB Peripheral Controller" which is connectoed to xilinx spartan 6
the general setup is displayed in http://www.cypress.com/file/44551/download on page 2 ( source code is on http://www.cypress.com/documentation/application-notes/an61345-designing-ez-usb-fx2lp-slave-fifo-interface )
FX2LP Code Architecture
The firmware configures auto mode for both the IN and OUT endpoint FIFOs.
This means that the packets are committed automatically from the
external peripheral to the USB domain for IN transfers and
vice versa for OUT transfers. The 8051 CPU is not involved in
committing packets. Refer Slave FIFOs chapter in EZ - USB
Technical Reference Manual to get more details on configuration of
endpoint FIFOs in auto or manual mode. As bulk transfers are being
used in this application, you need to configure the endpoints as Bulk.
But based on the end application you can configure endpoint type as
Interrupt, Control, or Isochronous in the USB descriptor file.
so you can get the data from the fpga directly via the USB endpoints EP2 (OUT) and EP6 (IN) of the FX2LP via bulk transfer
important is page 3 of http://www.cypress.com/file/44551/download because there is information about how to configure the FX2LP, pages 10 to 23 are also important, what is done with the program USB Control Center there has to be reproduced with labview
for this you have to connect labview to the endpoints, EP2 as OUT ( from labview pc to FX2LP ) and EP6 as IN ( from FX2LP to labview pc ) as bulk transfer
this is done by NI-VISA, details are in
http://www.cypress.com/forum/psoc-3-known-problems-and-solutions/interfacing-psoc-fx2lp-labview-using-ni-visa-drivers <---
http://www.ni.com/tutorial/4478/de/ <---
http://zone.ni.com/reference/en-XX/help/370131S-01/ni-visa/usingnivisatocommunicatewithyourusbdevice/
http://digital.ni.com/public.nsf/allkb/400D6EAB5CFE1C6B86257395005F5D48
you have to configure the FX2LP correctly and get the VID ( vendor id ) and PID ( product id ) of your FPGA and modify the driver with it
( http://www.cypress.com/file/126446/download ( http://www.cypress.com/documentation/technical-reference-manuals/ez-usb-technical-reference-manual )
( in http://www.cypress.com/documentation/application-notes/an4053-streaming-data-through-isochronous-or-bulk-endpoints-ez-usb is a pc application for USB bulk transfer ( not labview ) )
Related
I am trying to flash code over CANBUS on Nucleo-F446. I am referring this application notes
https://www.st.com/resource/en/application_note/cd00264321-can-protocol-used-in-the-stm32-bootloader-stmicroelectronics.pdf
So according to it in Boot mode the default baud rate of CAN is 125KBPS and we need to use PB5 and PB13 pin which are CAN2 pins.
For testing I tried to send CAN message with DLC=0 and STDID = 0x79 for which STM32 should return a ACK with same ID i.e. 0x79.
But I am not getting any response.
You must add a external clock to your Nucleo Board
The system clock is derived from the embedded internal high-speed RC for USARTx and
I2Cx bootloaders. This internal clock is also used for CAN and DFU (USB FS Device) but
only for the selection phase. An external clock multiple of 1 MHz (between 4 and 26 MHz) is
required for CAN and DFU bootloader execution after the selection phase.
STM Bootloader Description
I am trying to use the Thrustmaster T-Flight Hotas X joystick with my STM32 f407 Discovery board. As you know, the joystick has a USB connection, but actually I do not know how it transmits data and I do not know what kind of protocol it uses...do you have any advice?
Is there a way to connect the joystick to the board?
Yes, you can use the USB OTG port in host mode to connect your joystick.
The joystick will use USB HID protocol - this is documented in detail at usb.org. Short version: The device tells you in its "report descriptor" how the data is formatted. The data itself is transmitted via interrupt endpoint.
Unfortunately, the software side is non-trivial, as you need host mode on the MCU. Parsing the report descriptor is not required if you only ever use the same joystick model - which can be identified using the VID:PID in the device descriptor.
There should be an appnote with some example code for USB host mode on the STM website, but in order to support your joystick you probably have to make some modifications - which are rather difficult for beginners.
I'm looking to create a device that acts as a host to a USB peripheral, format the data, then send it out to another host (the PC). Are on-the-go chips capable of accomplishing this or would you need to implement both a host USB microcontroller and a peripheral USB controller? I don't see much information out there for creating a middleman that performs data molding for USB prior to reaching a host. Any information would be appreciated, hopefully I didn't butcher this concept.
you should use a microcontroller with 2 USB busses.
One should act as a host, and the other as a slave.
You will need to implement them both.
USB OTG is used to create a host and a slave in 1 device with 1 connector,
so it's impossible to use them together at the same time.
Is there any USB 3.0 hub or device that multiple USB 2.0 devices can be connected to and still retain the maximum USB 2.0 bandwidth for each device by utilizing the higher bandwidth of USB 3.0?
These devices exist for USB2.0/1.1 interfacing (they are called Multi-TT USB hubs).
Are there any such devices that exist for USB3.0/2.0? What I'm trying to do is connect 3 high-bandwidth USB 2.0 cameras to one USB 3.0 port.
I've been personally trying to find details about this as well. I'm trying to get multiple USB based audio cards to MUX over USB 3.0.
So far the following two URLs are giving me my details:
http://www.via-labs.com/en/products/vl810/index.jsp
http://electronicdesign.com/embedded/what-s-difference-between-usb-20-and-30-hubs
-- 1 --
This is interesting because it shows a block diagram of the VIA VL810 controller chip. Unfortunately, it sure looks like the USB2.0 functions are completely seperate from the USB 3.0 sections. This leads me to believe that, at least this chip, and HUBs that use it, can not multiplex USB2.0 transfers over USB3.0.
-- 2 --
This site spends a lot of time talking about how the HUBs are suppose to work. It takes the time to explain that the USB3.0 bus is separate from the USB2.0 bus:
Within the hub, only the port power control logic is shared between the USB 3.0 path and the USB 2.0 path, since there is only one 5-V power path in either USB 2.0 or USB 3.0.
This leads me to assume that most if not all current USB 3.0 HUBs can't multiplex.
You comment about Multi-TT Hubs being available for USB 2.0/1.1 gives me hope that some time in the (near?) future we'll have the same ability with USB3.0/2.0.
I'm trying to interface the Mindwave (http://store.neurosky.com/products/mindwave-1) with my Altys board, through the USB UART port. The dongle I'm trying to connect is basically a wireless reciever that outputs serial data stream on the USB connection. I'm trying to read in this serial stream on the FPGA.
The problem I'm seeing is that when I try to Chipscope the UartRx pin (A16), I see no activity on it even though the dongle is supposed to send 0xAA in standby mode.
Since the FPGA does not power the dongle, I have it connected to an external power USB hub and then connect the hub to the FPGA. However I don't see any activity.
Do I need to convert the signals to another level, or invert them? I thought the EXAR chip takes care of it.
Did you try swapping RX and TX?
Did you have acces to a scope? To check you can repeatly send 'U's (0x55) and look with a scope to see which line is RX and which is TX. You can also check the speed of the interface with this method.