Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-ноя-22 15:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-14 15:27 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 28
Уважаемые форумчане. Разъясните пожалуйста бестолковому как работают два регистра обслуживающих порты МК. Это регистр FUNC и регистр PD. В спецификации написано, что если два первых разряда регистра равны 00 - то младший разряд порта это - порт(?), а если комбинация этих регистров 01, то у этого вывода порта основная функция. Я не вижу разницы между первым и вторым определением.
И регистр PD. В описании написано, что выводом порта управляет один разряд из младшей группы регистра и один из старшей. Пока все понятно. Но вот, что значит когда в младшей группе управляющий разряд равен 1, то вывод порта это порт с открытым стоком. А разве открытость стока не регистр PULL формирует?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-14 17:17 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1011
Откуда: Тула
в регистре FUNC группами по два бита определяется соответствующая функция вывода порта. Комбинация бит в группе 00 = порт, 01 = основная, 10 = альтернативная, 11 переопределённая.

Регистр PULL включает подтяжки: к питанию и к общему. при этом режим работы порта может быть любой. хоть аналоговый.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 06:39 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 28
prostoRoman, Вы видимо не поняли суть моих вопросов. В первом вопросе меня сбивает с понимания формулировка состояний. Т.е. Если в регистре FUNC будет записано 01, или 10, или 11 то соответствующий вывод порта это уже не порт? Вы разве не видите здесь противоречия?
И вторая часть моего вопроса. Если в регистре PULL отключить подтяжку к питанию, то сможете ли Вы любыми своими действиями с регистром PD сделать ввод порта не с открытым коллектором?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 08:31 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1011
Откуда: Тула
можно заниматься буквоедством, а можно предположить, что "портом" здесь понимается периферийный модуль MDR_PORTx, а у этого модуля есть вывод, и в тех случаях вывод перестаёт быть выводом порта в том смысле, что перестаёт транслировать информацию из регистра периферийного модуля порта и начинает транслировать информацию из другого модуля.

Между PULL и PD никакой взаимосвязи не вижу.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 08:52 
Не в сети

Зарегистрирован: 2014-май-15 11:04
Сообщения: 127
Откуда: Москва
vladh писал(а):
prostoRoman, Вы видимо не поняли суть моих вопросов. В первом вопросе меня сбивает с понимания формулировка состояний. Т.е. Если в регистре FUNC будет записано 01, или 10, или 11 то соответствующий вывод порта это уже не порт? Вы разве не видите здесь противоречия?
И вторая часть моего вопроса. Если в регистре PULL отключить подтяжку к питанию, то сможете ли Вы любыми своими действиями с регистром PD сделать ввод порта не с открытым коллектором?
Табличку выше смотрели?
Например порт PD.
FUNC = 00 смещённые на 9 и совместно с ANALOG = 1, сделает из вывода PD9 цифровым выводом PD9 (просто портом (всё что попадёт в RXTX или SETTX, CLRTX - будет на этом выводе)).
FUNC = 01 смещённые на 9 и совместно с ANALOG = 1, сделает из вывода PD9 цифровым выводом SSP2_SCK (клоком SPI (как сказал Роман, подключится к другому модулю)).
FUNC = 10 смещённые на 9 и совместно с ANALOG = 1, сделает из вывода PD9 цифровым выводом nUART2DSR (управление потоком УСАППа (как сказал Роман, подключится к другому модулю)).
FUNC = 11 смещённые на 9 и совместно с ANALOG = 1, сделает из вывода PD9 цифровым выводом A2 (адресным битом при общении с кем-то по параллельной шине (как сказал Роман, подключится к другому модулю)).

Ввод вообще не может быть с открытым СТОКом, а не коллектором.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 10:04 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 28
prostoRoman писал(а):
можно заниматься буквоедством, а можно предположить, что "портом" здесь понимается периферийный модуль MDR_PORTx, а у этого модуля есть вывод, и в тех случаях вывод перестаёт быть выводом порта в том смысле, что перестаёт транслировать информацию из регистра периферийного модуля порта и начинает транслировать информацию из другого модуля.

С моей стороны это не буквоедство. Это попытка разобраться с нюансами. Поскольку в спецификации записано, что при значениях регистра FUNC 00 и 01 это разные состояния ввода порта то объясните мне в чем разница? Я считаю, что это эквивалентные состояния. Я просто боюсь не заметить тонкости и таким образом "выплеснуть ребенка".
prostoRoman писал(а):
Между PULL и PD никакой взаимосвязи не вижу.
Я еще раз Вас спрошу, если я в регистре PULL установлю состояние "поддтяжка в питание выключена" то Вы сможете любой установкой в регистре PD сделать вывод порта как управляемый драйвер, а не как ввод с открытым стоком.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 10:23 
Не в сети

Зарегистрирован: 2014-май-15 11:04
Сообщения: 127
Откуда: Москва
У меня всегда так. Подтяжки используемых выводов выключаю, PD вообще не трогаю - т.е. работают как драйверы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 10:56 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 28
רגוזין רומאן писал(а):
У меня всегда так. Подтяжки используемых выводов выключаю, PD вообще не трогаю - т.е. работают как драйверы.

"רגוזין רומאן", тогда объясните мне в чем для Вас разница в формулировках: 1-управляемый драйвер и 2-открытый сток?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 11:22 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 379
Цитата:
тогда объясните мне в чем для Вас разница в формулировках: 1-управляемый драйвер и 2-открытый сток?

