Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Проблемы правильным выполнением кода


Автор: sokolov 1.8.2005, 14:29
Есть две МК ATMega16 и AT902313 работают на одной плате, отвечают каждый за свое устройство. Но при этом оба контроллера работают как попало, т.е. сбои в работе кода, начиная каждый раз заново выполение программы, каждый раз новая комбинация выполнения, т.е. бардак в выполнении.
На входах стоит RC цепочки. Кварц 1М - Мега16, 8М - AT90S2313. Биты запрограммированны правильно. При этом при работе без силовой нагрузки, т.е. просто нажимаю концевики, все ОК. как только работаю с двигателями, все идет кувырком.
Вроде понял что дело в тактовом. Но как проблему устранить пока не знаю. Ктонить сталкивался с подобным ?

Автор: ManiaK 1.8.2005, 15:10
Цитата(sokolov @ 1.8.2005, 15:29)
Ктонить сталкивался с подобным ?

Было подобное. Проверь питание (осциллографом!), землю и пр. Прощупай основные выводы. У меня помехи шли, питание плавало и пр. В результате контроллер то сбрасывался, то вообще ерунду давать начинал, то вдруг работал. Умаялись, помница, прилично тогда.

Автор: cardinal 1.8.2005, 15:50
L293, L297 используйте? Стоит ограничение по току на блоке питания или нет?
А так
Цитата(sokolov @ 1.8.2005, 12:29)
Вроде понял что дело в тактовом.

он только так начинает ток сосать. Смотри не спали себе процессоры, на прямую не управляй тактовыми двигателями. Не забывай нули выдавать по окончании работы двигателя на все выходы, чтобы не было напряжения на двигателях...
Пока больше в голову ничего не приходит...

Автор: sokolov 1.8.2005, 16:22
Цитата(cardinal @ 1.8.2005, 15:50)
L293, L297 используйте? Стоит ограничение по току на блоке питания или нет?
А так
Цитата(sokolov @ 1.8.2005, 12:29)
Вроде понял что дело в тактовом.

он только так начинает ток сосать. Смотри не спали себе процессоры, на прямую не управляй тактовыми двигателями. Не забывай нули выдавать по окончании работы двигателя на все выходы, чтобы не было напряжения на двигателях...
Пока больше в голову ничего не приходит...

Нет, управление происходи через опторазвязку и тиристор
Добавлено @ 16:24
Цитата(ManiaK @ 1.8.2005, 15:10)
Цитата(sokolov @ 1.8.2005, 15:29)
Ктонить сталкивался с подобным ?

Было подобное. Проверь питание (осциллографом!), землю и пр. Прощупай основные выводы. У меня помехи шли, питание плавало и пр. В результате контроллер то сбрасывался, то вообще ерунду давать начинал, то вдруг работал. Умаялись, помница, прилично тогда.

Поподробнее можешь рассказать? что было у тебя, т.е. на сколько питание плаволо, что сделал для того чтобы устранить ошибку.
Если можешь пиши по асе
344691087

Автор: PILOT 1.8.2005, 16:53
Ставь конденсаторы на питании и ресете, по возможности и на входных не высокочастотных линиях (разовые команды). Используй супервизор питания.

СУВ.

Автор: sokolov 1.8.2005, 17:07
Цитата(PILOT @ 1.8.2005, 16:53)
Ставь конденсаторы на питании и ресете, по возможности и на входных не высокочастотных линиях (разовые команды). Используй супервизор питания.

СУВ.

Скажи, при просадке напряжения контроллер может выдавать галематью, в виде непровильного или не поочередного выполнения команд ?

И на что вообще сказывается просадка напряжения ?

Автор: cardinal 1.8.2005, 17:19
Хоть вопрос и не ко мне... smile

Цитата(sokolov @ 1.8.2005, 15:07)
Скажи, при просадке напряжения контроллер может выдавать галематью, в виде непровильного или не поочередного выполнения команд ?

Конечно может! Тебе же в datasheet не просто так пишут, что ему надо 5V к примеру +/- столько-то. Он вообще работать при 4V возможно уже не будет.
Цитата(sokolov @ 1.8.2005, 15:07)
И на что вообще сказывается просадка напряжения ?

На то, что процессор reset'ируется. То есть напряжение упало - он вырубился, напряжение полднялось он начал работу с начала (а не с того места , на котором вырубился!)

Обеспечь ему стабильное напряжение, все остальное не дело!

Автор: PILOT 1.8.2005, 17:45
Цитата(sokolov @ 1.8.2005, 14:07)
Цитата(PILOT @ 1.8.2005, )
Ставь конденсаторы на питании и ресете, по возможности и на входных не высокочастотных линиях (разовые команды). Используй супервизор питания.

СУВ.

Скажи, при просадке напряжения контроллер может выдавать галематью, в виде непровильного или не поочередного выполнения команд ?

И на что вообще сказывается просадка напряжения ?

