hm2_pktuart_setup - configura una instancia de Hostmot2 PktUART
#include <hostmot2-serial.h>
int hm2_pktuart_setup(char *name, int bitrate, rtapi_s32 tx_mode, rtapi_s32 rx_mode, int txclear, int rxclear) |
hm2_pktuart_setup Configura la tasa de bits para un PktUART llamado "name". "name" es una cadena única dada a cada PktUART durante el setup de hostmot2. Los nombres de las 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>.pktuart.<Ã- ndice> . Por ejemplo hm2_5i25.0.pktuart.0.
Los UART de Hostmot2 son buenos hasta aproximadamente 10 Mb/seg, pero a velocidades de datos más altas (con cualquier UART) son susceptibles al ruido por impulsos.
La función PktUART 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 registros Hostmot2:
Bit 21 |
FrameBuffer tiene datos | ||||
Bits 20..16 |
Frame para enviar | ||||
Bits 15..8 |
Interframes delay en tiempos de bits | ||||
Bit 7 |
Send ocupado, Transmit Logic activa | ||||
Bit 6 |
Bit Drive Enable (habilita el controlador externo |
RS-422/485 cuando está configurado)
Bit 5 |
Drive enable Auto (Activación de unidad externa |
automática)
Bit 4 |
Error SCFIFO | ||||
Bits 3..0 |
Drive enable delay (demora desde la habilitación de la |
unidad
para iniciar la transmisión de datos. En perÃodos bajos de clock
rx_mode es una máscara de bits definida en regmap de Hostmot2:
Bit 21 |
FrameBuffer tiene datos | ||||
Bits 20..16 |
Frames recibidos | ||||
Bits 15..8 |
InterFrame delay en tiempos de bits | ||||
Bit 7 |
Rx Lógica activa | ||||
Bit 6 |
RXMask | ||||
Bit 5 |
sin usar | ||||
Bit 4 |
Error RCFIFO | ||||
Bit 3 |
RXEnable (debe configurarse para recibir paquetes) | ||||
Bit 2 |
RXMask Enable (habilita el enmascaramiento de datos de |
entrada al transmitir)
Bit 1 |
Error de desbordamiento (sin bit de parada cuando se |
esperaba) (sticky)
Bit 0 |
Bit de error de falso inicio (sticky) |
Los registros rx_mode y tx_mode son actualmente de solo escritura. Se puede obtener el número de instancia de una instancia de PktUART con la ayuda de la función hm2_get_pktuart en orden a leer y escribir en registros Rx y Tx.
Para escribir solo en el bit tx_mode DriveEnable, llame a esta función con la tasa de bits sin cambios y -1 como rx_mode Para cambiar la tasa de bits sin alterar la configuración del modo, envÃe -1 a ambos modos.
txclear==1 aborta cualquier envÃo en proceso, borra los datos FIFO y borra el conteo de envÃo FIFO.
rxclear==1 cancela cualquier recepción en proceso, borra los datos FIFO y borra el recuento de recepción FIFO.
txclear!=1 o rxclear!=1 deja los registros correspondientes sin cambios.
Devuelve 0 en caso de éxito y -1 o -EINVAL en caso de error.
man
hm2_pktuart_send, man hm2_pktuart_read
Consulte src/hal/drivers/mesa_pktgyro_test.comp para ver un
ejemplo de
uso.
Esta función está sujeta a cambios ya que se agregarán filtros digitales en Rx UART, y el registro de velocidad de bits ganará un campo de 12 bits para la constante de filtro de entrada.