Что значит: порт на вход и на выход, объясните на пальцах

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Аватара пользователя
xterro
Опытный кот
Сообщения: 873
Зарегистрирован: Чт апр 12, 2012 07:19:59
Откуда: Тюмень

Что значит: порт на вход и на выход, объясните на пальцах

Сообщение xterro »

Приветствую, только не кидайтесь тухлыми помидорами. Вроде всё просто, но в документации(погуглил) как-то этот момент опущен, или просто так написано что не могу понять. Что значит что порт включен на вход и на выход? В чём отличие и что это даёт? Объясните на пальцах. :?

P.S. Сижу играюсь с семи-сегментным индикатором. Порт, отвечающий за сегменты, включил на выход(записал в него 0х0) и при подаче на ножку порта соответвенно нуля, нужный сегмент загорается(индикатор с общим анодом). Вот не могу понять почему так. Думал, наоборот надо, порт на вход устанавливать.
Реклама
Аватара пользователя
AlekseyEnergo
Модератор
Сообщения: 2117
Зарегистрирован: Пт янв 11, 2013 19:19:26
Откуда: Санкт-Петербург

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение AlekseyEnergo »

Хороший вопрос. А что книжки говорят? А Вы что ни будь читаете, по тематике. Или просто взяли и решили поиграться индикатором и МК?
=========
Правила Форума ЗДЕСЬ _____ Правила раздела БАЗАР ЗДЕСЬ _____ Если вы продаете, прочтите ЗДЕСЬ

Редко появляюсь. Если вопрос не личного характера пользуйтесь кнопкой "!".
Реклама
Аватара пользователя
xterro
Опытный кот
Сообщения: 873
Зарегистрирован: Чт апр 12, 2012 07:19:59
Откуда: Тюмень

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение xterro »

В данный момент учусь по книжке " Михаэль Хофман: Микроконтроллеры для начинающих". Глава 6-я, раздел 3-й. По сути вода, сказано, мол, хотите вход, запишите в TRIS 1, выход -0. (Где-то у меня ещё в электронке по ПИКам книги были, надо ещё в них покопаться). Так же копаясь по сайтам с информацие по программированию пиков, натыкаюсь на разделы про порты ввода вывода, попадается поподробнее, типа:
Порт может быть настроен на ввод или вывод цифрового сигнала с помощью защелки TRIS, которая представляет собой D-триггер. Если порт должен работать как выход, то на вход D защелки TRIS подается сигнал лог. 0, который по тактовому импульсу записывается в триггер.

В этом случае инверсный выход TRIS-защелки разрешает работу схемы "И" и открывает тристабильный буфер, через который сигнал с выхода защелки данных проходит на вывод порта. В этом случае данные с вывода порта можно будет только читать. Здесь не следует смешивать чтение выходных данных порта и чтение вывода порта. Для чтения бита данных, записанного в порт, нужно прочитать содержимое защелки данных. Каждому выводу порта ввода/вывода соответствует отдельный бит в регистрах TRISx, PORTx, LATx и ODCx.

Общее количество портов ввода/вывода и количество выводов зависит от конкретной модели микроконтроллера. Вполне возможно и то, что отдельные биты портов ввода/вывода в конкретном устройстве задействованы не будут. В любом случае лучше обратиться к технической документации на микроконтроллер. Рассмотрим назначение каждого из регистров порта ввода/вывода. Регистр TRISx позволяет сконфигурировать направление обмена данными для каждого вывода порта.

Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение). Доступ к данным порта осуществляется посредством регистра PORTx. При чтении этого регистра считываются значения сигналов, присутствующих на выводах порта, а при записи этого регистра данные заносятся в защелку данных порта.
Аналогичная стилистика написания в "Справочник по среднему семейству микроконтроллеров PICmicro", глава 9-я "Порты ввода-вывода" http://mculab.ru/datasheet/pic/pic16_9.pdf

Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы. Мне бы по простому, мол, режим "вход" используется тогда-то и для того-то, режим "выход" тогда-то и для того-то. А уже со временем, когда разберусь подробнее и отрастёт борода и свитер прилипнет к телу, полезу глубже, в защёлки и триггеры. Мне как любителю, на первое время тяжело воспринимать информацию в таком виде. Поэтому и хочется чтобы опытные, бородатые коты рассказали на пальцах что к чему, чтобы в голове уложилось. Зачем этот флаг направления вообще нужен. Почему нельзя просто записывать в порт 0 или 1 без этого регистра направления? А там глядишь и свой котелок варить начнёт :)
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение otest »

Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы.
Вычеркни их из текста и получится:
Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение).
Не забывай настроить порты как цифровые, т.е. отключить переферию.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
xterro
Опытный кот
Сообщения: 873
Зарегистрирован: Чт апр 12, 2012 07:19:59
Откуда: Тюмень

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение xterro »

otest писал(а):
Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы.
Вычеркни их из текста и получится:
Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение).
Не забывай настроить порты как цифровые, т.е. отключить переферию.
Дык, а что это значит что порт работает на приём или передачу? Т.е например на "приём", т.е в порту он замыкается на землю, что ток начинает течь в него или что происходит?
Ведь что режим входа, что режим выхода, я и там и там могу выставить на ножку 0 или 1, так ведь? :dont_know:
Реклама
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение Albert_V »

Вы знаете, что у микросхем (жёсткая логика) есть входы и выходы.
У контроллера вы выбираете для каждого сигнального вывода "чем он будет", входом или выходом (регистр TRISx).
P.S.
Если выход - записываете данные в порт или бит порта (к примеру, зажигаете светодиод).
Если вход - читаете данные с порта или бит порта (к примеру, опрос кнопки).
С Уважением, Альберт (Albert_V).
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25263
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение КРАМ »

xterro писал(а): Дык, а что это значит что порт работает на приём или передачу?
Работа порта на прием НЕ ВЫКЛЮЧАЕТСЯ (за исключением особых случаев связанных с аналоговыми функциями пина).
Выключается ВЫХОДНОЙ БУФЕР защелки порта.
То есть вход фиксированно присоединен к пину, а выход может переводится в третье состояние путем запирания СРАЗУ ОБОИХ транзисторов выходной комплементарной пары (TRIS=1). При работе пина как ВЫХОДА можно спокойно ПРОЧЕСТЬ состояние пина как ВХОДА.
Поэтому есть регистр LAT - это защелка выхода. И есть регистр PORT - это сам ПИН порта.
Чтение LAT - это чтение защелки, а не пина. Чтение PORT - это чтение пина.
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение Albert_V »

КРАМ, про регистр LAT лучше аккуратнее говорить. Не у всех PIC контроллеров есть этот регистр, а ТС не обозначил с каким PIC-ом он работает (к примеру, у PIC16F87X нет регистра LAT).
С Уважением, Альберт (Albert_V).
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25263
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Что значит: порт на вход и на выход, объясните на пальца

Сообщение КРАМ »

Albert_V писал(а):КРАМ, про регистр LAT лучше аккуратнее говорить. Не у всех PIC контроллеров есть этот регистр
Причем тут аккуратность?
Если регистра нет, то это следует из даташита и НИЧЕГО ПО СУЩЕСТВУ ИЗЛОЖЕННОГО МНОЙ НЕ МЕНЯЕТ.
Более того, отсутствие этого регистра приводит к процедуре RMW для пина, а не для защелки.
То есть понимание отличия LAT и PORT даст понимание механизма порчи состояния выходных защелок при модификации бита порта.
Ответить

Вернуться в «PIC»