On 04/21/15 12:49, Bernd Walter wrote:
On Tue, Apr 21, 2015 at 08:03:57AM +0200, Hans Petter Selasky wrote:
On 04/20/15 21:48, Bernd Walter wrote:
I tried to flash an ESP8266 with the onboard CH340.
The same board works fine when I use a CP2102 instead of the CH340.
Flashing requires a python tool, which sends a SLIP encoded request
and expects a SLIP encoded response with 115200@8n1.
The read function however times out receiving the response without
getting a single byte, even if I add a high delay between sending and
reading.
The strange thing is that I can see a valid response on a scope just
a few ┬Ás after the request completes, while the receiver don't even
see the first byte.
If however I physically loopback the CH340 it receives it's own request
just fine.
Two CH340 xconnected work fine too.
Same when I xconnect a CH340 and a CP2102.
Now I'm completely out of ideas, why the python tool has problems
to see the response data with the CH340.


Try using:

usbdump -i usbusX -f Y -vvv -s 65536

And see if the reply is seen by the USB ... maybe it is a timing issue
like one character at a time instead of a word.

I can't see the reply on USB.
This is the first request:
12:32:44.019677 usbus1.6 SUBM-BULK-EP=00000002,SPD=FULL,NFR=1,SLEN=48,IVAL=0
  frame[0] WRITE 46 bytes
  0000  C0 00 08 24 00 00 00 00  00 07 07 12 20 55 55 55  |...$........ UUU|
  0010  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 55  |UUUUUUUUUUUUUUUU|
  0020  55 55 55 55 55 55 55 55  55 55 55 55 55 C0 -- --  |UUUUUUUUUUUUU.  |
  flags 0x9 <FORCE_SHORT_XFER|PIPE_BOF|0>
  status 0xca023 
<OPEN|TRANSFERRING|STARTED|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>

It retries this a few times.
But all BULK reads happen before.

In the usbdump.ch340x I'd tried something else.
I'd hit 'd' during that on a CP2102 terminal programm, which was connected to 
the RX-line.
And at the beginning they got read:
12:42:51.930004 usbus1.6 
DONE-BULK-EP=00000082,SPD=FULL,NFR=1,SLEN=32,IVAL=0,ERR=0
  frame[0] READ 31 bytes
  0000  64 64 64 64 64 64 64 64  64 64 64 64 64 64 64 64  |dddddddddddddddd|
  0010  64 64 64 64 64 64 64 64  64 64 64 64 64 64 0D --  |dddddddddddddd. |
But no reading after sending the request.


Hi,

If you don't see the traffic on USB and there are no USB errors, then maybe one of those control messages "SUBM-CTRL-EP=00000000" are clearing the FIFO. Could you check if there is such a message just before the expected data?

--HPS
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to