本帖最后由 jmg 于 2024-10-7 11:33 编辑
Here are my test notes from earlier for STC USB-2UART
Notice the average sustained speed is quite low, as poor as 1/7th of the baud rate asked for.
- Baud 0x00 Sustained average Bandwidth Results
- 10Mbd 0.9us 736.975k*2 = 1.473950MBd = 14.739% no failures on 100k blocks (40MHz sysclk /4 ?)
- 9Mbd 1.0us 658.905k*2 = 1.317810Mbd = 14.642% no failures on 100k blocks (36MHz sysclk /4 ?)
- 8MBd 1.1/1.2us 581.299k*2 = 1.162598Mbd = 14.532% no failures on 100k blocks (32MHz sysclk /4 ?)
- 7.5Mbd 1.2us 542.266k*2 = 1.084532Mbd = 14.460% no failures on 100k blocks (30MHz sysclk /4 ?)
- 6MBd 1.5us 425.092k*2 = 850184 = 14.169% no failures on 100k blocks (24MHz sysclk /4 ?)
- 5MBd 1.8us 605.371k*2 = 1.210742Mbd = 24.214% no failures on 100k blocks (40MHz sysclk /8 bumps % BW ?)
- 3MBd 3.0us 493.187k*2 = 986374 = 32.879% no failures on 100k blocks (36MHz sysclk /12 ?)
- 2.5Mbd 3.6us 515.070k*2 = 1.030140Mbd = 41.205% no failures on 100k blocks (40MHz sysclk /16 ?)
- 2Mbd 4.5us 453.835k*2 = 907670 = 45.383% no failures on 100k blocks (40MHz sysclk /20 ?)
- 500k 169.974k*2 = 339948 = 67.989% no failures on 100k blocks (40MHz sysclk /80 ?)
-
-
- 22.1184M/4 = 5529600 = 1.627us measure 1.6/1.7us 388.223k*2 = 776446 = 14.041% OK
- 22.1184M/8 = 2764800 => reports invalid baudrate
- 22.1184M/12 = 1843200 = 4.882us measure 4.8/4.9us 410.528k*2 = 821056 = 44.545% OK
- 22.1184M/16 = 1382400 = 6.510us measure 6.5us 392.003k*2 = 784006 = 56.713% OK
- 22.1184M/20 = 1105920 => reports invalid baudrate
- 22.1184M/24 = 921600 = 9.765us measure 9.6/9.7 235.302k*2 = 470604 = 51.063% OK
- 22.1184M/28 valid
- 22.1184M/32 valid
- 22.1184M/36 = 614400 = 14.648us measure 14.6us 181.057k*2 = 362114 = 58.937% OK
- 22.1184M/48 = 460800 156.778k*2 = 313556 = 68.046% OK
- 22.1184M/96 = 230400 96.866k*2 = 193732 = 84.085% OK
- 22.1184M/144 = 153600 69.083k*2 = 138166 = 89.951% OK
- 22.1184M/156 = 141785 67.703k*2 = 135406 = 95.500% OK
- 22.1184M/160 = 138240 65.10us measure 65us 66.520k*2 = 133040 = 96.238% OK
- 22.1184M/164 = 134868 66.73us measure 66.7us 65.115k*2 = 130230 = 96.560% OK, rare failures.
-
- 22.1184M/168 = 131657 drops chars !!
- 22.1184M/192 = 115200 drops chars !!
- all the way down to the
- 22.1184M/4/120m below which it starts working ok again.
复制代码
If I compare with a WCH CH9102, it is much better - it managed close to 1 MByte/second USB BUS traffic,
- WCH CH9102 checks - Simple Loopback Echo Block sends
- 1Mbd sustains 499,573*2 100% with 10 x 100k blocks. < 0.1% BW loss
- 2Mbd sustains 999,062*2 100% with 10 x 100k blocks.
- 4Mbd sustains 1.8941M*2 100% with 10 x 100k blocks. -5.15% bandwidth
- 6Mbd sustains 2.7736M*2 100% with 10 x 100k blocks. -7.546% bandwidth
-
- Note that loopback is traffic two ways over USB so 1.109440 MBytes / second is being moved.
- Quite good for 12MHz FS-USB.
复制代码
He adds:
- Tested FT232H => PL2303GC, (768 RX HW buffer) No handshake PL2303GC baud seems to be 48M/N so 12M, 9.6M, 8M etc
- 12Mbd seems ok at 768, even 1024 1280 is marginal, 10x1280 is 12760, or dropped 40 bytes
- 1280 is better at 8MBd
- For large packets, one way, 6MBd looks ok and 8Mbd.N.1 starts to drop characters, and 8M.n.2 gains a bit more time, so looks better
- Tested 12MByte large block FT232H => PL2303GC at 8M.n.2 no dropped bytes
-
复制代码
..
|