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


Автор: Курсант 22.4.2011, 19:28
Всем здравствуйте! smile Мучаю контроллер Attiny2313, это мой дебют так сказать... Собрал схему, а она не работает так как мне хочется.. А как мне не надо - работает... Схема на макетной плате приложена ниже.

Красная шина - это плюс. Сегментный индикатор с общим плюсом (зеленая перемычка справа). Желтая микросхемка - это резисторная сборка на 100 Ом. По моей логике, при логическом нуле на ножке порта сегмент индикатора должен зажигаться (ток от общего плюса потечет через сегмент на ноль ножки порта). Но на самом деле этого не происходит. Пытаюсь понять, можно ли с помощью настроек заставить контроллер принимать входной ток, или можно выкидывать индикатор?


Автор: Курсант 22.4.2011, 19:36
Программа работает нормально, контроллер тоже жив - проверено на приложенной ниже схеме (прошивку не трогал, только схему).

Теперь вместо индикатора стоит светодиод и загорается от +5В логической единицы, а катод светодиода посажен на минусовую (синюю) шину. Смущает то, что светодиод мигает очень тускло, хотя ножки вроде должны 30мА держать... Но кажется не держат... В общем тоже подскажите кто знает, что это?

Добавлено @ 19:45
А надеялся я что все будет работать примерно так...

Автор: Курсант 22.4.2011, 19:55
Контроллер работает с светодиодом на ножке порта, зажигая его, когда на ножке логическая единица... Только горит светодиод как-то тускловато... В общем нужна помощь...

Автор: DarkProg 22.4.2011, 21:40
Воспользуйтесь маломощным полевым транзистором - когда у вас на ножке будет выдаваться логическая единица, то транзистор будет открыт и высаживать всё на землю, а когда транзистор будет закрыть у вас светодиод весело засветится.
Если коротко обрисовать то от шины +5 кидаете резистор скажем на 1кОм(хотя на вскидку надо меньше, но для проверки я обычно на 1кОм цепляю), далее резистор соединяете со стоком полевика, к стоку подсоединяете анод светодиода, затвор подсоединяете к выводу от вашего контроллера, исток подпаиваете к общему проводу.

Цитата(Курсант @  22.4.2011,  19:36 Найти цитируемый пост)
Теперь вместо индикатора стоит светодиод и загорается от +5В логической единицы, а катод светодиода посажен на минусовую (синюю) шину. Смущает то, что светодиод мигает очень тускло, хотя ножки вроде должны 30мА держать... Но кажется не держат... В общем тоже подскажите кто знает, что это?

Либо такой светодиод либо у вас ток маленький.

P.S. я сегодня сам с логическими уровнями развлекался и я добился успеха - надеюсь у вас тоже получится

Автор: Курсант 23.4.2011, 18:14
Спасибо, мне подсказали, что я не инициализировал регистры управления портами - DDRB, DDRD и так далее, поэтому на них висят сопротивления по 60 кОм, и ничего не горит... После того как я ldi r17, 0b11111111 и out DDRD, R17, все должно заработать... В понедельник доберусь до программатора и проверю. Может быть и Вам эта информация поможет в Ваших опытах с логическими уровнями.

P/S/ Не хочется городить большую схему с всякими транзисторами, оптопарами и так далее, к тому же AVR вроде как довольно тяговитые в плане выходных/входных токов.

Автор: DarkProg 24.4.2011, 11:26
У меня просто не контроллер был, а обычная логика, но в общем мне информация полезна и для меня, потому что в моём случае похоже с простой логикой не получится повыпендриваться(проблемно купить часть компонентов) и придётся ваять что-то на контроллере.

Автор: Курсант 25.4.2011, 19:51
О, оно работает!!! smile

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