roboforum.ru

Технический форум по робототехнике.

AT90USB162 и мигающие светодиоды.

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

AT90USB162 и мигающие светодиоды.

Сообщение igor_bu » 15 авг 2011, 22:01

Собрал платку на контроллере AT90USB162. (схема в приложении) Кварц на 8Mhz, питание подается по USB.
Windows видит, FLIP перепрошивает.
Но есть одно НО.
Написал простую программу, зажигающую светодиоды на плате:
asm("WDR");
asm("SEI");

DDRC = 0b11000000;
PORTC = 0b11000000;

while(1) {}

Так вот, светодиоды, подключенные к пинам PC7 и PC6, вместо того, чтобы светиться, мигают. Причем очень тускло.
Изменил на порт PD1, светодиод на этом порту тоже мигает, но уже ярко.

Подскажите, это у меня контроллер умер, или есть какое-то объяснение? :D
Вложения
scheme.png
Схема платы на AT90USB162
igor_bu
 
Сообщения: 7
Зарегистрирован: 15 авг 2011, 21:50

Re: AT90USB162 и мигающие светодиоды.

Сообщение RootAdmin » 15 авг 2011, 23:26

Ватчдог надо сначала инициализировать? Или специфика контроллера?
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: AT90USB162 и мигающие светодиоды.

Сообщение igor_bu » 15 авг 2011, 23:32

Во всех примерах есть сброс таймера. Ну и я поставил, но когда его убираешь, ничего не меняется.
Думаю, что дело в контроллере. :sorry:
igor_bu
 
Сообщения: 7
Зарегистрирован: 15 авг 2011, 21:50

Re: AT90USB162 и мигающие светодиоды.

Сообщение Myp » 16 авг 2011, 09:14

раз моргает код для постоянного свечения значит я так считаю МК ресетится с частотой моргания.
мб у тя замкнуло гдето?
продемонстрируй платку
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: AT90USB162 и мигающие светодиоды.

Сообщение Michael_K » 16 авг 2011, 09:43

У вас наверное вотчдог фьюзами включен.
С чего вы взяли, что светодиоды должны светиться, если вы на них подаете единицу?
Смысл вотчдога в том, чтобы его сбрасывать периодически, а не один раз за всю программу.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: AT90USB162 и мигающие светодиоды.

Сообщение igor_bu » 16 авг 2011, 11:14

Кажется, я понял, что сломалось.
По моей схеме, у меня светодиоды подключены к +5В и к пинам контроллера, светится они будут только в случае, если заменить линию +5В на землю (ну и развернуть их) или, если с пинов будет выходить не +5В, а -5В.
Возникает встречный вопрос, так как схема не моя, я её в интернете нашел, не помню где. :( Зачем так сделали? Как-то можно с ножки контроллера получить напряжение -5В!? По-моему нет...
Вложения
scheme2.png
Светодиоды подключены к пинам МК и +5В.
scheme2.png (34.31 КиБ) Просмотров: 4954
igor_bu
 
Сообщения: 7
Зарегистрирован: 15 авг 2011, 21:50

Re: AT90USB162 и мигающие светодиоды.

Сообщение Romikgy » 16 авг 2011, 11:23

что бы засветился светодиод , его вывод надо сконфигурировать на выход и установить в ноль
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: AT90USB162 и мигающие светодиоды.

Сообщение Myp » 16 авг 2011, 11:48

получить -5 вольт нельзя, да и не нужно, а вот получить ноль на ножке, можно.

-5 вольт и ноль разные вещи =)
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: AT90USB162 и мигающие светодиоды.

Сообщение igor_bu » 16 авг 2011, 12:04

Спасибо за советы.
Получилось!
Код следующий:

asm("WDR");
DDRC = 0b11000000;
PORTC = 0b00000000;

while(1)
{
asm("WDR");
}

Только как-то можно обойтись без команды WDR в цикле? Если убрать сброс watchdog'а, то диоды мигают.

Добавлено спустя 4 минуты 47 секунд:
А теперь немножко уличной магии. Убрал команду WDR, перепрошил МК новой программой - диоды мигают (питание по USB, ноутбук Acer). Подключил плату по USB к ноутбуку HP. И о, чудо! Перестали мигать. Но это еще не всё, вытаскиваю из HP, втыкаю обратно в Acer и они больше не мигают... Это что?
igor_bu
 
Сообщения: 7
Зарегистрирован: 15 авг 2011, 21:50

Re: AT90USB162 и мигающие светодиоды.

Сообщение Romikgy » 17 авг 2011, 10:24

насчет wdr .... не запускать просто вотчдог имхо
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6