Electronics > Projects, Designs, and Technical Stuff

Easiest way to collect some data @50MB/s and dump to computer

<< < (10/11) > >>

magic:

--- Quote from: Harvs on June 15, 2020, 11:25:55 am ---However in the troubleshooting section, it links to another page:
https://www.triplespark.net/elec/periph/USB-FX2/software/io_examples.html

In the benchmark example (which I'm guessing is what the -I option is all about), there's a few pins that must be tied high and low for it to work. This may be worth looking at, I haven't had the chance to do it.

--- End quote ---
It's alive :-+


--- Code: ---fx2pipe -I
Firmware config: 0x12 0xc3 0xe0 0x0d 0x12
IO loop running...
Downloading firmware [builtin]...
Submitting max. 16 URBs to fill pipeline... 16 submitted
fx2pipe: 239845376 bytes in 6.516s (avg 35946 kb/s, curr 35888 kb/s)
--- End code ---

The benchmark page is about another firmware, but fx2pipe also uses the slave FIFO mode which requires a bunch of pins to be strapped right before it transfers any data. The asynchronous option would require external clock, synchronous with internal 48MHz clock appears to be the default.

--- Quote ---     Connect to HIGH (3.3V): PA2/SLOE, PA5/FIFOADR1, RDY0/SLRD
     Connect to LOW (GND): PA4/FIFOADR0, RDY1/SLWR
--- End quote ---
The pins seem to be Hi-Z so no cheating, all have to be connected with cables.

Oddly, I get two different speeds slightly less than 30MB/s with -ifclk=30 -8 on two different machines. That doesn't look encouraging :-//

SuperFungus:

--- Quote from: magic on June 17, 2020, 12:55:10 pm ---Oddly, I get two different speeds slightly less than 30MB/s with -ifclk=30 -8 on two different machines. That doesn't look encouraging :-//

--- End quote ---

How much slightly lower?  I wonder if the ifclock is not running at exactly 30MHz or if fx2pipe is averaging out a one time setup at the beginning.  When I used it years ago, we made a pattern generator to test all the different options with, because we wanted to make sure we weren't going to drop data ever.  We never had any problems. :-//

magic:
Something like 29300/29150 avg after a few seconds of running continuously when the readings mostly stabilized. I didn't test any further.

Wall clocks of both systems are synced to NTP so I doubt it's measurement error, unless fx2pipe's throughput meter is buggy.

magic:
Okay, part of the problem turned out to be fx2pipe counting kB as 1024 while the FX2 runs at exactly 30MHz. The 29300kB/s machine actually is correct:


--- Code: ---$ LD_LIBRARY_PATH=../libusb-0.1.12/.libs/ ./fx2pipe/fx2pipe -ifclk=30 -8 -n=300000000 -0
Firmware config: 0x12 0x83 0xe0 0x0c 0x12
IO loop running...
Downloading firmware [builtin]...
Submitting max. 16 URBs to fill pipeline... 16 submitted
fx2pipe: 293044224 bytes in 9.768s (avg 29297 kb/s, curr 29259 kb/s)URB (just reaped) status=-75 (Unknown error -75), cancelled=0
HMM: URB(18311): blen=8704/8960, status=-75, error count=0, cancelled=0
IO loop exited
fx2pipe: 299991040 bytes in 10.000s (avg 29296 kb/s)
--- End code ---

The other one reports times randomly longer by 50~300ms. Clearly something is wrong with that box.

Harvs:
Super cool, thanks for posting it gave me the enthusiasm to wire those pins up under the microscope.

For reference, because I'm using a saleae clone, the usb vid/pid needs to be added.

--- Code: ---./fx2pipe -d=0925:3881 -8 n=300000000 -0
Firmware config: 0x12 0xc3 0xe0 0x0c 0x12
IO loop running...
Downloading firmware [builtin]...
Submitting max. 16 URBs to fill pipeline... 16 submitted
fx2pipe: 297517056 bytes in 7.265s (avg 39992 kb/s, curr 39777 kb/s)URB (just reaped) status=-75 (Unknown error -75), cancelled=0
HMM: URB(18311): blen=0/8960, status=-75, error count=0, cancelled=0
IO loop exited
fx2pipe: 299991040 bytes in 7.325s (avg 39995 kb/s)

--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod