fixing a PUC / uart speed issue

Marcel Moolenaar xcllnt at mac.com
Sat Mar 24 06:31:59 UTC 2007


On Mar 23, 2007, at 9:49 PM, Mike Tancsa wrote:

> Hi,
> I have a mini-pci UART that has a problem with its speed.  When I  
> connect to it at 300bps the other side sees this as 1200.  e.g.
>
> Other PC   PUC device
> 4800       1200
> 9600       2400
> 19200      4800

*snip*

> I am guessing something needs to be changed in the puc driver for it ?
>
>        /* Oxford Semiconductor OX16PCI954 PCI UARTs */
>         {   "Oxford Semiconductor OX16PCI954 UARTs",
>             {   0x1415, 0x9501, 0,      0       },
>             {   0xffff, 0xffff, 0,      0       },
>             {
>                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
>                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
>                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
>                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
>             },
>         },
>
>
> but what ?

Try changing the frequency from COM_FREQ to (4 * COM_FREQ). The
frequency is driving the baudrate generator and given that the
baudrate is off by a factor of 4, it follows that we program the
baudrate generator with a divisor that corresponds to a frequency
that's off by a factor of 4 as well.

HTH,

-- 
Marcel Moolenaar
xcllnt at mac.com




More information about the freebsd-questions mailing list