FTDI FT2232H (USB <-> UART) velocidades de transmisión?

8

¿Alguien usó uno de los chips FT2232H de FTDI?

Específicamente, ¿cómo calcula las velocidades de transmisión permitidas?

La hoja de datos es un poco vaga, y tengo que elegir algo en el rango de 1-3 MBaudios, pero necesito saber cuáles son mis opciones.

Jason S
fuente

Respuestas:

7

Yo tuve este problema también. FTDI lo considera más un problema de controlador que un problema de chip. Dirígete al área de Notas de la aplicación FTDI y mira la nota en PDF "AN_120 Aliasing VCP Baud Rates" .

todbot
fuente
La nota de la aplicación le dice exactamente lo que puede seleccionar, luego debe asegurarse de que su microcontrolador pueda hacer la misma velocidad de transmisión con menos del 10% de error.
Kortuk
10%? El 10% de error es demasiado alto para buenas comunicaciones UART ... generalmente es algo así como +/- 3%.
Jason S
Si hay un reloj perfecto en un lado, puede tener hasta un 10% de error en el otro (utilizando datos de 8 bits, 1 inicio, 1 parada) sin un error. Agrega paridad, necesita disminuir ese error máximo. Sin embargo, normalmente ambos lados no son perfectos, y debe disminuir esa sobrecarga ya que ambos lo tienen.
Kortuk
@Kortuk: Si se sabe que el error se encuentra en una determinada dirección, se podría hacer arreglos para una tolerancia de extremo remoto de, por ejemplo, 0-10% rápido, pero si lo hace, las comunicaciones pueden fallar si el extremo remoto es 0.01% lento. Muchos diseños UART tienen rangos de error casi simétricos, aunque algunos con sobremuestreo 4x son asimétricos; Sin embargo, nunca he visto uno que permitiera al usuario ajustar la sincronización del bit de inicio para favorecer un control remoto más rápido o más lento.
supercat
@supercat, creo que el MSP430 que solíamos usar podíamos usar "modulación", que dio un alto error en el primer bit pero mejoró con respecto a los bits.
Kortuk
2

También es digno de mención que el controlador de Linux actualmente admite velocidades (¿solo?) De hasta 460800 baudios.

Brad Hein
fuente
2
No es del todo cierto, aunque es un error fácil de cometer. La selección de tarifas de BPS en Linux tiene que ser compatible con POSIX, y también hay mucho equipaje emocional de los años setenta. Por ejemplo, solía ser que solo podía seleccionar hasta 38400. Más tarde, podría voltear un poco y 57600 y 115200 también estarían disponibles. Todo esto está en el lado del sistema operativo, no en el lado del hardware. Los conductores modernos aún tienen que soportar las venerables Bxxxxbanderas, pero también pueden hacer tarifas personalizadas. Mire get_ftdi_divisor()(línea 1077) en el controlador. Puede establecer tasas de BPS personalizadas de hasta 12,000,000 en el FT232H.
Alexios