roboforum.ru

Технический форум по робототехнике.

ISA UART

ISA UART

noonv » 22 сен 2011, 17:58

Приветствую!
ALT Linux 5.0 (2.6.30)

ISA-я плата (контроллер XR16C2850) с двумя UART-ами
устанавливаю джамперами базовый адрес и прерывания

настраиваю последовательные порты:
Код: Выделить всёРазвернуть
setserial /dev/ttyS4 uart 16850 port 0x100 irq 5 baud_base 3686400
setserial /dev/ttyS5 uart 16850 port 0x108 irq 6 baud_base 3686400


проблема:
на скорости 921600, при считывании одиночных байт проблем не возникает, но при попытке считывания пакета данных ( например, 134 байта) часть байтов пакета теряются (причём байт может потеряться и в середине пакета О_о).

пробовал уменьшать скорость, но похоже, потерь нету только на 9600 :ROFL:

подскажите, в чём может быть дело?
Спасибо!
Последний раз редактировалось noonv 22 сен 2011, 22:04, всего редактировалось 1 раз.

Re: ISA UART

dccharacter » 22 сен 2011, 18:55

Может в том, что скорость 3Мбита прописана?

Re: ISA UART

Angel71 » 22 сен 2011, 19:13

не должно из-за этого.
здесь http://www.exar.com/Common/Content/ProductDetails.aspx?ID=25 указано
Up to 6.25 Mbps at 5V, and 4 Mbps at 3.3V

Re: ISA UART

dccharacter » 22 сен 2011, 20:52

Зачем гадать? Можно прописать 19200 и проверить.

Re: ISA UART

noonv » 22 сен 2011, 22:03

проверю, хотя, кажется это не то :unknown:
baud_base скорость_в_бодах
Этот параметр устанавливает частоту изменения состояния сигнала линии в бодах, которая является опорной частотой внутреннего генератора поделенной счётчиком-делителем на 16. Обычно, это значение равно 115200 бод, это также самая высокая скорость которую может поддерживать микросхема UART.

http://www.opennet.ru/man.shtml?topic=s ... &russian=0

Re: ISA UART

noonv » 23 сен 2011, 10:48

изменение не помогает.

сам альт, скорее всего не причём, но возникает вопрос - в чём может быть дело :(
не хватает времени на обработку прерывания (FIFO 128 байт)?
но я подключаю к этому же компу переходник USB-RS422 (FIFO 64 байта) и всё считывается нормально :-[

Re: ISA UART

Angel71 » 23 сен 2011, 14:40

тут или уход частоты или настройки или не совсем корректно в коде отсылаете/принимаете данные. у вас кварц на 14.7456 и data rate x16? у вас в строке инициализации не все уартовкие настройки, остальные возможно задать?
врядли, но возможно нужно сменить кварц и/или кондёры. но это имхо как крайняя мера.


Rambler\'s Top100 Mail.ru counter