Re: USB from SwiftForth

From: Alan Furman <alanf2_at_earthlink.net>
Date: Thu, 22 Oct 2009 00:59:14 -0400 (EDT)

Updated and re-sent (minor edit at end for clarification).

>From: Mike Ghan <MikeGhan_at_logix-controls.com>
>Sent: Oct 21, 2009 7:45 PM
>To: sftalk_at_forth.com
>Subject: [sftalk] Re: USB from SwiftForth
>
>It appears an interface DLL is what you need - this might be what you're
>looking for:
>https://www.silabs.com/products/mcu/Pages/USBXpress.aspx
>
>Mike

In order to use the USBXpress DLLs, I must program the device (C8051F320) to follow the protocol expected by USBXpress: data packet size, which endpoint for which direction, proper handling of control transfers, etc. Theoretically, USBXpress could use an existing USB class, meaning that a (partial) definition of the protocol would be publicly available, but then again it could be (and likely is) a custom Windows USB driver using a "vendor-defined" class.

So how do I program the device? AN169, the USBXpress Programmer's Guide,

https://www.silabs.com/Support%20Documents/TechnicalDocs/an169.pdf

on page 14, first paragraph, tells us The Way You Are Supposed To Do It: "The API is provided in the form of a library file precompiled under the Keil C51 tool chain. Device firmware must be developed using the Keil Sofware C51 tool chain." There does not seem to be any C source for this package provided on the development CD that I could reverse-engineer.

Next I looked at AN220,

https://www.silabs.com/Support%20Documents/TechnicalDocs/an220.pdf

which is about "customizing" USBXpress. But it only lets you edit vendor IDs and strings, and gives no information about the protocol.

Figure 1, page 1 of AN169 shows the same Windows driver stack communicating with either an 'F32x MCU or with a CP210x USB-UART bridge chip. So it must be the same protocol. Surely, I hoped, the latter's data sheet

https://www.silabs.com/Support%20Documents/TechnicalDocs/CP2101.pdf

will give enough information so that one can write one's own PC driver (instead of relying solely on the USBXpress Windows driver). With that information I can program the MCU in Forth to imitate the bridge chip's USB interface.

Wrong.

Have I overlooked something?

Alan Furman

----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and
bug reports, please send email to support_at_forth.com
----------------------------------------------------------------------
Received on Wed Oct 21 2009 - 21:59:45 PDT


Subscribe to our e-mail list service. It's free for all SwiftForth and SwiftX users!

This archive was generated 07-Feb-2012. Archive updated nightly.