hm2_uart_setup - configura una UART Hostmot2
#include <hostmot2-serial.h>
int hm2_uart_setup(char *name, int bitrate, s32 tx_mode, s32 rx_mode){ |
hm2_uart_setup configura la tasa de bits para la UART "name". "name" es una cadena única dada a cada UART durante el setup de hostmot2. Los nombres de los UART disponibles se imprimen en la salida estándar durante el proceso de carga del controlador y toman la forma: hm2_<nombre de la tarjeta>.<Ãndice de la tarjeta>.uart.<Ãndice> . Por ejemplo hm2_5i23.0.uart.0 La tasa de bits mÃnima es de aproximadamente 50 bps, y la máxima alrededor de la frecuencia de la FPGA, 48MHz para una 5i23. La función UART permite diferentes velocidades de bits RX y TX, pero eso no es actualmente compatible con este controlador
tx_mode es la
máscara de bits definida en el mapa de host
Hostmot2: Bit 0..3 = TXEnable delay. TXEnable delay
especifica tiempo de espera de
los datos de transmisión desde el estado
válido de la señal TXenable.
Esto se usa para operación RS-485 (half
duplex), para retrasar la
transmisión de datos hasta que el controlador
está habilitado, lo que
permite retrasos de activación del controlador,
retrasos de barrera de
aislamiento, etc. El retraso está en unidades
de perÃodo ClockLow. Bit 4 = FIFOError, indica que
una inserción desde el host ha desbordado la
FIFO
(Principalmente para depuración de
controladores) Bit 5 = DriveEnableAuto, cuando se establece,
habilita el Drive cuando hay cualquier dato en FIFO o en
Registro de desplazamiento Xmit, y lo elimina cuando FIFO y
el registro de desplazamiento Xmit
están vacios Bit 6 = DriveEnableBit, si
DriveEnableAuto es 0, controla el Drive (
para el control software de Xmit)
tx_mode es la
máscara de bits definida en el mapa de host
Hostmot2: Bit 0 = FalseStart bit Status, 1 = bit de inicio
falso detectado Bit 1 = Estado de desbordamiento, 1 =
condición de desbordamiento detectada (sin bit
de parada válido) Bit 2 = RXMaskEnable, 1 =
habilitar RXMask para la operación half duplex,
0 = ignorar RXMask Bit 4 = FIFOError, indica que una lectura
de host ha intentado leer más
datos que los disponibles. (principalmente para la
depuración de controladores) Bit 5 =
LostDataError, indica que se recibieron datos sin espacio en
FIFO,
y por lo tanto perdidos Bit 6 = RXMask, estado de RO RXMASK
Bit 7 = FIFO tiene datos
Los registros rx_mode y tx_mode son actualmente de solo escritura. Posiblemente deberÃa haber una función get-status.
Para escribir solo en el bit tx_mode DriveEnable, llame a esta función con la tasa de bits sin cambios y -1 para rx_mode Para cambiar la tasa de bits sin alterar la configuración del modo, envÃe -1 a ambos modos.
Devuelve 0 en caso de éxito y -1 en caso de error
man hm2_uart_send, man hm2_uart_read Vea src/hal/drivers mesa_uart.comp para un ejemplo de uso.