Попробуйте на выходе с открытым стоком сформировать высокий уровень. Без притяжки вряд ли получится.Данный режим удобен при работе с сигналами 5В-логики.Когда притяжку делает внешний резистор.
Управляемый драйвер -это лучший вариант для 3В-логики. Хотя и здесь можно использовать открытый сток и внутреннюю (или внешнюю) притяжку. Разница будет в крутизне фронтов.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 12:03 
Не в сети

Зарегистрирован: 2014-май-15 11:04
Сообщения: 127
Откуда: Москва
vladh писал(а):
"רגוזין רומאן", тогда объясните мне в чем для Вас разница в формулировках: 1-управляемый драйвер и 2-открытый сток?

Понятия не имею.
Но вполне вероятно, что "миландровцы" опять что-то не дописали.
И как мне кажется, что этот самый драйвер работает совместно с регистром PWR. Ведь без источника тока нельзя организовать фронты с разными длительностями. А это и есть управляемый драйвер. Просто при открытом стоке, ток шпарит ограниченный лишь чем-то одним.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 12:31 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1011
Откуда: Тула
רגוזין רומאן писал(а):
vladh писал(а):
"רגוזין רומאן", тогда объясните мне в чем для Вас разница в формулировках: 1-управляемый драйвер и 2-открытый сток?

Понятия не имею.
Но вполне вероятно, что "миландровцы" опять что-то не дописали.
И как мне кажется, что этот самый драйвер работает совместно с регистром PWR. Ведь без источника тока нельзя организовать фронты с разными длительностями. А это и есть управляемый драйвер. Просто при открытом стоке, ток шпарит ограниченный лишь чем-то одним.

В режиме драйвера может быть создан как втекающий, так и вытекающий из м/с ток.
В режиме открытого стока возможно управлять лишь втекающим током. Токи утечек не учитываем, разумеется.
Режим открытого стока обычно используется для создания схем "монтажное или". Яркий пример такого режима - шина i2c и цепи сброса (nRESET).

Так же, редактор правильно обратил внимание на вопрос о пятивольтовой совместимости: мне не известно каким будет напряжение в цепи если управляемый драйвер подтянуть к напряжению превышающему питание МК и выставить вы выход единицу.

При этом всём регистры PULL и PD всё так же остаются не взаимосвязанными и их функции не взаимоисключающими.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-15 14:33 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
vladh писал(а):
С моей стороны это не буквоедство. Это попытка разобраться с нюансами. Поскольку в спецификации записано, что при значениях регистра FUNC 00 и 01 это разные состояния ввода порта то объясните мне в чем разница? Я считаю, что это эквивалентные состояния. Я просто боюсь не заметить тонкости и таким образом "выплеснуть ребенка".


Поскольку у микроконтроллера не слишком много выводов, выводы, относящиеся к портам ввода-вывода (GPIO - General Purpose Input-Output) как правило мультиплексируют с выводами, относящимися к встроенным устройствам типа UART, SPI и т.д. Например, хотите вы использовать тот или иной вывод контроллера как GPIO, задаете в FUNC в соответствующее место 00 и можете управлять уровнем на выводе через регистр RXTX (или как он там называется). А если вы хотите иметь на этом выводе, скажем, сигнал TxD какого-нибудь UART, то засовываете в FUNC 01 или 10 в зависимости от того основная или альтернативная функция вам нужна и получаете нужную функциональность. Но в этом случае вы уже не должны пытаться использовать RXTX для управления уровнем на выводе.

Режим "управляемый драйвер" (push-pull) это когда вы имеете возможность посредством RXTX подключать вывод и к питанию (1) и к земле (0). В этом случае подтяжки вам не нужны ни встроенные, ни внешние.

Режим "открытый сток" (open-drain) это когда вы можете, записав 0 в RXTX, подключить вывод к земле, но не можете подключить его к питанию, записав 1 в RXTX. Запись 1 отключает вывод ото всего (переводит в третье состояние), и тогда уже подтяжка будет определять, какой уровень на этом выводе установится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-16 10:55 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 28
Alex1979 писал(а):
vladh писал(а):
С моей стороны это не буквоедство. Это попытка разобраться с нюансами. Поскольку в спецификации записано, что при значениях регистра FUNC 00 и 01 это разные состояния ввода порта то объясните мне в чем разница? Я считаю, что это эквивалентные состояния. Я просто боюсь не заметить тонкости и таким образом "выплеснуть ребенка".

Alex1979, Вы не понимаете сути моего вопроса. Еще раз ответьте только на вопрос: "Поскольку в спецификации записано, что при значениях регистра FUNC 00 и 01 это разные состояния ввода порта то объясните мне в чем разница?". Только эти два состояния.
И по поводу регистров PD и PULL так никто и не дал ясного развернутого объяснения. Видимо Меландр должен откорректировать свою спецификацию в которой должно быть отражено однозначная взаимосвязь состояния порта от состояний регистров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2 регистра управления портами?
СообщениеДобавлено: 2017-сен-16 12:32 
Не в сети

Зарегистрирован: 2014-май-15 11:04
Сообщения: 127
Откуда: Москва
00 - это порт управляемый регистрами TXRX...
01 - это основная функция. Порт управляется другими периферийными блоками.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB