Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: тип входа: когда триггер Шмитта, когда TTL?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
vat
Много лет встречаю в микрочиповских даташитах и никак не могу понять: какой тип входа реально реализован в разных случаях?
Возьмем к примеру PORTB в 18 серии. Пин RB0 заведует кучей функций, но для режима Digital I/O указан тип входа TTL, а для режима INT0 (да и всех других цифровых режимов) тип входа Schmitt Trigger. Как это может быть? Там что 2а-входных элемента реализовано? И при разных настройках используются разные элементы? Но все равно кое-что не стыкуется...
При питании от 5В, у TTL-входа уровень лог.1 должен быть в диапазоне 2В-5В. А в случае Schmitt Trigger 0.8-1.0 Vdd, т.е. 4-5В. Теперь представим что на эту ногу подается сигнал с выхода стандартного TTL чипа, т.е. с лог.1 в 2.4В. Запрограммируем RB0 как Digital I/O и разрешим прерывание. пусть сигнал в этой линии переключился с лог.0 на 1, т.е. с 0В на 2.4В. Получается прерывание этот переход не вызовет (не достигнуто 4В), но если просто сосчитать данные с этого порта, то видна будет лог.1, так как 2.4В>2В.
Может кто разъяснить данную коллизию? Я знаю что на практике TTL выход обычно чуть больше (порядка 2.8-3.3В) и интерапт тоже сработает, но мне нужно знать гарантируется ли прерывание спеками. До и в случае если этот порт работает как SDI -вход будет ли он _гарантированно_ работать с TTL-выхода?
Herz
Цитата(vat @ Apr 29 2009, 08:46) *
Много лет встречаю в микрочиповских даташитах и никак не могу понять: какой тип входа реально реализован в разных случаях?
Возьмем к примеру PORTB в 18 серии. Пин RB0 заведует кучей функций, но для режима Digital I/O указан тип входа TTL, а для режима INT0 (да и всех других цифровых режимов) тип входа Schmitt Trigger. Как это может быть? Там что 2а-входных элемента реализовано? И при разных настройках используются разные элементы?

А почему нет? Вы, видимо, много лет невнимательно в микрочиповских даташитах....
Нажмите для просмотра прикрепленного файла
Цитата
Но все равно кое-что не стыкуется...
При питании от 5В, у TTL-входа уровень лог.1 должен быть в диапазоне 2В-5В. А в случае Schmitt Trigger 0.8-1.0 Vdd, т.е. 4-5В.

Откуда циферки?
vat
Цитата
А почему нет? Вы, видимо, много лет невнимательно в микрочиповских даташитах....

Ваша ирония понятна... То что на многих портах присутствуют одновременно TTL и ST буферы я допускал (это видно из моего поста), хотя такие схемки портов попадались главным образом в старых даташитах. Теперь для 18 серии приводится обычно типовой порт без детализации типа буфера. Но меня главным образом интересовал вопрос зачем интерапт срабатывает от шмитта, а чтение порта осуществляется через TTL-буфер. Это же вызывает коллизию, которую я уже упомянул: изменение уровня на входе с 0 до 2.5В не (обязательно) вызывает прерывание - уровень гарантированного срабатывания тригера шмитта должен быть выше 4В (рассматриваем питание 5В). В то же время чтение порта гарантированно дает лог.1.

Цитата
Откуда циферки?

из даташита
Herz
Цитата(vat @ Apr 29 2009, 14:42) *
Ваша ирония понятна...

Спасибо, что понимаете. А то некоторые почему-то оскорбляются...
Цитата
То что на многих портах присутствуют одновременно TTL и ST буферы я допускал (это видно из моего поста), хотя такие схемки портов попадались главным образом в старых даташитах. Теперь для 18 серии приводится обычно типовой порт без детализации типа буфера.

