Миландр

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

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 8 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-06 07:57 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 508
Если порт настроить как выход с открытым стоком, то при чтении его состояния будет считано значение, которое туда записано, или реальное состояние на выводе?
То есть если я в порт с открытым стоком записал 1, а снаружи устройство просадило сигнал на 0, что я считаю с порта?
По рисунку (рис.32 стр.188) сигнал поступает на приемный буфер, но попадает ли он в регистр PORTX->RXTX?

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

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-06 15:56 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1315
Откуда: АО "ПКК Миландр"
редактор писал(а):
Если порт настроить как выход с открытым стоком, то при чтении его состояния будет считано значение, которое туда записано, или реальное состояние на выводе?
То есть если я в порт с открытым стоком записал 1, а снаружи устройство просадило сигнал на 0, что я считаю с порта?
По рисунку (рис.32 стр.188) сигнал поступает на приемный буфер, но попадает ли он в регистр PORTX->RXTX?
Из регистра PORTX->RXTX всегда читается состояние на выводе.
Т.е. если в режиме открытого стока, туда записали 1, но снаружи перетянули в 0, то считается 0.

В более поздних проектах это подправили, есть отдельные регистры, которые позволяют считать значение в выходном триггере, а не сам вывод. Но в 1986ВЕ9х этого нет, надо выкручиваться, через промежуточную переменную например.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-07 07:55 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 508
Спасибо.
Цитата:
надо выкручиваться, через промежуточную переменную например.
То что нужна временная переменная это понятно, но помимо временной переменной, оказывается надо еще и периодически обновлять состояние. Если в регистр прописался 0 (внешнее устройство перетянуло выход), то после того как оно линию отпустит, 0 останется на выходе уже со стороны МК (если конечно не обновлять состояние из временной переменной).

В 51-х все было несколько иначе, поэтому и возникают мелкие проблемы с переносом кода.

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

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-07 10:38 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1315
Откуда: АО "ПКК Миландр"
редактор писал(а):
Спасибо.
Цитата:
надо выкручиваться, через промежуточную переменную например.
То что нужна временная переменная это понятно, но помимо временной переменной, оказывается надо еще и периодически обновлять состояние. Если в регистр прописался 0 (внешнее устройство перетянуло выход), то после того как оно линию отпустит, 0 останется на выходе уже со стороны МК (если конечно не обновлять состояние из временной переменной).

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-11 10:24 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 508
Цитата:
Если записали 0 или 1, а снаружи это перетянули в другую сторону, то после того как перетяжка снаружи будет убрана, вывод будет выдавать то, что последнее в него записали. В этом проблем быть не должно.
На порту идет манипуляция битами, то есть операции чтение-модификация-запись.
Если я считал 0, установил(или сбросил) соседний бит, то на выход пропишется уже считанное значение.
Если бы были регистры установки сброса битов (как в STM), наверное все возвращалось бы в исходное состояние. А так не получается. Если только BitBang попробовать. Но это уже не скоро.

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

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


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2013-мар-11 14:10 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1315
Откуда: АО "ПКК Миландр"
редактор писал(а):
Цитата:
Если записали 0 или 1, а снаружи это перетянули в другую сторону, то после того как перетяжка снаружи будет убрана, вывод будет выдавать то, что последнее в него записали. В этом проблем быть не должно.
На порту идет манипуляция битами, то есть операции чтение-модификация-запись.
Если я считал 0, установил(или сбросил) соседний бит, то на выход пропишется уже считанное значение.
Если бы были регистры установки сброса битов (как в STM), наверное все возвращалось бы в исходное состояние. А так не получается. Если только BitBang попробовать. Но это уже не скоро.
Именно про это и говорю. В новых проектах (1986ВЕ1,2 итп 1901ВЦ1) так и сделано.
В 1986ВЕ9х для операций манипуляции битов необходимо вводить временную переменную. Для нее вы выполняете чтение модификация запись и после этого переписываете ее в порт.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2015-ноя-13 14:21 
Не в сети

Зарегистрирован: 2012-апр-20 08:41
Сообщения: 36
Выяснял ли кто-нибудь про BitBand? Он правильно работает с портами, где есть открытый сток?
А то где-то в соседних ветках, где решали проблему с записью в порт B, когда там JTAG работает, было замечание что BitBand по факту - это те же чтение-модификация-запись, просто атомарные.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос про порт ввода-вывода
СообщениеДобавлено: 2015-ноя-13 14:56 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1315
Откуда: АО "ПКК Миландр"
wedmeed писал(а):
Выяснял ли кто-нибудь про BitBand? Он правильно работает с портами, где есть открытый сток?
А то где-то в соседних ветках, где решали проблему с записью в порт B, когда там JTAG работает, было замечание что BitBand по факту - это те же чтение-модификация-запись, просто атомарные.
BitBand все равно выполняет чтение-модификацию-запись. Хотя со стороны процессора это только запись. Так что возможны эксцессы.


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

Часовой пояс: UTC+03:00


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

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


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

Перейти: 

cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB