1 votos

Ajuste de la tasa de bits para el dispositivo Serial-Over-USB a 256000

Necesito comunicarme con un dispositivo serial-sobre-USB que requiere una tasa de bits de 256000 pero MacOS 11.6.7 (x86) y 12.4 (M1) se niegan a hacerlo.

# stty -f /dev/tty.usbserial-141130 256000
stty: tcsetattr: Invalid argument

El dispositivo en cuestión utiliza un chipset Prolific PL2303. ¿Hay alguna forma de conseguir que MacOS utilice la tasa de bits que necesito, quizá con controladores personalizados?

0 votos

¿Puede probar stty -f /dev/tty.usbserial-141130 ispeed 256000 y stty -f /dev/tty.usbserial-141130 ospeed 256000 ? Es posible que el dispositivo no admita la velocidad en baudios especificada, puede que desee probar con otra velocidad (para obtener una lista de velocidades en baudios, consulte electronics.stackexchange.com/questions/9264/ ).

0 votos

Ambos comandos dan el mismo error, y como se indica en la pregunta el dispositivo requiere 256000.

0 votos

Su pregunta está formulada de forma un poco confusa. ¿Está intentando comunicarse con el propio dispositivo serie sobre USB? (es decir, comunicarse con, por ejemplo, un dongle USB a RS-232). Normalmente tienes un dongle USB a RS-232 conectado a tu Mac donde conectas el dispositivo real con el que quieres comunicarte. ¿Es éste el caso? - Si es así, ¿cuál es el dispositivo con el que desea comunicarse? - Normalmente, estos dispositivos tienen la opción de utilizar varias velocidades de transmisión diferentes.

3voto

Jose Chavez Puntos 645

Todos los controladores comunes para el conjunto de chips PL2303 tienen un ajuste de velocidad máxima en baudios de 230400.

El chipset PL2303 en algunos Las variantes en sí mismas soportan velocidades de transmisión más altas, pero el resto del hardware (es decir, su "dispositivo serie sobre USB") y el cableado también deben soportarlo. 256000 no es una tasa de baudios común, por lo que normalmente no verás mucho soporte para ella.

No has incluido ningún detalle sobre el dispositivo con el que intentas comunicarte. La mayoría de los dispositivos vienen con configuraciones de velocidad de transmisión que le permiten utilizar otras velocidades de transmisión - Sugiero que averigüe si eso es posible para su dispositivo, y luego establezca una velocidad de transmisión más baja.

Si eso no funciona, puedes hacer tu propio controlador para el chipset PL2303 - o intentar modificar uno de los controladores de código abierto.

Una forma más fácil de avanzar sería probablemente ejecutar una máquina virtual de Linux en su Mac y configurar la comunicación allí.

Tenga en cuenta, sin embargo, que en Linux, de nuevo, sólo ciertas variantes del chip PL2303 soportan la configuración de una velocidad de 2560000 baudios. Por ejemplo, el chip PL2303HXN soporta una tasa de 256000 baudios, pero el PL2303HX no. Hay más de 10 variantes.

Las variantes que no admiten la velocidad de 256000 baudios pueden ajustarse a 230400 baudios. Esa es la tasa de baudios común más cercana a 256000 baudios.

ACTUALIZACIÓN

En los comentarios, ahora ha detallado que el dispositivo es un m2m Blue-450. Este dispositivo contiene un módulo BLE121LR Bluetooth LE (que ya ha llegado a su fin), que tiene una interfaz UART, y un Prolific PL2303HXD (que también ha llegado a su fin) para conectarlo al USB.

La documentación del BLE121LR menciona 230400 como una tasa de baudios común para usar con él - no mencionan 256000 en absoluto. El módulo permite cambiar la tasa de baudios a través de su configuración.

Lamentablemente, la documentación del m2m Blue-450 es un poco confusa en cuanto a las opciones de configuración. Enumeran que 256000 baudios es la configuración estándar (muy desafortunada) que han elegido. La redacción parece implicar que esto es sólo un estándar, y por lo tanto que usted podría ser capaz de cambiarlo. Sin embargo, sólo he encontrado la documentación en alemán, y mi alemán está un poco oxidado.

Otra cosa que detallan en la documentación es que sólo es compatible con Windows 7 y Linux. Supongo que esto significa que son conscientes de que otros sistemas no son compatibles. Tal vez quieras contactar con su soporte para preguntar si tienen ya una solución para el Mac.

Prolific alberga un controlador de MacOS para el chip en su sitio web aquí:

https://www.prolific.com.tw/UserFiles/files/PL2303HXD_G_Mac%20Driver_v2_1_0_20210311.zip

Podrías probarlo para ver si han hecho posible el uso de 256000 baudios.

He comprobado el controlador de código abierto así como el controlador comercial mac-usb-serial.com para el PL2303 - no soportan 256000 baudios.

Para el controlador de código abierto he encontrado que escriben en la documentación que sólo soporta hasta 230400 baudios, pero en el código fuente, parece que 256000 sería soportado - si el chipset en el dispositivo lo soporta. Así que puede que quieras probar con el driver de código abierto para ver si funciona.

Yo sugeriría estas cinco opciones para intentar que el dispositivo funcione en tu Mac en orden de prioridad:

  1. Prueba el controlador de Prolific.

  2. Prueba el controlador de código abierto para versiones antiguas de MacOS, si es que tienes una de ellas.

  3. Tienes el dispositivo funcionando en Windows. Utilízalo y comprueba si tienes acceso directo al módulo BLE121LR a través de la conexión. Si ese es el caso, usted podría ser capaz de utilizar los comandos de configuración que figuran en este documento para establecer una tasa de baudios diferente (para usar con MacOS).

  4. Arranca Linux en una máquina virtual en tu Mac y accede al dispositivo desde allí.

  5. Cree su propio controlador basado en el controlador de código abierto . Esto es más fácil si no estás ejecutando una versión reciente de MacOS - lo cual asumo que no estás, ya que estás usando un hardware relativamente antiguo y los Macs recientes tienen Bluetooth LE incorporado. El cambio es relativamente sencillo (si eres un programador, por supuesto), ya que tenemos el código fuente del controlador de Linux para comparar, y la lógica de configuración de la velocidad de transmisión no es compleja.

0 votos

Entonces, el driver en uso (probablemente algún driver de Apple ya que no he instalado ningún otro driver) es el que niega stty de la tasa de bits?

0 votos

Y por lo que puedo deducir de la escasa documentación, el chip es un PL2303HXD.

1 votos

@Bombe Sí, es el conductor que niega stty para el bitrate.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X