Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Проблемы правильным выполнением кода |
Автор: sokolov 1.8.2005, 14:29 |
Есть две МК ATMega16 и AT902313 работают на одной плате, отвечают каждый за свое устройство. Но при этом оба контроллера работают как попало, т.е. сбои в работе кода, начиная каждый раз заново выполение программы, каждый раз новая комбинация выполнения, т.е. бардак в выполнении. На входах стоит RC цепочки. Кварц 1М - Мега16, 8М - AT90S2313. Биты запрограммированны правильно. При этом при работе без силовой нагрузки, т.е. просто нажимаю концевики, все ОК. как только работаю с двигателями, все идет кувырком. Вроде понял что дело в тактовом. Но как проблему устранить пока не знаю. Ктонить сталкивался с подобным ? |
Автор: ManiaK 1.8.2005, 15:10 | ||
Было подобное. Проверь питание (осциллографом!), землю и пр. Прощупай основные выводы. У меня помехи шли, питание плавало и пр. В результате контроллер то сбрасывался, то вообще ерунду давать начинал, то вдруг работал. Умаялись, помница, прилично тогда. |
Автор: cardinal 1.8.2005, 15:50 | ||
L293, L297 используйте? Стоит ограничение по току на блоке питания или нет? А так
он только так начинает ток сосать. Смотри не спали себе процессоры, на прямую не управляй тактовыми двигателями. Не забывай нули выдавать по окончании работы двигателя на все выходы, чтобы не было напряжения на двигателях... Пока больше в голову ничего не приходит... |
Автор: sokolov 1.8.2005, 16:22 | ||||||||
Нет, управление происходи через опторазвязку и тиристор Добавлено @ 16:24
Поподробнее можешь рассказать? что было у тебя, т.е. на сколько питание плаволо, что сделал для того чтобы устранить ошибку. Если можешь пиши по асе 344691087 |
Автор: PILOT 1.8.2005, 16:53 |
Ставь конденсаторы на питании и ресете, по возможности и на входных не высокочастотных линиях (разовые команды). Используй супервизор питания. СУВ. |
Автор: sokolov 1.8.2005, 17:07 | ||
Скажи, при просадке напряжения контроллер может выдавать галематью, в виде непровильного или не поочередного выполнения команд ? И на что вообще сказывается просадка напряжения ? |
Автор: cardinal 1.8.2005, 17:19 | ||||
Хоть вопрос и не ко мне... ![]()
Конечно может! Тебе же в datasheet не просто так пишут, что ему надо 5V к примеру +/- столько-то. Он вообще работать при 4V возможно уже не будет.
На то, что процессор reset'ируется. То есть напряжение упало - он вырубился, напряжение полднялось он начал работу с начала (а не с того места , на котором вырубился!) Обеспечь ему стабильное напряжение, все остальное не дело! |
Автор: PILOT 1.8.2005, 17:45 | ||||
Если контроллер с префиксом L, то работать будет и при 3Вольта. Но страшна не просадка а помехи в питании, резкие скачки. От них прекрасно избавляет конденсатор по питанию, более широкие линии питания вкупе с земляной заливкой обратной стороны печатной платы например. Также рекомендуется запитывать МК через индуктивность (около 4.7мкГн) и параллельно питанию ставить конденсаторы, тогда проблем еще меньше. Конденсаторы керамические номинал 0.1мкФ. Если у тебя в схеме есть регистры, то любая "игла" может защелкнуть регистр и изделие будет вести себя некорректно. Обязательно используй фильтры по питанию (в блоке питания), начиная с цепи 220Вольт, затем стабилизатор и "вплотную" к каждой цифровой микросхеме ставь конденсатор, лишним не будет. СУВ. |
Автор: Гость_Calypso 9.9.2005, 17:58 | ||
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 | ||
Хмм... Интересно. В компьютерных БП фильтры стоят, я думаю, скорее для того, чтобы от них в сеть ничего не попадало, а не наоборот. Я на TOP и PNY разработал два БП. Там дроссели рекомендуют ставить на входе специально для этого. В обычных БП после выпрямителя, ни для кого не новость, естественно все фильтруют. Плюс еще и стабилизатор. Ничего никуда не пролезет из первичной цепи. Может я чего не понял: было рекомендовано ставить фильтры по 220v, грубо говоря. Правильно? Тогда ответ все-же меня не убедил. ЗЫ. Не хочу показаться бараном, но интересно докопаться до сути )) |
Автор: Metal_Heart 28.9.2005, 15:48 |
а также - свободные порты процов лучше заземлить (можно и через резистор) |
Автор: PILOT 28.9.2005, 20:02 |
Я ни слова не написал про импульсные ИП. СУВ. |