To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 626
625  |  627
Subject: 
dllx for liblnp+lnpd uploaded to arthurdent
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Fri, 7 Jan 2000 02:17:56 GMT
Viewed: 
1378 times
  
Hello,

i finally managed to get my old 486 back to live and build a little home
network to test lnpd & liblnp in a networked environment. As expected
;-), it works perfectly -- with 2400 baud 8-(.

Running with 4800 baud, i encountered some interesting things. It looks
like the tower has DC related problems in this mode.

If the tower is connected to my old 486 with a real 16450 uart, the
sucessfull transmission depends remarkably on the contents of the
frames. If consecutive long frames containing only 0xff values are
transmitted, the tower seems to screw up sometimes. If this happens, one
has to wait for up to one second before the tower becomes usable again.
Best performance is achieved if the frames transmitted contain something
like 0x55, means: no DC. Astonishingly, frames containing all zeros are
also sent quite well. If i connect the tower to my newer box, which has
16550A uarts integrated on the motherboard, the same symptoms show up,
but by far not as extreme. Unfortunately i don´t have a scope to
investigate this further.

To achieve not too error prone transmission with 4800 baud, it might be
helpfull to use some DC avoiding scheme, like manchester encoding or
stuffing. However, this will burden the RCX with additional load, and
loose more or less of the bandwidth won by doubling the speed.
Currently, i think it´s not worth to invest too much time in this issue,
because fast transmission only works for short distances.

Anyways, for fast dll uploads of large programs i found a somewhat
robust solution: i modified the lnp_assured_write() routine of dll to
detect wether a transmission error or an acknowledge timeout appeared.
Additionally, repeated transmission after errors is done with increasing
gaps between frames sent. This way, i was able to download binaries
consisting of 8k of pure 0xff quite reliably. ( from my hopefully worst
case 486 oldie )
If several screp-ups of the tower happen during one download, sending
with 2048 baud may be faster after all, but it´s also not very realistic
to have an initialized array of 1000 0xff values. ( we have malloc(),
don´t we ? ). The source for dllx is currently in the incoming of
arthurdent, i guess Luis will put it into the LNP directory next week or
so.



1 Message in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR