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

 
 
> Сбой при включении
Lexdaw
сообщение Sep 29 2011, 08:04
Сообщение #1


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Прибор (mega8515) опрашивает по USART, производит вычисления,выдает управляющий сигнал.
При подаче питания иногда(1 из 3..5 раз) не вычисляет один из параметров(=0).Есть кнопка перехода в стартовый режим.
По ней всё работает - всегда.При переходе в стартовый режим производиться обнуление ОЗУ,полная иницилизация всех таймеров,Usart и тп(всё как и при включении).Даже завел этот переход на старт МК.Добиться устойчивого этого сбоя тоже не получается.
По Reset тоже всё работает.
Где туплю?
какая травка поможет словить этот глюк? sm.gif
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
AlexFTF
сообщение Sep 29 2011, 08:23
Сообщение #2


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

Группа: Свой
Сообщений: 95
Регистрация: 11-11-10
Из: Новосибирск
Пользователь №: 60 808



Цитата(Lexdaw @ Sep 29 2011, 15:04) *
При подаче питания иногда(1 из 3..5 раз) не вычисляет один из параметров(=0).......
По Reset тоже всё работает.


Не совсем понятно, так как при подаче питания происходит аппаратный сброс мк.. Проблема как мне видится в коде...
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 08:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Насколько я понял: неверное вычисление параметра получается из-за неверных принятых данных по USART. Следовательно - какая-то "беда" при первом опросе: получаете неверные данные. Кнопка перехода в стартовый режим - это "не честный" сброс: USART уже проинициализирован...
Вероятно, какая-то помеха проходит по линиям USART от момента включения устройства (подачи питания) до инициализации USART.
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Sep 29 2011, 08:35
Сообщение #4


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Видимо не точно объяснил.До вычисления, по USART принимается куча данных и не один раз и правильно.
А вход в стартовый режим специально делал чтобы сбить - не выходит.
Сам в шоке.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 29 2011, 08:43
Сообщение #5


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Lexdaw @ Sep 29 2011, 12:35) *
Видимо не точно объяснил.До вычисления, по USART принимается куча данных и не один раз и правильно.
А вход в стартовый режим специально делал чтобы сбить - не выходит.
Сам в шоке.

Если у вас по ресету работает нормально, а сбоит только при подаче питания, то причина сбоя может быть в том, что напряжение питания нарастает слишком медленно, и МК пытается делать вычисления на напряжении питания, которое еще не достигло номинала. Поставьте нужный BODLEVEL в фузах, чтобы МК не просыпался при недостаточном напряжении. Или поставьте аппаратный супервизор.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 08:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Xenia @ Sep 29 2011, 12:43) *
Поставьте нужный BODLEVEL в фузах, чтобы МК не просыпался при недостаточном напряжении.
BODEN запрограммировать не забудьте.
Go to the top of the page
 
+Quote Post
AlexFTF
сообщение Sep 29 2011, 09:05
Сообщение #7


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

Группа: Свой
Сообщений: 95
Регистрация: 11-11-10
Из: Новосибирск
Пользователь №: 60 808



Цитата(Xenia @ Sep 29 2011, 15:43) *
причина сбоя может быть в том, что напряжение питания нарастает слишком медленно и МК пытается делать вычисления на напряжении питания, которое еще не достигло номинала.


Вряд ли, ведь в мк есть POR и если напряжение питания не достигнет определенного уровня, мк даже не запуститься.

Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Sep 29 2011, 09:05
Сообщение #8


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (Xenia @ Sep 29 2011, 12:43) *
..... и МК пытается делать вычисления на напряжении питания, которое еще не достигло номинала.

Что-то не так. МК не начнёт вычисления, пока напряжение питания не достигнет минимально допустимого предела , при котором он работоспособен.
Значит он вычисления сделает правильно и reset по питанию в любом случае отработает , пока он не достигнет порогового значения за которым МК работает надёжно . Можно просто удлинить SUT.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 09:31
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(NSTU @ Sep 29 2011, 13:05) *
в мк есть POR и если напряжение питания не достигнет определенного уровня, мк даже не запуститься.
Не факт, что после достижения Vpot и запуска МК напряжение питания не просядет вследствии запуска МК и увеличения потребления. Кроме того, типичное значение Vpot=1.4V, когда производитель гарантирует работоспособность МК при напряжении питания 2.7V.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Sep 29 2011, 09:43
Сообщение #10


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (Палыч @ Sep 29 2011, 13:31) *
Не факт, что после достижения Vpot и запуска МК напряжение питания не просядет вследствии запуска МК и увеличения потребления. Кроме того, типичное значение Vpot=1.4V, когда производитель гарантирует работоспособность МК при напряжении питания 2.7V.

Но и мин. напряжения BOD 1.8V и ставить его на этот уровень смысла не имеет , если MK, при таком питании, не запускает генератор - стоит. Порог выше , не означает , что
QUOTE
напряжение питания не просядет вследствии запуска МК
и будет опять reset. Всё таки проще "затянуть" timeout reset


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Sep 29 2011, 10:04
Сообщение #11


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Ещё раз все вычисления происходят через 3- 5 мин. инфа по USART читается.
Только что сделал эксперимент Вкл питние - Reset пинцетом - сбой
Не выключая питания - Reset - все нормально.
Питание нормальное.
Цепочка расчета до последнего действия верна(тем паче всё работает потом )
менял действия местами - эффект тот же.
Бьюсь неделю.Уже начинаю глупо ххихикать.
Go to the top of the page
 
+Quote Post
AlexFTF
сообщение Sep 29 2011, 10:16
Сообщение #12


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

Группа: Свой
Сообщений: 95
Регистрация: 11-11-10
Из: Новосибирск
Пользователь №: 60 808



Цитата(Lexdaw @ Sep 29 2011, 17:04) *
Ещё раз все вычисления происходят через 3- 5 мин. инфа по USART читается.
Только что сделал эксперимент Вкл питние - Reset пинцетом - сбой
Не выключая питания - Reset - все нормально.
Питание нормальное.
Цепочка расчета до последнего действия верна(тем паче всё работает потом )
менял действия местами - эффект тот же.
Бьюсь неделю.Уже начинаю глупо ххихикать.


Зачем резет пинцетом? Кнопки нет? Схему можно глянуть?

Lexdaw, если я правильно понял сбой возникает иногда и только после включения питания?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Sep 29 2011, 10:17
Сообщение #13


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (Lexdaw @ Sep 29 2011, 14:04) *
Только что сделал эксперимент Вкл питние - Reset пинцетом - сбой

Это значит , что при вкл. питания reset удерживали пинцетом? Поясните


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 10:30
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



1. Убедиться, что при неверных расчетах данные, принятые по USART - верны.
2. Внимательно просмотреть глобальные и статические переменные на предмет их начальной инициализации.
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Sep 29 2011, 10:54
Сообщение #15


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Понимаю, что звучит как бред. Но я, честное слово, пишу не из психушки.
Итак.
1. Подаю питание на прибор, запускаю в работу(по кнопке).Дойдя до нужного места нет расчета параметра.
Делаю Reset (или по кнопке переход в начальное состояние),запускаю в работу - параметр расчитан.
2. Подаю питание на прибор, запускаю в работу(по кнопке).НЕ Доходя до нужного места
делаю Reset (или по кнопке переход в начальное состояние),запускаю в работу - нет расчета параметра.

Но при переходе на старт ,я очищаю ОЗУ,и РОН.По новой инициализирую счетчики и USART.
Использую прерывания по переполнению сч Т0, компаратор А сч Т1, и прерывания для USART.
Где я упускаю.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 11:03
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lexdaw @ Sep 29 2011, 14:54) *
Где я упускаю.

Ну, очень похоже, что что-то не инициировано при старте программы. Попробуйте при неверных расчетах произвести расчет ещё раз не принимая новых данных. Если при повторном расчете всё пройдёт верно - что-то не проинициализировали/не дотёрли/не установили....
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Sep 29 2011, 11:14
Сообщение #17


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



