GM ALDL interface

Ludis Langens ludis at netcom.com
Sun Dec 7 14:07:18 GMT 1997


Terry Kelley <terryk at foothill.net> wrote:
> I samples at 2-3X the 160 baud rate and dumped the serial stream it into a
>large buffer (9x max bytes +1). 
>[...]
>Considering how slow 160 baud is, there is plenty of time to do all of
>this, convert, display the results and start again.

Your's is certainly a valid approach.  However, what happens when your CPU
"goes out to lunch" (perhaps servicing a floppy disk or network device) for
more than 5 mS?

steve ravet <steve at imes.com> wrote:
>The maximum byte length would be 5.75 msec.  At 8
>data bits, one stop bit, you would need a baud rate of 1739.

I compute something different:  The length of the start bit and 8 data bits
is 288/65517.1875 seconds (~4.4 mS).  So the baud rate for 8-N-1 should be
9 * 65517.1875 / 288 = 2047 baud.  (This assumes the timing used by my ECM.)

>...and a "zero" bit would
>result in a bit [byte] with at least some ones in it (non zero).

The byte would be all ones.  The "zero" pulse is (exactly) 1/12 the "one"
pulse.  This might actually cause problems with some UARTs because the pulse
is slightly too short to be a start bit.  At 8-N-1, the start bit should be
1/9 of the long pulse.  Going to 8-E-1 would change the expected ratio to 1/10.

>The meaning of each byte in the frame is unknown, and probably differs per ECM.

A frame format has been posted here before.  It turned out to be a 95% match
for my case.  I've figured out the format for mine and another ECM.  One is a
subset of the other, except for differences in some of the flag bits.

>Thanks for the idea,  Ludis!  I plan on trying that out.

I'd like to hear how it works out.

                   unsigned long BinToBCD(unsigned long i) {unsigned long t;
Ludis Langens         return i ? (t = BinToBCD(i >> 1), (t << 1) + (i & 1) + 
ludis at netcom.com                 (t + 858993459 >> 2 & 572662306) * 3) : 0;}



More information about the Diy_efi mailing list