Перейти к содержанию
    

AtMega8515 (0 и 1)

Использую STK500 и AtMega8515

 

Когда пишу на Си и на Паскале получаю следующее:

 

устанавливаю порт в режим вывода, порт выведен на светодиоды, и когда я устонавливаю одному из пинов лог 1, то светодиод тухнет, а при лог 0 загорается, я думал что логика наоборот должна быть, помогите пожалуйста разобраться с этим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую STK500 и AtMega8515

 

Когда пишу на Си и на Паскале получаю следующее:

 

устанавливаю порт в режим вывода, порт выведен на светодиоды, и когда я устонавливаю одному из пинов лог 1, то светодиод тухнет, а при лог 0 загорается, я думал что логика наоборот должна быть, помогите пожалуйста разобраться с этим.

 

Все правильно, если аноды светодиодов подключены к "+"

Устанавливая 0 на выходе вы создаете разность потенциалов на светодиоде, достаточную для протекания тока, при котором светодиод светится.

При 1 на выходе разность потенциалов на светодиоде близка к нулю, тока нет - светодиод не светит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже мосфеты надо открывать нулём (через драйвер естественно), и кнопочки опрашивать тоже :)

Всё это от того, что ток лог. нуля на выходе контроллеров выше тока лог. единицы. Так как единицу обычно создаёт подтягивающий резистор к Еп, а ноль - мосфет к земле.

 

Как говорится: ноль - активное состояние.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже мосфеты надо открывать нулём (через драйвер естественно), и кнопочки опрашивать тоже :)

Всё это от того, что ток лог. нуля на выходе контроллеров выше тока лог. единицы. Так как единицу обычно создаёт подтягивающий резистор к Еп, а ноль - мосфет к земле.

 

Как говорится: ноль - активное состояние.

Обсуждали много раз - у современных контролеров разница тока КЗ 1 и 0 отличаются на несколько процентов , не более. Так что пофиг, чем открывать. Понекоторым соображениям 1-ей предпочтительней. Времена 51-го classic ушли

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Грубо" говоря, при 0 он посылает в порт "-", а при 1 "+"?

 

Так лучше?

Изменено пользователем Begin_CS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

минус и плюс суть понятия относительные. при 0 он "посылает в порт" ноль, то есть потенциал земли, а еще точнее - открывает нижний полевой транзистор. Вобщем - еще короче - соединяет выход с землей небольшим резистором. При "1" - соединяет выход с питанием тоже небольшим резистором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обсуждали много раз - у современных контролеров разница тока КЗ 1 и 0 отличаются на несколько процентов , не более. Так что пофиг, чем открывать. Понекоторым соображениям 1-ей предпочтительней. Времена 51-го classic ушли

Ну то что у современных так, я не спорю, но я назвал более общий и привычный случай.

Тем более при ресете, у многих контроллеров все выходы переходят в "1". Или, я снова отстал от жизни?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У каких ? AT91SAM знаю, да пуллап при reset. Новые 51-ые - не знаю, не ко мне вопрос, LPC9107 51-ой серии от филипка не переходят. Моторола не переходит. PIC - не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У атмелок (Mega, Tiny) как оказалось, при ресете все порты в третем состоянии.

А у SIlabs-а в единицах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В тему. Было как то у меня считывание кнопок по нулю, так вот во время выключения питания - напряжение на порте успевало упасть ниже уровня 0, в то время как контроллер еще работал. в итоге происходило считывание кнопки и отработка. Я это заметил, т.к. по кнопке происходила запись в EEPROM. Теперь все кнопки у меня срабатывают по верхнему уровню (т.е. порт подтянут к земле 10к (или больше), а кнопка подключает к нему +5В через 100 Ом)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи, при всем уважении, Вы о чем? Смотрим внимательно на пост Begin_CS и видим:

 

Использую STK500

 

Смотрим User Guide на рисунок 3-2. И все становится ясно. В STK500 диоды питаются через транзисторы, причем там npn-транзистор, порт контроллера подключается к эмиттеру, а диод - в цепи коллектора -> инверс. Читаем доки вместе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...