¿Velocidad no estándar en puerto serie PC?

¿Alguien ha conseguido configurar alguno de los puertos serie que vienen incluidos en la placa base de un PC, para que funcione a una velocidad de transmisión no estándar? Tengo un componente para Builder 6 que permite elegir cualquier "custom baudrate", pero por lo visto mi hardware dice que nanai.

Imagino que alguna de esas placas que venden para añadir puertos serie al ordenador lo permitirá, pero quería saber si alguien lo ha conseguido con los puertos que vienen de fábrica.

Saludos.

Reply to
Mochuelo
Loading thread data ...

Parece que en las placas modernas no se puede. Yo uso en Delphi un control para comunicaciones por puerto serie, que permite también configurar velocidades no estándar, y funcionaba perfectamente en el ordenador que usaba antes, un Pentium 2, pero en este, un Pentium 4, no va. Si configuro una velocidad rara, no devuelve error ni nada, pero en realidad la velocidad se queda como estaba antes. En mi caso, sí que permite, en cambio, 256000 baudios y 512000 baudios, que parece considerarlas estándar. En los dos usaba W2000, así que no parece tener que ver con el SO, y tampoco creo que tenga que ver con el modelo de microprocesador, sino más bien con la BIOS (no creo, por aquello de que no devuelva error) o con el chip que integre las UARTs en la placa (esto me parece más posible, que el chip, si recibe una palabra de configuración no válida la pase por alto sin más). Si es así, es posible que con una placa I/O que integre una UART de otro modelo sí funcione, pero es sólo una conjetura.

--
Saludos de Jose Manuel Garcia
jose.mgg@terra.es
 Click to see the full signature
Reply to
Pepitof

A que llamas "no standard" ? a velocidades tipo 7000bauds o a velocidades superiores a 115200? Si trabajas con NT, 2000 o XP el componente tendria que tener un driver para hacerlo 'legalmente', si no probablemente le reboten el acceso al puerto desde ring3, y funcion API para modos no standard no conozco. Si no funciona con Win98 entonces el problema es de hardware.

Saludos. Eduardo.

"Mochuelo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Reply to
Eduardo

El chip que se usa (el inter noseque), o al menos se usaba en los PC, permite cualquier velocidad hasta 115.200

Hace poco probe en un pentium 3 una velocidad no estandard pero más baja que 115200, y funciono bien.

Luego hay aparatos que se conectan por usb y cuyo driver aparece como un puerto serie virtual en el ordenador, estos permiten velocidades mas altas, pero es todo ficticio porque todo es una emulacion por software, no son un puerto serie de verdad.

Reply to
Nolo Pongo

A lo primero.

El puerto serie de mi placa base admite {110, 300, [...], 38400,

57600, 115200, 230400, 460800 y 921600} baud/s, pero no admite velocidades intermedias. Ya sé que cuantas más opciones dé, más complejo es el hardware, pero me parece una lástima que, siendo los números altos iguales a 921600/N, no ofrezca por ejemplo la posibilidad 921600/5=184320 baud/s.

Uso XP, y el componente se llama WinSoft ComPort

formatting link
Lo he usado durante bastante tiempo a velocidades estándar, pero ahora me habría ido bien una no estándar. El componente claramente lo permite. Por culpa de tener que ceñirme a una estándar, tengo que comunicarme a una velocidad bastante menor que la que podría estar usando.

Saludos.

Reply to
Mochuelo

En teoria podrias conseguir 6776.47058 baudios ó 7200 baudios, pero no 7000 baudios.

En el chip original que se encarca de la UART de los pc, el cristal era de 1.8432 MHz, y el integrado (8250, 16450, etc..) tiene un registro donde le pones el divisor (que es multiplo de 16).

Con las nuevas placas base, el chip de la UART esta integrado dentro del chipset de la placa base. Suelen haber 2 chips, uno que esta cerca de la CPU y se encarga de la memoria fundamentalmente, y otro que esta mas alejado y es donde se suele encontrar la UART.

Los PC tienen que guardar la compatibilidad hacia atras, así que se siguen utilizando los mismos puertos para manejar este registro (el DLAB, Divisor Latch Access Bit). Han salido nuevas funcionalidades en los nuevos chipsets (permiten tasas mayores de 115.200 baudios), pero hay ya no estoy tan al tanto de como programarlos.

Esto sin contar para nada con el sistema operativo. Tendrias que hacerte el programa tu mismo en msdos o w98.

Si quieres mas informacion:

formatting link
formatting link

Saludos.

Reply to
RF

Hola,

He visto comentarios que te han echo y te explico mi experiencia (con ella casi te puedo confirmar que el control que estas usando para el Builder es caso seguro el ComPort gratuito).

El tema es el siguiente. Efectivamente se pueden usar baudrates diferentes a los standars, pero por limitaciones de hadware estos no pueden ser los que te de la gana. Estos tienen que coincidir con una divisibilidad del la configuracion de la UART.

Por otra parte el Windows es muy puñetero. Ten cuidado por que el API de la familia NT (NT,2000,XP) para la puerta serie (manejo de streams, ficheros) tiene diferentes resultados que en Win98/97ME. Esto lo puedes comprobar facilmente si te haces un pequeño ejemplo del prueba con la libreria de comunicaciones. El XP esta mucho mas reducido a la hora de poder selecciona el ratio que quieras...

Saludos, Sir Graham.

formatting link

"Mochuelo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Reply to
Sir Graham

No, es el de pago. Y tengo la última versión, porque me las van enviando. Lo compramos a mi nombre en una empresa en la que estuve.

Ya, ya sé que no puede ser el que me dé la gana. Pero es una lástima que admita varias velocidades que son 921600/N baud/s, pero que no admita por ejemplo 921600/5=184320 baud/s.

Eso parece. Sin embargo, le tengo echado el ojo al "SerialPort" que incluye Visual Studio 2005. He estado trasteando con él, y parece admitir también (casi) cualquier baud rate. Cuando pueda, lo pruebo.

Al final, 57600 baud/s me va bastante bien (para comunicar un ATmega48 corriendo a 8 MHz --mal número para generar baud rates estándares-- con un PC). Dentro del ATmega, construí una cola circular de salida (FIFO) de 64 bytes, para que envíos de un número pequeño de bytes no ralentizaran el curso normal del código. Funciona de lujo. Ninguna ráfaga de las que envía tiene más de 64 bytes, o sea que visto desde la MCU, el canal de salida tiene una velocidad altísima. Luego, por el cable serie, van saliendo a 57600 baud/s cuando les vaya tocando (gestionado por interrupciones).

Hasta luego.

Reply to
Mochuelo

Si se trata de Borland Builder C++, creo que lo mejor es usar directamente el API, a lo sumo recubriendo el API con una clase C++.

El API es sencillo de usar, te da acceso a todo lo que quieras hacer con el puerto serie, no tienes que cargar con componentes de terceros, etc...

Reply to
Nolo Pongo

A ver, a ver, no existe el baudio por segundo. Te estás confundiendo con el bps.

Un saludo a todos!

formatting link

Reply to
GasparV

Pues sí, se me fue el santo al cielo, y a demás varias veces :-)

No, tampoco es que lo confunda con los bits/segundo. Tenía que haber escrito simplemente baudios.

Hasta luego.

Reply to
Mochuelo

Y añado: no sé qué entiendes por que una unidad "exista" o no, pero se puede hablar de cualquier unidad, o combinación de ellas, que te puedas imaginar. El baudio por segundo también "existe" (aunque está claro que no quería decir eso, sino simplemente baudio). Si yo mañana diseño un sistema que transmite una ráfaga de símbolos a una velocidad creciente (o decreciente), puedo hablar tranquilamente de los baudios por segundo de mi sistema. Estaría hablando de símbolos/s^2, o de la "aceleración" con que mi sistema transmitiría cada vez más (o menos) símbolos por unidad de tiempo.

Usando una analogía, si la información fuera distancia recorrida, está claro que no sólo oímos hablar de la velocidad (m/s). También la aceleración (m/s^2). Por poder hablar, podríamos hablar incluso de m/s^3, m/s^4, etc. Otra cosa es que las usemos mucho o poco habitualmente. No porque la mayoría de los sistemas de comunicación transmitan a una velocidad constante tenemos derecho a pensar que no es válido el concepto de aceleración, en ese ámbito.

Espero que aclare algo.

Hasta otra.

Reply to
Mochuelo

Hombre, si te pones así, tengo que darte la razón. También existe el Hz/s en los analizadores de espectro. Aceptada la re-corrección. Por cierto, tu explicación sobre el baudio es perfecta. Hace mucho tiempo ya que el baudio no es lo mismo que el ciclo por segundo. En la RAE están anticuados, y lo comprendo, pero en este grupo hay que dar ejemplo de exactitud.

Un saludo a todos!

formatting link

Reply to
GasparV

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.