|
2 USART под RS485 на ATMega162 |
|
|
|
Mar 15 2009, 20:31
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-06-08
Пользователь №: 38 608

|
Здравия желаю всем !
Делаю устройство на Mega162 с двумя протоколами modbus. USART0 - master, посылает всего 11 разных запросов. USART1 - slave, отвечает на эти 11 запросов с некоторыми корректировками. То есть устройство устанавливается между master и slave и общается с ними с нужными мне исправлениями.
В общем, сделал отдельно master и slave - работает, но когда все в целом, то работает только slave, а master зацикливается на 1-й посылке, иногда 2-я проскакивает.
Вроде проблема с прерываниями, т.к. slave постоянно принимает и отвечает, и не дает master работать. Игрался с запретом прерываний, но ничего не помогло.
Также делал чтобы slave принял, ответил, а потом master послал, принял, поочередно, но так теряется слейвом фреймы.
У кого могут быть какие идеи? Такое устройство возможно ли вообще?
Мега162, кварц - 3,6864... Параметры связи обоих 2400-О-1...
|
|
|
|
|
 |
Ответов
|
Mar 15 2009, 22:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Не разбирался, но взглянул. Заметил такое: выключение передачи - StopTrans1- делается не по TXC, следовательно может подрезать последний байт (стоп-бит). Проверить подручными средствами этот момент проще, если убрать 485 и подключить UART-ы напрямую, но, ИМХО, и так видно. Не думаю, что это единственная проблемка. Цитата мне нужно сразу же отвечать на запрос главного в течении времени 3.5 передачи символа это чего-то надуманное - минимальная пауза нужна как маркер пакета, а реально пауза может достигать сотен миллисекунд и более. В продвинутых реализация даже поддерживается ответ слейва типа "я занят, пинай позже"
--------------------
aka Vit
|
|
|
|
|
Mar 15 2009, 22:57
|
Группа: Новичок
Сообщений: 13
Регистрация: 28-06-08
Пользователь №: 38 608

|
1) С работой слейва проблем не возникало. Смотрю модбас монитором. Но впринципе, спасибо, можно подправить... 2) Вопрос с 3.5 задержкой связан с готовым устройством (мастером), который при отсутствии ответа генерит ошибки в своей программе...На 2-й запрос - точно... Для "моего" то мастера можно и больше задержки делать..
Сообщение отредактировал vetalxh - Mar 15 2009, 23:00
|
|
|
|
Сообщений в этой теме
vetalxh 2 USART под RS485 на ATMega162 Mar 15 2009, 20:31 smac Цитата(vetalxh @ Mar 15 2009, 23:31) ...
... Mar 15 2009, 21:09 vetalxh Цитата(smac @ Mar 16 2009, 01:09) Устройс... Mar 15 2009, 22:38 vetalxh Кода вообще много... Постараюсь основное. Сильно н... Mar 15 2009, 21:31 Огурцов Цитата(vetalxh @ Mar 15 2009, 20:31) Врод... Mar 15 2009, 23:06 sensor_ua ЦитатаВопрос с 3.5 задержкой связан с готовым устр... Mar 15 2009, 23:06 vetalxh sensor_ua, спасибо, буду думать...
А можно по-подр... Mar 15 2009, 23:42 Огурцов Организуйте прерывание от таймера и проверяйте в н... Mar 15 2009, 23:51  vetalxh Цитата(Огурцов @ Mar 16 2009, 03:51) Орга... Mar 16 2009, 00:11   vetalxh В прерывании таймера проверять оба уарта? А если п... Mar 16 2009, 09:08    smac Цитата(vetalxh @ Mar 16 2009, 12:08) В пр... Mar 16 2009, 19:37     vetalxh Короче, думал-думал...Решил обойти все это еще одн... Mar 16 2009, 22:26 defunct Цитата(vetalxh @ Mar 15 2009, 22:31) У ко... Mar 17 2009, 00:19 vetalxh Цитата(defunct @ Mar 17 2009, 03:19) А ка... Mar 17 2009, 08:15  Палыч Цитата(vetalxh @ Mar 17 2009, 11:15) И во... Mar 17 2009, 08:52   vetalxh Цитата(Палыч @ Mar 17 2009, 11:52) Очень ... Mar 17 2009, 10:47 _Pasha Цитата(defunct @ Mar 17 2009, 04:19) для ... Mar 17 2009, 08:43 sitafern Цитата(vetalxh @ Mar 15 2009, 22:31) Здра... Mar 22 2009, 10:13 _Pasha Цитата(sitafern @ Mar 22 2009, 14:13) Есл... Mar 22 2009, 12:44  vetalxh Цитата(_Pasha @ Mar 22 2009, 15:44) Недав... Mar 22 2009, 16:41 vetalxh Утройство сделал. Даже хватило кварца на 3,6864...... Mar 22 2009, 20:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|