LinuxCNC Documentation

СИНТАКСИС

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

ОПИС

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.

tx_mode — це бітова маска, визначена в регмапі Hostmot2: Біт 0..3:: Затримка TXEnable. Затримка TXEnable визначає час затримки передачі даних від моменту, коли сигнал TXenable стає дійсним. Це використовується для роботи RS-485 (напівдуплекс) для затримки передачі даних до моменту активації драйвера, що дозволяє затримати активацію драйвера, затримку ізоляційного бар’єру тощо. Затримка вимірюється в одиницях періоду ClockLow. Біт 4:: Помилка FIFO, це означає, що хост-push переповнив FIFO (головним чином для налагодження драйвера). Біт 5:: DriveEnableAuto. Якщо встановлено, вмикає дисковод, коли в FIFO або регістрі зсуву Xmit є будь-які дані, і вимикає дисковод, коли FIFO та регістр зсуву Xmit порожні. Біт 6:: DriveEnableBit. Якщо DriveEnableAuto дорівнює 0, керує приводом (для програмного керування приводом Xmit).

rx_mode — це бітова маска, визначена в регмапі Hostmot2: Біт 0:: Стан біта FalseStart, 1 = виявлено біт хибного старту Біт 1 = Стан перевантаження, 1 = виявлено умову перевантаження (немає дійсного стоп-біту) Біт 2:: RXMaskEnable, 1 = увімкнути RXMask для напівдуплексного режиму, 0 = ігнорувати RXMask. Біт 4 = FIFOError, вказує на те, що хост намагався прочитати більше даних, ніж доступно. (головним чином для налагодження драйвера) Біт 5:: LostDataError вказує на те, що дані були отримані без місця в FIFO, тому вони втрачені Біт 6:: RXMask, RO RXMASK статус Біт 7:: FIFO має дані

Регістри rx_mode та tx_mode наразі доступні лише для запису. Можливо, має бути функція get-status.

Щоб записувати лише в біт DriveEnable tx_mode, викличте цю функцію з незмінним бітрейтом та значенням -1 як rx_mode. Щоб змінити бітрейт без зміни налаштувань режиму, надішліть -1 в обидва режими.

ПОВЕРНЕНЕ ЗНАЧЕННЯ

Повертає 0 у разі успіху та -1 у разі невдачі.

ДИВІТЬСЯ ТАКОЖ

hm2_uart_send(3), hm2_uart_read(3)

Див. src/hal/drivers mesa_uart.comp для прикладу використання.