cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

Anonymous
Not applicable

Description: When the FPGA sends data to the PC through the USB chip, after running for a period of time, the PC will no longer receive data, and the FPGA will not send data anymore. At this point, the USB chip FLAGA signal does not go low, so the FPGA cannot send data all the time.

Question: Why is the usb chip FLAGA signal always high? What caused the usb chip to no longer receive data?

框图.jpg

FPGA FLAGA signal

flaga问题.png

Pc log error

transfer status: LIBUSB_TRANSFER_ERROR

UHD Error:

The receive packet handler caught a value exception.

ValueError: bad vrt header or packet fragment

terminate called after throwing an instance of 'uhd::usb_error'

what():  RuntimeError: USBError -4: usb rx6 submit failed: LIBUSB_ERROR_NO_DEVICE

transfer status: LIBUSB_TRANSFER_NO_DEVICE

--------------------------------------------------------------------------------------------------------

template <typename buffer_type>

UHD_INLINE typename buffer_type::sptr get_new(const double timeout)

{

if (wait_for_completion(timeout))

{

///*qiaoping

if (result.status != LIBUSB_TRANSFER_COMPLETED)

                throw uhd::io_error(str(boost::format("usb %s transfer status: %d")

                                        % _name % libusb_error_name(result.status)));

//*/

if (result.status != LIBUSB_TRANSFER_COMPLETED)

std::cout << boost::format("transfer status: %d") %  libusb_error_name(result.status) << std::endl;

result.completed = 0;

return make(reinterpret_cast<buffer_type *>(this), _lut->buffer, (_is_recv)? size_t(result.actual_length) : _frame_size);

}

return typename buffer_type::sptr();

}

Screenshot from 2018-05-29 10-16-42.png

0 Likes
Reply
3 Replies
Moderator
Moderator

Do you have feasible to check the Debug Prints?

If yes, please collect the logs and post here.

0 Likes
Reply
Anonymous
Not applicable

thank you for your replay

Pc log error

transfer status: LIBUSB_TRANSFER_ERROR

UHD Error:

The receive packet handler caught a value exception.

ValueError: bad vrt header or packet fragment

terminate called after throwing an instance of 'uhd::usb_error'

what():  RuntimeError: USBError -4: usb rx6 submit failed: LIBUSB_ERROR_NO_DEVICE

transfer status: LIBUSB_TRANSFER_NO_DEVICE

--------------------------------------------------------------------------------------------------------

template <typename buffer_type>

UHD_INLINE typename buffer_type::sptr get_new(const double timeout)

{

if (wait_for_completion(timeout))

{

///*qiaoping

if (result.status != LIBUSB_TRANSFER_COMPLETED)

                throw uhd::io_error(str(boost::format("usb %s transfer status: %d")

                                        % _name % libusb_error_name(result.status)));

//*/

if (result.status != LIBUSB_TRANSFER_COMPLETED)

std::cout << boost::format("transfer status: %d") %  libusb_error_name(result.status) << std::endl;

result.completed = 0;

return make(reinterpret_cast<buffer_type *>(this), _lut->buffer, (_is_recv)? size_t(result.actual_length) : _frame_size);

}

return typename buffer_type::sptr();

}

0 Likes
Reply
Moderator
Moderator

Hello Shi Shu,

- Please let know if you have the UART functionality in the firmware to implement the UART debug printing. If yes, kindly, share the UART logs.

- Also, please let know if you are referring to the AN65974 app note for your implementation.

Best regards,

Srinath S

0 Likes
Reply