Если контроллер с префиксом L, то работать будет и при 3Вольта. Но страшна не просадка а помехи в питании, резкие скачки. От них прекрасно избавляет конденсатор по питанию, более широкие линии питания вкупе с земляной заливкой обратной стороны печатной платы например. Также рекомендуется запитывать МК через индуктивность (около 4.7мкГн) и параллельно питанию ставить конденсаторы, тогда проблем еще меньше. Конденсаторы керамические номинал 0.1мкФ.

Если у тебя в схеме есть регистры, то любая "игла" может защелкнуть регистр и изделие будет вести себя некорректно.
Обязательно используй фильтры по питанию (в блоке питания), начиная с цепи 220Вольт, затем стабилизатор и "вплотную" к каждой цифровой микросхеме ставь конденсатор, лишним не будет.

СУВ.

Автор: Гость_Calypso 9.9.2005, 17:58
Цитата(sokolov @ 1.8.2005, 14:29)
Есть две МК ATMega16 и AT902313 работают на одной плате, отвечают каждый за свое устройство. Но при этом оба контроллера работают как попало, т.е. сбои в работе кода, начиная каждый раз заново выполение программы, каждый раз новая комбинация выполнения, т.е. бардак в выполнении.
На входах стоит RC цепочки. Кварц 1М - Мега16, 8М - AT90S2313. Биты запрограммированны правильно. При этом при работе без силовой нагрузки, т.е. просто нажимаю концевики, все ОК. как только работаю с двигателями, все идет кувырком.
Вроде понял что дело в тактовом. Но как проблему устранить пока не знаю. Ктонить сталкивался с подобным ?

1) Железо
Правильный монтаж.
Блокирующие конденсаторы по питанию.
Выводы RESET через 2.2nF на землю.

2) ПО
Тщательно проверить как настроены прерывания. К примеру, если разрешено внешнее прерывание, вектор прерывания не обрабатывется и соответствующие выводы МК "висят" в воздухе - получим непредсказуемую работу МК.

Пока все.

Автор: Alex1984 10.9.2005, 04:55
Проверь питание. Скорее у тебя питани просидает до 1,3 В. Нагрузка большая.
Нагрузка может быть черезмерно большой и МК может прыгать по программе( постоянно сбрасывааться).
Теристоры и семисторы помехи дают. Фмльтры по питанию ставь, а лучьше отвяжи питание МК и двигателя.
Тогда все ОК будет.
Используй L297.

Автор: Гость_Calypso 10.9.2005, 11:37
Да, чуть не забыл. Внешний тактовый генератор. Ну это уже будешь лечить не причину, а - следствие.

Автор: Pluto5C 26.9.2005, 23:49
2PILOT

>Обязательно используй фильтры по питанию (в блоке питания), начиная с цепи 220Вольт,

А можно разъяснить - зачем??? На примере источника питания любого типа.

Pluto5C (aka Calypso).

Автор: PILOT 27.9.2005, 22:30
Потому что если сосед начинает влючать старый пылесос, а я в это время смотрю на экран осциллографа, то вижу там пики с двойной амплитудой, хоть силовой транс и не высокочастотный, кое что проходит и мешает жить, и т.к. частота соотв. этим пикам велика, то кое-что летит в эфир, и ловится всем рядом расположенным, поэтому ставят фильтры (в т.ч. в компьютерных ПИЛОТах, имею в виду не себя).

СУВ.

Автор: Pluto5C 28.9.2005, 00:35
Цитата(PILOT @ 27.9.2005, 22:30)
Потому что если сосед начинает влючать старый пылесос, а я в это время смотрю на экран осциллографа, то вижу там пики с двойной амплитудой, хоть силовой транс и не высокочастотный, кое что проходит и мешает жить, и т.к. частота соотв. этим пикам велика, то кое-что летит в эфир, и ловится всем рядом расположенным, поэтому ставят фильтры (в т.ч. в компьютерных ПИЛОТах, имею в виду не себя).

СУВ.

Хмм...
Интересно. В компьютерных БП фильтры стоят, я думаю, скорее для того, чтобы от них в сеть ничего не попадало, а не наоборот. Я на TOP и PNY разработал два БП. Там дроссели рекомендуют ставить на входе специально для этого.

В обычных БП после выпрямителя, ни для кого не новость, естественно все фильтруют.
Плюс еще и стабилизатор. Ничего никуда не пролезет из первичной цепи.

Может я чего не понял: было рекомендовано ставить фильтры по 220v, грубо говоря. Правильно?
Тогда ответ все-же меня не убедил.

ЗЫ. Не хочу показаться бараном, но интересно докопаться до сути ))

Автор: Metal_Heart 28.9.2005, 15:48
а также - свободные порты процов лучше заземлить (можно и через резистор)

Автор: PILOT 28.9.2005, 20:02
Я ни слова не написал про импульсные ИП.

СУВ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)