реклама на сайте
подробности

 
 
> Выловить глюк с помощью JTAG ICE MKii, проконсультируйте варианты нахождения глюков в программе
Склихасовский
сообщение Jun 17 2008, 09:48
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 29-11-06
Пользователь №: 22 912



Ребят, уже 5 е сутки башкой об стену бьюсь...
немогу заставить нормально работать RS485 сетку...
--------
вообщем попорядку...
кристалл MEGA 64 AI
задействовано 2 уарт
USART0 - реализация протокола WAKE (master)
USART1 - реализация протокола ModBUS (slave)
собственно основная проблема c сетью на WAKE:
структура сети 1 мастер куча слейв...
на данный момент идет опрос только одного подчиненного.
непонятно по каким причинам программа вываливается в тайм аут
время "сбрыкивания" от 2 х сек до минуты
(но полюбому сбрыкивает)
(тайм аут выбран от 10 до 200 мС [100]) скорость сети 19200
сначала думал слейв не отвечает...
подцепил ко входам USART0 лог анализатор...
он показывает что во время возникновения тайм аута слейв всетаки ответил
и ответил корректно..
линия переключения RX-TX на драйвере 485 все ОК
сделал контроль регистр - рассовал вовсе точки.
и такое впечатление что на момент глюка приемник не принимает ни одного байта
почему? посылка идет 10-15 байт..
вот и не могу отследить где косяк
прерывания RXCIE, TXCIE и RXEN TXEN - всё включено постоянно...
осваиваю MKII недавно, может там есть какая нибудь функция которая поможет?

Сообщение отредактировал Склихасовский - Jun 17 2008, 09:52
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jun 18 2008, 10:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



На вид (точно сказать не могу) очень малое время м/у Tx и Rx. Сделайте задержку в датчиках. Может банально не успевает переключаться и режется кусок Rx посылки.

Я делаю не так, а как в Modbus. В смысле при приёме запускаю таймер выставленный на интервал чуть больше длит. одного байта. Таким образом если за это время поступает следующий байт, то таймер перезаряжается. Если байт не поступает, то именно это и является признаком конца посылки. Переключается на передачу и обрабатывается пакет. Ответ же поступает с задержкой. В связи с этим - никаких гонок нет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Склихасовский   Выловить глюк с помощью JTAG ICE MKii   Jun 17 2008, 09:48
- - mdmitry   А зачем всегда прерывание по передаче стоит? У мен...   Jun 17 2008, 10:17
|- - defunct   Цитата(mdmitry @ Jun 17 2008, 13:17) А за...   Jun 17 2008, 13:52
- - Склихасовский   Да все это так... все верно так и сделано что в мо...   Jun 17 2008, 10:27
- - SasaVitebsk   Может не переключается с передачи на приём? Поэтом...   Jun 17 2008, 13:08
- - Склихасовский   спасибо за советы... Прерывания никогда не разреша...   Jun 17 2008, 15:03
|- - defunct   Цитата(Склихасовский @ Jun 17 2008, 18:03...   Jun 17 2008, 16:05
||- - Склихасовский   Цитата(defunct @ Jun 17 2008, 20:05) Брек...   Jun 18 2008, 07:21
||- - mdmitry   Цитата(Склихасовский @ Jun 18 2008, 11:21...   Jun 18 2008, 07:33
|- - mse   Цитата(Склихасовский @ Jun 17 2008, 19:03...   Jun 18 2008, 05:29
- - Склихасовский   А почему нет? вакой я обслуживаю свои датчики с то...   Jun 18 2008, 07:43
- - Склихасовский   Цитата(SasaVitebsk @ Jun 18 2008, 14:37) ...   Jun 18 2008, 10:51
- - SasaVitebsk   Боже а TWI здесь каким боком? Если по прерывани...   Jun 19 2008, 18:45
- - Fusion   Цитата.org UDRE1addr ;= 0x004e; USAR...   Jun 19 2008, 19:30
- - Склихасовский   да не вектора правильно расположены.. это просто в...   Jun 20 2008, 06:44
- - SasaVitebsk   Цитата(Склихасовский @ Jun 20 2008, 09:44...   Jun 20 2008, 09:35


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016