Разгон порта (режим RS485) до мегабита под QNX
_oligarch |
|
|
|
|
|
|
|
Пункты: 138 |
Регистрация: 22.05.2009 |
|
|
|
Доброго времени суток.
Вот такой вопрос. Прошил QNX, начал работу с сериальным портом. Через mmap_device_io() спроецировал пространство регистров контроллера себе в процесс и непосредственно изменил значение регистра US_MR нулевого уарта. Перевел его в режим RS485. Всё работает отлично. Разогнал порт до скорости 460800 кбод, также непосредственной записью определенного значения в регистр US_BRGR. Но стоит поднять эту скорость до мегабита (921600 бод), как ядро валится и выдает ошибку "Bus error".
Что в этой ситуации можно предпринять? Реально ли заставить родной драйвер работать на мегабит или всё же придется искать исходники и копаться в них?
спасибо. |
|
|
|
|
|
_oligarch |
|
|
|
|
|
|
|
Пункты: 138 |
Регистрация: 22.05.2009 |
|
|
|
неправильно сначала указал скорость передачи в вопросе.
Не могу разогнать до мегабита 921600 бод. |
|
|
|
|
|
rw9uao |
|
|
|
|
|
|
Группа: Клиенты |
Пункты: 6973 |
Регистрация: 26.03.2009 |
|
|
|
нафига там мегабит. лучше в исходниках поправить. если очень нужно, то на новой неделе погоняю. напомните в мыло rw9uao который живет на yandex.ru |
|
|
|
|
|
_oligarch |
|
|
|
|
|
|
|
Пункты: 138 |
Регистрация: 22.05.2009 |
|
|
|
мегабит нужен для задачи. необходимо быстро забрать дата с другой платы, может даже по оптике. |
|
|
|
|
|
_oligarch |
|
|
|
|
|
|
|
Пункты: 138 |
Регистрация: 22.05.2009 |
|
|
|
ого! тут ошибка по битрейту выходит 11%, хотя по даташиту на контроллер она не должна превышать 5%. придется менять сlock |
|
|
|
|
|
rw9uao |
|
|
|
|
|
|
Группа: Клиенты |
Пункты: 6973 |
Регистрация: 26.03.2009 |
|
|
|
отправил в почту поправленный драйвер. проверить не на чем. |
|
|
|
|
|
_oligarch |
|
|
|
|
|
|
|
Пункты: 138 |
Регистрация: 22.05.2009 |
|
|
|
спасибо) щас погоняю.
Уарт посажен на master clock (100 147 200 Hz). при расчете битрета при такой частоте master clock'a получается ошибка 11%. При попытке переинициализировать master clock без делителя система виснет. поэтому у меня вопрос: что вы поправили в драйвере? |
|
|
|
|
|
rw9uao |
|
|
|
|
|
|
Группа: Клиенты |
Пункты: 6973 |
Регистрация: 26.03.2009 |
|
|
|
#ifdef RS485
mode = AT91C_485_MODE;
#else
mode = AT91C_NORMAL_MODE;
#endif |
|
|
|
|
|
|