roboforum.ru

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

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

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

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

RootAdmin » 15 авг 2011, 23:26

Ватчдог надо сначала инициализировать? Или специфика контроллера?

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

igor_bu » 15 авг 2011, 23:32

Во всех примерах есть сброс таймера. Ну и я поставил, но когда его убираешь, ничего не меняется.
Думаю, что дело в контроллере. :sorry:

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

Myp » 16 авг 2011, 09:14

раз моргает код для постоянного свечения значит я так считаю МК ресетится с частотой моргания.
мб у тя замкнуло гдето?
продемонстрируй платку

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

Michael_K » 16 авг 2011, 09:43

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

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

igor_bu » 16 авг 2011, 11:14

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

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

Romikgy » 16 авг 2011, 11:23

что бы засветился светодиод , его вывод надо сконфигурировать на выход и установить в ноль

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

Myp » 16 авг 2011, 11:48

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

-5 вольт и ноль разные вещи =)

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 и они больше не мигают... Это что?

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

Romikgy » 17 авг 2011, 10:24

насчет wdr .... не запускать просто вотчдог имхо


cron
Rambler\'s Top100 Mail.ru counter