Да, но не во всех. Я привёл картинку из даташита на PIC18F1220, наверное и в других встречается.
Цитата
Но меня главным образом интересовал вопрос зачем интерапт срабатывает от шмитта, а чтение порта осуществляется через TTL-буфер. Это же вызывает коллизию, которую я уже упомянул: изменение уровня на входе с 0 до 2.5В не (обязательно) вызывает прерывание - уровень гарантированного срабатывания тригера шмитта должен быть выше 4В (рассматриваем питание 5В). В то же время чтение порта гарантированно дает лог.1.

Наверное, для того, чтобы защитить вход прерывания от помех: входным сигналом здесь часто (даже чаще всего) служит не цифровой, а аналоговый сигнал. Например, для защиты в источниках питания и драйверах моторов. Коллизии здесь не возникает, если Вы знаете, как настроен Ваш вход: Для цифрового сигнала с нормальными фронтами - разница не будет ощутима, а для аналогового - Вы же знаете пороги ТШ. Одновременное использование входа в обоих режимах мне как-то представить трудно...
vat
Цитата
Для цифрового сигнала с нормальными фронтами - разница не будет ощутима

Беда как раз в том что сигнал самый что есть цифровой и фронты замечательные (выход FPGA), но он TTL. Хотел задействовать на его обработку прерывания, а оказывается нельзя. Придется заниматься полингом порта sad.gif. Или "подтянуть" вверх резистором (на внешний буфер TTL-CMOS нет места уже).
Herz
Цитата(vat @ Apr 30 2009, 07:37) *
Беда как раз в том что сигнал самый что есть цифровой и фронты замечательные (выход FPGA), но он TTL. Хотел задействовать на его обработку прерывания, а оказывается нельзя. Придется заниматься полингом порта sad.gif. Или "подтянуть" вверх резистором (на внешний буфер TTL-CMOS нет места уже).

Почему нельзя? Питание FPGA не 5В? Если 5 и этот выход больше ничем не нагружен, то несмотря на то, что он TTL, уровень 1-цы меньше 4В не будет, разве что при каких-то совершенно диких условиях. Резистор не помешает, конечно, и этого должно вполне хватить.
vat
Цитата
Почему нельзя? Питание FPGA не 5В? Если 5 и этот выход больше ничем не нагружен, то несмотря на то, что он TTL, уровень 1-цы меньше 4В не будет, разве что при каких-то совершенно диких условиях. Резистор не помешает, конечно, и этого должно вполне хватить.

Питание 5В, но увы, даже при нулевом токе там около 3.8В (см. flex1.jpg). Причем это typical, т.е. может быть больше, но может быть и меньше. Altera "подписывается" лишь за то что не ниже 2.4В при 4мА.
Herz
Цитата(vat @ Apr 30 2009, 15:16) *
Питание 5В, но увы, даже при нулевом токе там около 3.8В (см. flex1.jpg). Причем это typical, т.е. может быть больше, но может быть и меньше. Altera "подписывается" лишь за то что не ниже 2.4В при 4мА.

Печально, не ожидал. Что ж там за выходной каскад? У стандартной ТТЛ такого безобразия не приходилось встречать.
jam
Цитата(Herz @ Apr 30 2009, 18:45) *
Печально, не ожидал. Что ж там за выходной каскад? У стандартной ТТЛ такого безобразия не приходилось встречать.

Доводилось сталкиваться с альтеровскими cpld - там такое же безобразие, плюс к тому уровень скачет в зависимости от состояний cpld. Тут нужен 74hct1gxx в sot23 - бывают и в sc70
Или же понизить напряжение питания контроллера.
vat
Цитата
Или же понизить напряжение питания контроллера.

К сожалению этот контроллер с USB - его сильно не понизить. Да и в схеме есть компоненты, которые выдают на него 5В сигналы, через защитный диод пойдет ток на питание.
Надеюсь резисторной подтяжки хватит, иначе придется искать место под буфер SOT23.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.