А у Вас переход на старт и reset это одна и та же метка?
QUOTE
при переходе на старт ,я очищаю ОЗУ,и РОН.

Обычно это делается и по reset


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 11:22
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Очень похоже, что при расчетах используется некая переменная/флаг, котороя не инициируется при старте программы. При выполнении расчетов в эту переменную/флаг попадает "разумное" значение и остаётся в памяти при ресете, поэтому все последующие расчеты после первого расчета и последующего ресета проходят нормально. При выключении питания - память (ОЗУ) портится и первый расчет опять производится с ошибкой. Нестабильность неверных расчетов после включения питания объясняется "случайным" содержимым неинициированной ячейки, которое может восприниматься программой как "хорошее".
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Sep 29 2011, 12:08
Сообщение #19


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Я это как бы понимаю,но глаз замылился.Все вроде чищу,ан нет.
Видать нужны капли покрепче.(Вот оно то самое где без 100 грамм никак)! sm.gif

Сообщение отредактировал IgorKossak - Sep 29 2011, 20:07
Причина редактирования: Бездумное цитирование
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 29 2011, 12:41
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lexdaw @ Sep 29 2011, 16:08) *
Я это как бы понимаю,но глаз замылился.Все вроде чищу,ан нет.

Если программа - "не секретная", хорошо структурированная и откоментированная, то выложите проект - может быть кто свежим взглядом "баг" найдёт...
Go to the top of the page
 
+Quote Post
zhevak
сообщение Sep 29 2011, 18:35
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Забудьте про 100 г. Вообще. Навсегда.
Алкоголь -- это не пищевой продукт, а слабо действующий яд, который при даже небольших дозах все равно разрушает организм хоть и минимально. Зачем это Вам надо? У Вас в жизни проблем нет? Приходится придумывать, изобретать?

Задавайте вопросы не тут на форуме, а самому себе. Разгадывать Ваши шарады наверно кому-то и будет интересно, но ядреные специалисты вряд ли будут вестись на Ваши "кроссворды", у них своих дел выше крыши. Они, конечно, помогут Вам, но при условии -- максимально предоставленная информация с Вашей стороны.А пока от Вас исходят одни только эмоции. Загадки угадывать -- не интересно. Интересно исследовать.

Как самому бороться с проблемой? -- Копать. Копать глубже. Не происходит инициализация чего-то там к указанному сроку? Хорошо! Почему не происходит? Кто эту инициализацию осуществляет? Что является критерием правильно инициализации? Как проверить? Достаточно-ли просто для этого повесить на свободную гогу ЛЭД и зажечь его или нужно "вывести наружу" целый блок информации?

Думайте, стройте предположения, проверяйте. Запаяйте два ЛЭДа. Выводите на них разные данный из разных частей программы.

Откуда нам знать, что там у Вас твориться? Играть в угадайку -- неблагодарное занятие. Жизнь и без этих Что-Где-Куда быстро проходит.
Уважайте тех, кто может Вам помочь. Не пытайтесь захомутать в свою игру. Либо мы работаем, и помогаем друг другу решать проблемы, либо мы балаганим.

Я очень надеюсь, что Вы не обидитесь на мои нравоучения, а сделаете правильный вывод. Пожалуйста, добавьте серьезности и у Вас все начнет получаться.

Итак. С чего начнем?


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Lexdaw
сообщение Sep 30 2011, 05:14
Сообщение #22


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

Группа: Участник
Сообщений: 87
Регистрация: 5-02-08
Пользователь №: 34 772



Благодарю всех за участие. Проблема, хм , глупость побеждена.
Моя истерика была конечно неуместна, но принцип «пытаясь объяснить другим –наконец-то сам поймешь чего творишь» сработал.
Выкладывать текст кода посчитал неоправданной жестокостью Я ж не садист заставлять бродить по этим сумеречным лабиринтам.
Оказалось в одной из п/п математики(пользуемой давно и часто) не было предварительной очистки одного из рабочих регистров.
Ёще раз всем спасибо.
P.S.А обижаться, я давно такой глупой привычки не умею.sm.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 00:47
Рейтинг@Mail.ru


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