Магический МК

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

В общем не знаю, что и делать...
Есть МК ATmega16, на 4 ноги DDRD (порты настроены на выход) должно подаваться 1 0 1 0...
Но иногда там вообще корявое напряжение, колеблется от 1,2 до 3,5 Вольт...

Всё прошивается нормально, проверял на 2-ух МК, кондёры стоят и на питании самого МК и на питании АЦП, и на 78L05 стоят кондёры, поставил внешний кварц, на нём тоже кондёры, ресет подтянут резистором на плюс...
Что ещё сделать можно? Странные глюки...
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

А вы точно порт на выход настроили? И чем кстати меряете? Нагрузка на ногах какая?
Знание - сила!
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Пн ноя 12, 2007 20:53:05
Откуда: Одесса

Сообщение biDE »

вообще-то именно DDRD и управляет направлением (вход или выход), поэтому 1010 = выход.вход.выход.вход. А на входе напряжение определяется либо подтяжкой, либо внешним напряжением.
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Пухич, точно, меряю вольтметром, к ним подключена L293D.
biDE, чтобы было понятнее, вот код:

Код: Выделить всё

DDRB = 0xFF;

PORTB |= 1<<0;
PORTB &= ~(1<<1);
PORTB |= 1<<2;
PORTB &= ~(1<<3);
Дело в том, что иногда там нормально всё и порты работают как надо, а потом как-то всё сбрасывается и на выходе никаких 0 или 1 нет. И ресет не помогает и выключение\включение. Понятно, что какие-то наводки идут, но как их убрать я уже не представляю, схема спаяна на монтажной плате, то есть без дорожек, а с проводами...
Уже лезет в голову мысль обернуть МК фольгой и соеденить с "землёй"... :))
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Но иногда там вообще корявое напряжение, колеблется от 1,2 до 3,5 Вольт...

Может быть на линиях порта не статическое число, а попеременно 1 и 0 с различным заполнением в результате глюка программы (нечто вроде ШИМ)? Тогда вольтметр действительно будет показывать изменяющеся напряжение. Нет возможности осциллоскопом пин посмотреть? Если нет осциллоскопа - пищалку с резистором на порт - частоты до 10 кГц думаю можно будет засечь, ну в крайнем случае - светодиод с резистором - до 10 Гц можно различить.
Реклама
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Тока что заново проверял, всё нормально работало, выдавало стабильно 1 и 0...
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Lockdog писал(а):Тока что заново проверял, всё нормально работало, выдавало стабильно 1 и 0...
На предмет коз и холодных проверял?
Знание - сила!
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Да проверял, но если проблема не решится, то я, по всей видимости, буду все контакты заново перепаивать...
Контактная информация:
Прорезались зубы
Аватара пользователя
Сообщения: 219
Зарегистрирован: Вт сен 18, 2007 16:41:16
Откуда: Украина, г. Запорожье

Сообщение alex2103 »

Код: Выделить всё

DDRB = 0xFF; 

PORTB |= 1<<0; 
PORTB &= ~(1<<1); 
PORTB |= 1<<2; 
PORTB &= ~(1<<3);
а оно не в бесконечном цикле это делает?
Контактная информация:
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Нет, просто в основной программе выполняется 1 раз.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Мистика какая-то. А ватчдог в порядке? Может включен да не сбрасывается?
Знание - сила!
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Вот-вот, вчера вечером всё нормально было, сегодня утром тоже, сейчас опять включил, сначала всё работало, потом опять коряво всё стало, на одной ноге 1,2, на другой 3,5, на 2-ух других примерно тоже самое, а вот насчёт вотчдога не знаю...на самом деле с ним даже не работал, может подскажете как CVAVR его программить?
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

В CVAVR я как свинья в апельсинах. Пишу только на ассемблере. Но подозреваю, что можно в CVAVR засылать нужные значения в регистры, в том числе и в WDTCR.
Знание - сила!
Встал на лапы
Аватара пользователя
Сообщения: 99
Зарегистрирован: Вт фев 19, 2008 20:46:27
Откуда: Новгород

Сообщение kolyay »

Было похожая свистопляска когда кварц глючил.
Последний раз редактировалось kolyay Ср июл 16, 2008 18:45:21, всего редактировалось 1 раз.
Контактная информация:
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

У меня либо от проводов на самой плате такие наводки, либо от компа+колонки...
Пройдусь-ка я заново по всем контактам с паяльником...
и про таймер почитаю...


Дык я сначала от внутреннего тактировал, глючило, потом подключил внешний, всё тоже.
Если ты имеешь ввиду компилятор, то юзаю CVAVR
Контактная информация:
Встал на лапы
Сообщения: 133
Зарегистрирован: Ср июл 16, 2008 21:23:37
Откуда: Україна, Київ

Сообщение ramid »

"на 4 ноги DDRD"
"Код:
DDRB = 0xFF;

PORTB |= 1<<0;
PORTB &= ~(1<<1);
PORTB |= 1<<2;
PORTB &= ~(1<<3); "

Проверь-ка еще раз код.
Встал на лапы
Сообщения: 101
Зарегистрирован: Вт июл 15, 2008 19:29:21

Сообщение Lockdog »

Извиняйте, это опечатка, всё правильно в коде это DDRB и L293D подключена к портам B.
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»