LinuxCNC Documentation

SYNTAX

#include <hostmot2-serial.h>
int hm2_uart_setup(char* name, int bitrate, s32 tx_mode, s32 rx_mode);

BESCHREIBUNG

hm2_uart_setup Setup the bitrate for the UART named "name". "name" is a unique string given to each UART during hostmot2 setup. The names of the available UARTs are printed to standard output during the driver loading process and take the form: hm2_<board name>.<board index>.uart.<index>, for example hm2_5i23.0.uart.0. The minimum bitrate is approximately 50 bps, and the maximum around the FPGA frequency, 48 MHz for a 5I23. The UART function allows different RX and TX bitrates, but that is not currently supported by this driver.

rx_mode ist eine Bitmaske, die in der Hostmot2-Regmap definiert ist: Bit 0..3:: TXEnable-Verzögerung. Die TXEnable-Verzögerung gibt die Zeit an, um die Übertragung der Daten nach dem Aktivieren des TXEnable-Signals zurückzuhalten. Dies wird beim RS-485-Betrieb (Halbduplex) verwendet, um die Datenübertragung zu verzögern bis der Treiber vollständig aktiviert ist, und berücksichtigt dabei Verzögerungen durch die Treiberaktivierung, Isolationsbarrieren usw. Die Verzögerung wird als Vielfaches der ClockLow-Periode angegeben. Bit 4:: FIFOError. Diese Meldung zeigt an, dass ein Push-Vorgang des Hosts den FIFO überlaufen hat (hauptsächlich zur Fehlersuche im Treiber gedacht). Bit 5:: DriveEnableAuto. Wenn aktiviert, wird der Treiber automatisch eingeschaltet, sobald sich Daten im FIFO oder im Sendeschieberegister befinden, und wieder deaktiviert, sobald beide leer sind. Bit 6:: DriveEnableBit. Wenn DriveEnableAuto auf 0 gesetzt ist, steuert dieses Bit den Treiber manuell (für die softwareseitige Steuerung der Sendetreibersignale).

rx_mode ist eine Bitmaske, die in der Hostmot2-Regmap definiert ist: Bit 0:: FalseStart Bit Status, 1 = falsches Start-Bit erkannt Bit 1 = OverRun Status (Überlauf), 1 = Überlauf erkannt (kein gültiges Stop-Bit) Bit 2:: RXMaskEnable, 1 = RXMask für Halbduplex-Betrieb aktivieren, 0 = RXMask Bit ignorieren 4 = FIFOError, zeigt an, dass ein Host-Lesevorgang versucht hat, mehr Daten zu lesen, als verfügbar sind. (hauptsächlich für Treiber-Debugging) Bit 5:: LostDataError, gibt an, dass Daten empfangen wurden ohne Platz im FIFO, daher verloren Bit 6:: RXMask, RO RXMASK Status Bit 7:: FIFO hat Daten

Die Register rx_mode und tx_mode sind derzeit schreibgeschützt. Möglicherweise sollte es eine get-status-Funktion geben.

Um nur das tx_mode DriveEnable-Bit zu schreiben, rufen Sie diese Funktion mit unveränderter Bitrate und -1 als rx_mode auf. Um die Bitrate ohne Änderung der Moduseinstellungen zu ändern, senden Sie -1 an beide Modi.

RETURN VALUE

Gibt bei Erfolg 0 und bei Misserfolg -1 zurück.

SIEHE AUCH

hm2_uart_send(3), hm2_uart_read(3)

Siehe src/hal/drivers mesa_uart.comp für ein Anwendungsbeispiel.