Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facing register read, write error and bulk transfer timeout when running pocket_conf and pocket_trk #22

Open
hsm-0510 opened this issue Sep 2, 2024 · 9 comments

Comments

@hsm-0510
Copy link

hsm-0510 commented Sep 2, 2024

Hi Professor Takasu, I uploaded the F/W on PocketSDR 2CH using the technique you mentioned in your article: https://gpspp.sakura.ne.jp/diary202109.htm#0923 The process completed successfully, and I got the message "Successfully Programmed" both for Vend_ax.hex and pocket_fw.iic

However, when I connect the PocketSDR and run the pocket_conf command, I get the following register read error and register write error for CH1 and CH2. When I repeatedly run the command the registers that face these errors change, sometimes the error occurs in many registers, other times it only occurs in one register. But the problem still persists. Is the SPI communication between the Cypress controller and MAX2771 the source of this issue? Did you face similar problem?
image
When I was trying to run pocket_conf again and again, only once did it show no error. So I ran the pocket_conf -a command to see if the registers were written correctly. After verifying, I ran the pocket_dump command, it ran but no IQ was stored in the binary file. The ch1.bin file created was 0KB, and when I tried to run the pocket_trk command after that it showed no results on the terminal just indication of "bulk transfer timeout".

Is the bulk transfer timeout also because of the SPI communication between Cypress and MAX2771?

@tomojitakasu
Copy link
Owner

Try the following procedure.
(1) No need to execute Vend_ax.hex.
(2) Jumper J2 on FE should be OFF to disable EEPROM.
(3) Execute USB Control Center. USB Control Center recognizes FE as "Cypress FX2LP No EEPROM Device".
(4) Jumper J2 should be ON to enable EEPROM.
(5) Select "Cypress FX2LP No EEPROM Device", execute menu Program - FX2 - 64KB EEPROM of USB Control Center, and select FW image pocket_fw.iic to write FW to FE.
(6) After several seconds, you can see "Programming Suceeded" in status bar.
(7) Reset FE by disconnecting and re-connecting USB cable.

@hsm-0510
Copy link
Author

hsm-0510 commented Sep 4, 2024

I followed the instructions and programming succeeded. But saw the same results as before with register read and write error and bulk transfer timeout in pocket_conf, pocket_dump and pocket_trk. And after dump completion the .bin file size is 0 KB:
image
image
image

@tomojitakasu
Copy link
Owner

You don't seem to able to access your FE properly.
(1) Your FE itself does not work well.
(2) Another USB device with VID:PID=04BA:1004 or 04B4:00F1 exists.

@hsm-0510
Copy link
Author

hsm-0510 commented Sep 5, 2024

Hi, that's what I thought. Earlier I wasn't testing with a USB2.0 Hub, now when I did, the read register and write register issue got resolved and the configuration settings uploaded successfully to MAX as shown below:
image
However, when I run the pocket_trk command, I get:
image
image
image
image
image
There seems to be a libusb bulktransfer error (2) reoccuring. This also happens when i run the pocket_dump:
image
image
image
I also checked the devices connected and their VID:PID below on my system, and multiple 04BA:1004 or 04B4:00F1 VID:PID do not exist in my computer:
image

@tomojitakasu
Copy link
Owner

(1) Would you show detailed environmet in which did you test. (FE H/W, CPU, OS, version, version of GCC, LIBUSB.)
(2) Test pocket_scan, pocket_conf and pocket_dump first.
(3) After reset your PC and try again.

@hsm-0510
Copy link
Author

hsm-0510 commented Sep 5, 2024

  1. Environment Details:
  • FE H/W: Pocket SDR FE_2CH
  • CPU: WinMate IK32 Intel Core i5-7200U
  • OS/Version: Ubuntu 22.04.4 LTS (Jammy)
  • GCC Version:
    image
  • LIBUSB:
    image
    image
  1. Tested pocket_scan, pocket_conf and pocket_dump:
    Screenshot from 2024-09-05 09-17-06
  2. Reset the PC but still got the same result libusb bulk transfer error (2)
  3. I also tested Pocket SDR with i7-12700 12thGen CPU, Windows 11 Pro. But same result

@tomojitakasu
Copy link
Owner

tomojitakasu commented Sep 5, 2024

Your FE is recognized only as a USB 1.1 device and FULL speed mode (12Mbps). FE should be operated as USB 2.0 HIGH speed mode (480Mbps).

(3) BUS= 1 PORT= 2 SPEED=FULL ID=04B4:1004 Cypress EZ-USB

I'm not sure the reason why. The USB host controller may have some limitation to support multiple HIGH speed USB devices. Please disconnect other USB devices or hubs and try again.
Or check USB cable to support USB 2.0 HIGH speed mode.

@hsm-0510
Copy link
Author

hsm-0510 commented Sep 6, 2024

Professor, could the issue be with drivers? I remember installing EZ-USB FX2LP drivers in windows, but I haven't done that for my Linux system. Also when I checked without the USB Hub on my linux system I get the appropriate speed, but it shows drivers=none:
Screenshot from 2024-09-06 10-27-45
The Bus:02, Port:03, Dev:08 is the PocketSDR device (the second last line). It shows Drivers=none, and speed 480Mbps.

Is this the appropriate link to get the driver for linux?
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.ezusbfx3sdk
Using this guide to install them: https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://community.infineon.com/gfawx74859/attachments/gfawx74859/usb-superspeed-peripherals/28012/1/FX3_SDK_Linux_Support.pdf&ved=2ahUKEwi0iNH2xq2IAxWVV0EAHQ5NEu8QFnoECBgQAQ&usg=AOvVaw2skG7uKJx5YjHXVLZ65HB5

@tomojitakasu
Copy link
Owner

tomojitakasu commented Sep 6, 2024

I have tested my FE 2CH with Ubuntu 18.04LTS, 20.04LTS, 22.04LTS and 24.04LTS but had no problems. Driver=[none] by lsusb seems right.
For Linux, Raspberry OS and macOS, Pocket SDR does not use Cypress driver. It uses libusb-1.0 as a generic USB driver instead. So you don't need to install Cypress driver for these OS.
Only for Windows, Pocket SDR uses Cypress driver and API for EZ-USB FX2LP/FX3 (cyusb.sys and CyAPI.a). Earlier version Pocket SDR also used libusb-1.0 even for Windows but it had some performance problem (mainly data drop). So I replaced it by Cypress driver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants