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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Программный UART в AVR, Помехоустойчивость
BVU
сообщение Aug 23 2005, 11:46
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(CDT @ Aug 23 2005, 15:30)
Цитата(BVU @ Aug 23 2005, 08:23)
Если помеха все-же имеет место возможно происходят сбои задающего генератора контроллера, которые естественно влекут за собой сбой в приемнике UART.
*

А может просто в программе есть местечко, которое иногда работает дольше чем предполагается или что-нибудь запускается (прерывание, WDT) и сбивает приемник с ритма?
*



Приемник UART работает независимо есть прерывание или нет, а вот если бы вмешался WDT, то программа уходит на restart преимущественно с начальными условиями. Но если инициализация переменных происходит при включении питания, то можно такую ситуацию незаметить...
Возможно здесь что-то другое но и это не исключено!?
А что автор молчит? Hey Daisy are you have any result of discussion???


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Daisy
сообщение Aug 23 2005, 12:43
Сообщение #17


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

Группа: Свой
Сообщений: 96
Регистрация: 29-04-05
Из: г. Жуковский
Пользователь №: 4 606



Цитата(BVU @ Aug 23 2005, 08:23)
Если помеха все-же имеет место возможно происходят сбои задающего генератора контроллера, которые естественно влекут за собой сбой в приемнике UART. Попробуйте проанализировать этот вариант.  Если это так - панацею обсудим после.
*

А если имеет место помеха, как её отслеживать-улавливать-выявлять. Я и так уже сижу по часу у осциллографа в ожидании помех. :-)
Или это можно как-то программно сделать?
Go to the top of the page
 
+Quote Post
Daisy
сообщение Aug 23 2005, 12:44
Сообщение #18


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

Группа: Свой
Сообщений: 96
Регистрация: 29-04-05
Из: г. Жуковский
Пользователь №: 4 606



Цитата(Daisy @ Aug 23 2005, 15:43)
Цитата(BVU @ Aug 23 2005, 08:23)
Если помеха все-же имеет место возможно происходят сбои задающего генератора контроллера, которые естественно влекут за собой сбой в приемнике UART. Попробуйте проанализировать этот вариант.  Если это так - панацею обсудим после.
*

А если имеет место помеха, как её отслеживать-улавливать-выявлять. Я и так уже сижу по часу у осциллографа в ожидании помех. :-)
Или это можно как-то программно сделать?
*


Имеется в вижу случай когда генератор сбивается. Как это отследить?
Go to the top of the page
 
+Quote Post
Daisy
сообщение Aug 23 2005, 12:52
Сообщение #19


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

Группа: Свой
Сообщений: 96
Регистрация: 29-04-05
Из: г. Жуковский
Пользователь №: 4 606



Цитата(BVU @ Aug 23 2005, 14:46)
Цитата(CDT @ Aug 23 2005, 15:30)
Цитата(BVU @ Aug 23 2005, 08:23)
Если помеха все-же имеет место возможно происходят сбои задающего генератора контроллера, которые естественно влекут за собой сбой в приемнике UART.
*

А может просто в программе есть местечко, которое иногда работает дольше чем предполагается или что-нибудь запускается (прерывание, WDT) и сбивает приемник с ритма?
*



Приемник UART работает независимо есть прерывание или нет, а вот если бы вмешался WDT, то программа уходит на restart преимущественно с начальными условиями. Но если инициализация переменных происходит при включении питания, то можно такую ситуацию незаметить...
Возможно здесь что-то другое но и это не исключено!?
А что автор молчит? Hey Daisy are you have any result of discussion???
*



Приемник УАРТ работает как раз по прерыванию (внешний INT1). Он же у меня программный. А собака спит и не гавкает.
Вот засада. В следующий раз буду применять чипы с двумя уартами.
Go to the top of the page
 
+Quote Post
BVU
сообщение Aug 23 2005, 13:04
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Daisy @ Aug 23 2005, 16:44)
Цитата(Daisy @ Aug 23 2005, 15:43)
Цитата(BVU @ Aug 23 2005, 08:23)
Если помеха все-же имеет место возможно происходят сбои задающего генератора контроллера, которые естественно влекут за собой сбой в приемнике UART. Попробуйте проанализировать этот вариант.  Если это так - панацею обсудим после.
*

А если имеет место помеха, как её отслеживать-улавливать-выявлять. Я и так уже сижу по часу у осциллографа в ожидании помех. :-)
Или это можно как-то программно сделать?
*


Имеется в вижу случай когда генератор сбивается. Как это отследить?
*



Да... у осцилографа часами сидеть бесполезно. Если подобным методом отслеживать помеху необходим программный хук и регистратор (осцилограф с паматью), таким образом после события отслеженного хуком (срабатывание на помеху, возможно ее анализ) необходимо останавливать регистрацию и тем самым информация о 'помехе' будет находиться в памяти регистратора (опять при условии, что время останова не превысит значение памяти регистратора). Но организовать все это не так-то просто!
Для начала я бы Вам посоветовал посмотреть уровень помех на земляной шине и питании (надеюсь Вы знаете, как это делается?). И в случае обнаружения 'иголок', если их амплитудное значение превышает порог логической '1' для AVR контроллера предпринять дополнительную фильтрацию или найти источник помехи и максимально снизить его.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
TriD
сообщение Aug 23 2005, 14:21
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Цитата(Daisy @ Aug 23 2005, 09:08)
Цитата(Alexandr @ Aug 22 2005, 21:42)
А Вы уверены что это именно помеха, а не сбой в передатчике, связанный хотя бы с нестабильностью частоты его герератора.
*


Да передачик вроде в порядке, во всяком случае на счет частоты. Данные с него заводились непосредственно на COM-порт компьютера. Никаких сбоев не наблюдалось. То есть компьютер эту помеху фильтрует.
*



А проверялся ли таким образом приемник? или он аппаратный?
Какое расстояние между микроконтроллерами участвующими в обмене? Используются ли преобразователи интерфейса?
Go to the top of the page
 
+Quote Post
siriasis
сообщение Sep 7 2005, 11:01
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 26-05-05
Пользователь №: 5 438



А правильно настроены приемник и предатчик. У меня такое было когда я в одном указал на два стоп-бита а на другом на один стоп бит. Но все- таки надо конечно же контрольную сумму CRC8 или CRC16. Программки на асме есть где-то в нете
Go to the top of the page
 
+Quote Post
Daisy
сообщение Sep 12 2005, 13:28
Сообщение #23


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

Группа: Свой
Сообщений: 96
Регистрация: 29-04-05
Из: г. Жуковский
Пользователь №: 4 606



Вобщем дела такие.
Прошу прощение за столь долгое молчание. Наконец-то удалось дойти до (логического) конца. Эти УАРТ-ы меня выматали.
Когда оба УАРТ-а работали по прерываниям - ничего добиться не удалось.
Теперь аппаратный работает по опросу флагов, а программный по прерываниям. Помехи нет.
Только, это все такие была не помеха, а ошибка в программе. Но как она фильтровалась RC-цепочкой - загадка.
Большое спасибо всем за помощь.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 12 2005, 14:02
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Daisy @ Sep 12 2005, 17:28)
Вобщем дела такие.
Прошу прощение за столь долгое молчание. Наконец-то удалось дойти до (логического) конца. Эти УАРТ-ы меня выматали.
Когда оба УАРТ-а работали по прерываниям - ничего добиться не удалось.
Теперь аппаратный работает по опросу флагов, а программный по прерываниям. Помехи нет.
Только, это все такие была не помеха, а ошибка в программе. Но как она фильтровалась RC-цепочкой - загадка. 
Большое спасибо всем за помощь.
*


Если не секрет, расскажите более подробно, что за ошибка? А то столько людей ломали голову, что бы Вам помочь. Да и вдальнейшем на такие грабли да бы не наступить... smile.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 12 2005, 14:24
Сообщение #25


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Daisy @ Sep 12 2005, 16:28)
Вобщем дела такие.
Прошу прощение за столь долгое молчание. Наконец-то удалось дойти до (логического) конца. Эти УАРТ-ы меня выматали.
Когда оба УАРТ-а работали по прерываниям - ничего добиться не удалось.
Теперь аппаратный работает по опросу флагов, а программный по прерываниям. Помехи нет.
*

А такой вопрос - в самом начале обработчика аппаратного UART-а стоит (стояло?) разрешение вложенных прерываний?
Быть может, просто длины этого обработчика хватало, чтобы иногда срубить времянку для программного?


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
mse
сообщение Sep 12 2005, 19:14
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Думаю, что вопрошающему надо почитать статейку =АК=, на сахаре, например. Потому как помогает ему RC-цепочка. А это симптом.
Вэлкомм:
http://www.caxapa.ru/faq/emc_immunity.html
ЗЫ. Цепочку, сто пудов надо ставить.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 13 2005, 05:20
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(mse @ Sep 12 2005, 23:14)
Думаю, что вопрошающему надо почитать статейку =АК=, на сахаре, например. Потому как помогает ему RC-цепочка. А это симптом.
Вэлкомм:
http://www.caxapa.ru/faq/emc_immunity.html
ЗЫ. Цепочку, сто пудов надо ставить.
*


Про такие ньюансы помех любезный, мы знаем и без Вас. В последнем ответе автора было ясно сказано "Только, это все такие была не помеха, а ошибка в программе. ". Об этом я и просил его сделать разьяснения. angry.gif
А за ссылку все же спасибо! Многим начинающим будет полезно ознакомиться с данным материалом... smile.gif
А что касается RC-цепи, то это ни есть хорошо, т.к. ее временные параметры всегда не достаточно стабильны для работы особенно если речь заходит о серийном производстве.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
CDT
сообщение Sep 13 2005, 06:35
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044



Цитата(Daisy @ Sep 12 2005, 16:28)
Когда оба УАРТ-а работали по прерываниям - ничего добиться не удалось.
Теперь аппаратный работает по опросу флагов, а программный по прерываниям. Помехи нет.
Только, это все такие была не помеха, а ошибка в программе. Но как она фильтровалась RC-цепочкой - загадка. 
Большое спасибо всем за помощь.
*

Видимо, когда первым вызывал прерывание аппаратный UART, прерывания запрещались, а вложенные не разрешались.
В результате со временем возникал конфликт и пропускалась (или откладывалась) обработка очередного фронта программного интерфейса.
Для AVR характерно, что входы и выходы внутренней аппаратуры стробируются тактовым генератором процессора.
Вот RC цепочка и сдвинула сигнал, смещая его из зоны конфликта.
Интересно, достаточно ли одинаковая скорость была у UARTов. Возможно, конфликта можно избежать, сделав эти скорости немного разными.


--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Sep 13 2005, 07:38
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(CDT @ Sep 13 2005, 09:35)
Цитата(Daisy @ Sep 12 2005, 16:28)
Когда оба УАРТ-а работали по прерываниям - ничего добиться не удалось.
Теперь аппаратный работает по опросу флагов, а программный по прерываниям. Помехи нет.
Только, это все такие была не помеха, а ошибка в программе. Но как она фильтровалась RC-цепочкой - загадка. 
Большое спасибо всем за помощь.
*

Видимо, когда первым вызывал прерывание аппаратный UART, прерывания запрещались, а вложенные не разрешались.
В результате со временем возникал конфликт и пропускалась (или откладывалась) обработка очередного фронта программного интерфейса.
Для AVR характерно, что входы и выходы внутренней аппаратуры стробируются тактовым генератором процессора.
Вот RC цепочка и сдвинула сигнал, смещая его из зоны конфликта.
Интересно, достаточно ли одинаковая скорость была у UARTов. Возможно, конфликта можно избежать, сделав эти скорости немного разными.
*

Всё равно рано или поздно был бы пропуск сигнала. smile3009.gif
Go to the top of the page
 
+Quote Post
mse
сообщение Sep 13 2005, 07:43
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



;О) ну насчёт того, что "знаем" не сумлеваюсь не разу, это раз. То, что Р-С цепь может лечить программный затык, надо записать где-нить, чтобы не забыть, это два. Просто холодильник за стенкой выключили на разморозку, и у человека слетать перестало.
А если серьёзно, то ситуаццыя такая - на нарастающем фронте INTn успевает сгенериться несколько прерываний(например, накладываются переходные процессы от нутряного тактирования), которые и могли калечить программную реализацию УАРТа многократным срабатыванием ИНТ. Р-С цепь убирала ВЧ составляющую и генерилось одно прерывание, всё, типа, путём. Такая ситуаццыя была особенно ярко выражена у АТ80Сх051. Там ИНТы находились вообще рядом с ОСЦ и наводка могла быть 100-200мв. Гы... кстати, у М128 аналогично. Так што Р-С, а точнее - С рулит. Думаю, пик 47-200 будет само то.

"Для AVR характерно, что входы и выходы внутренней аппаратуры стробируются тактовым генератором процессора.
Вот RC цепочка и сдвинула сигнал, смещая его из зоны конфликта"
Ну, дык, события-то асинхронные, сдвинули их на пол-того-туда-сюда, принципиально ничё не изменицца. ;О)
Go to the top of the page
 
+Quote Post

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

 


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


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