SIBO serial rate setting (5baud and 10400 baud)? - Scion

This is a discussion on SIBO serial rate setting (5baud and 10400 baud)? - Scion ; Hello, I hope someone could help me with this problem. A similar posting in 2000 yielded nothing. I want to set the Psion 3c serial port to 5 baud (7 bit, odd parity, one stop bit) and later to 10400 ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: SIBO serial rate setting (5baud and 10400 baud)?

  1. SIBO serial rate setting (5baud and 10400 baud)?

    Hello,
    I hope someone could help me with this problem. A similar posting in
    2000 yielded nothing.

    I want to set the Psion 3c serial port to 5 baud (7 bit, odd parity,
    one stop bit) and later to 10400 baud (8 bit, one stop bit, no
    parity).
    These are not standard rates, and it is not described
    in the SIBO OPL manuals nor "davros" info.
    Does anyone know how to bypass the standard serial rates by
    settting the UART speed divisor register directly.

  2. Re: SIBO serial rate setting (5baud and 10400 baud)?

    On 9 Aug 2004 07:56:22 -0700, Mark wrote:

    > I want to set the Psion 3c serial port to 5 baud (7 bit, odd parity,
    > one stop bit) and later to 10400 baud (8 bit, one stop bit, no
    > parity).


    Can't be done. The hardware can't be accessed at the low level required
    and only supports the standard rates. Your only option would be a bit of
    hardware to do baud rate conversion.

    --
    Andrew Gregory
    http://www.scss.com.au/family/andrew/ >

  3. Re: SIBO serial rate setting (5baud and 10400 baud)?

    "Andrew Gregory" wrote in message news:...
    > On 9 Aug 2004 07:56:22 -0700, Mark wrote:
    >
    > > I want to set the Psion 3c serial port to 5 baud (7 bit, odd parity,
    > > one stop bit) and later to 10400 baud (8 bit, one stop bit, no
    > > parity).

    >
    > Can't be done. The hardware can't be accessed at the low level required
    > and only supports the standard rates. Your only option would be a bit of
    > hardware to do baud rate conversion.


    Hi Andrew,

    It must be possible to do, setting the division register I mean. The
    TTY Device surely does this to get those "standard" rates, or is there
    something special about the UART in the Psion 3c that is different
    than an UART found in a PC? I know OPL is not the method, but via
    assembler it must be possible, even if it means extracting the TTY
    device code from the OS and tweaking it to allow setting the division
    register, then creating a ????, "a driver that you load"; but I was
    looking for a somewhat simpler method! :->

    Mark
    < platform>>

  4. Re: SIBO serial rate setting (5baud and 10400 baud)?

    "Mark" skrev i en meddelelse
    news:4916865b.0408100944.7b29d79d@posting.google.c om...
    > "Andrew Gregory" wrote in message

    news:...
    > > Can't be done. The hardware can't be accessed at the low level required
    > > and only supports the standard rates. Your only option would be a bit of
    > > hardware to do baud rate conversion.

    >
    > Hi Andrew,
    >
    > It must be possible to do, setting the division register I mean.


    When Andrew says it can't be done, then it can't be done.

    The serial port is nothing like the PC serial port hardware. It is in fact
    some serial port hardware deeply embedded into the specialised Psion
    ASIC5's.
    These ASICS contain hardware registers for controlling parallel I/O, serial
    I/O, memory (RAM and/or ROM) and on occation some other specialised bits and
    pieces.
    To save transistors in the asics, you get a very small set of handles with
    which to affect the serial or parallel ports functions. One of the places
    that were saved away were the ability to finely tune the serial port baud
    rate. You only have an 8-bit register (IIRC), with which to select the
    appropriate bit rate.
    When you use the ASIC, you do that via a high speed synchronous serial port
    (3.5 Mb/s for an internally placed ASIC and 1.5Mb/s for an externally placed
    ASIC (like the ASIC in the VIC for a WorkAbout or the serial dongle for a
    Series 3)). This in itself affects your ability to do on-the-fly changes of
    baud rate or bit depth on a high-speed scale.
    Writing a driver that uses this hardware isn't exactly for the
    faint-of-hearted, although you can get a complete hardware development kit
    that tells you all about the ASICs and how to program them.
    Trust me, I DO have the SDK.

    /Keld Laursen



  5. Re: SIBO serial rate setting (5baud and 10400 baud)?

    What Keld says :-)

    I've just checked my copy of the hardware development kit documentation.
    ASIC5 implements the RS232 interface as used in the 3-Link. It *is*
    possible to access the divisor register. The value is set as 1-(96000/baud
    rate). eg 9600 baud is set as -9 ($FFF7). The next step up is -8, which
    works out to 10667 baud. 5 baud is -19199 ($B501).

    However, 3c/3mx machines cannot be using the ASIC5 interface, as they
    support baud rates like 38400, 57600 and 115200 which cannot be obtained
    using the above method. I'm pretty sure Psion created a new IC to
    integrate the RS232 and IR interfaces, but all my documentation predates
    the 3c.

    You're welcome to look at the HDK stuff I have on one of my webpages:
    (scroll down to the
    PDFs), but as I said, it predates the 3c and is unlikely to be much use.

    --
    Andrew Gregory
    http://www.scss.com.au/family/andrew/ >

  6. Re: SIBO serial rate setting (5baud and 10400 baud)?

    "Andrew Gregory" wrote in message news:...
    > I've just checked my copy of the hardware development kit documentation.
    > ASIC5 implements the RS232 interface as used in the 3-Link. It *is*
    > possible to access the divisor register.

    That is great news!

    > However, 3c/3mx machines cannot be using the ASIC5 interface, as they
    > support baud rates like ---- 8< ----


    I quickly looked at this info. Setting the UART by the TTY Device is
    what I thought it would be, I just did not know how it was done. The
    assembler code at the end of the doc shows a BaudRateTable holding 16
    entries which correspond to the requisit divisor values needed to
    generate the "standard baud rates" on the earlier Psions (perhaps this
    is still correct for Siena). Definately something was changed when
    the 3c/3mx came about ... HW and SW. When I try to set the baudrate
    on my 3c to a certain value via the Device (function ?) to something
    like zero, which is invalid, I get the error of "Unsupported" as per
    the assembler code listing. But I am able to set the value to greater
    than 19 (115200 baud) which should have returned the same
    "Unsupported" error. So the assembler code *is* different. I will
    try to locate some more recent info regarding the 3c/3mx.

    Thanks very much for pointing me in the right direction. If I can
    isolate the TTY: driver code in the OS, I could possibly create a
    tweaked version by just changing the BaudRateTable entries, OR I could
    maybe find the TTY structure and contact the UART and set the divisor
    register. In either case, I still need to know what was changed
    because you are correct that the divisor value computation is
    different.

    Mark

+ Reply to Thread