Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Apr 2015 15:43:11 +0200
From:      Bernd Walter <ticso@cicely7.cicely.de>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        ticso@cicely.de, freebsd-usb@freebsd.org, Bernd Walter <ticso@cicely7.cicely.de>
Subject:   Re: Strange problems with CH340G (uchcom)
Message-ID:  <20150421134311.GE29418@cicely7.cicely.de>
In-Reply-To: <20150421111055.GD29418@cicely7.cicely.de>
References:  <20150420194855.GA29418@cicely7.cicely.de> <5535E84D.2010905@selasky.org> <20150421104931.GC29418@cicely7.cicely.de> <55362D11.5080106@selasky.org> <20150421111055.GD29418@cicely7.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 21, 2015 at 01:10:55PM +0200, Bernd Walter wrote:
> On Tue, Apr 21, 2015 at 12:57:21PM +0200, Hans Petter Selasky wrote:
> > 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?
> 
> No - with the ESP8266 connected the response data is send to the CH340
> after the request got out.
> There is no such request after the first request until it gives up.
> During this time I only see the bulk writes with new requests.
> There must be something stopping the CH340 from receiving before the
> first request gets send.

Sorry - I have a wrong test in between.
I've botched the usbdump.ch340x test.
I don't know why it received the initial 'd's, but the connections were
wrong.
So in fact it receives the data from the CP2102 after sending the initial
request.
But it still doesn't receive the response from the ESP8266.
Will continue to investigate the problem.

-- 
B.Walter <bernd@bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150421134311.GE29418>