Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.04.2009, 23:16
|
#11
|
Прописка
Регистрация: 20.01.2009
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 27 раз(а) в 11 сообщении(ях)
|
Сообщение от kramolnic
|
В моем же случае возможен перезапуск программы с начала без аппаратного сброса. (Получается, что процедуру сброса-инициализации надо производить не всегда одинаково.)
|
Бедные студенты... Перед вами поставлена некорректная задача. Программно невозможно узнать, принял ли ВВ51 слово режима работы или не принял. Иными словами, невозможно узнать, готов ли он к приёму слова инструкции или не готов. Поэтому некорректно продолжать прерваную программу, не зная, был ли аппаратный сброс или не был. Представьте, мы прервали программу, вручную сделали какие-то действия (например, аппаратный сброс или корректировку программы или даже обнуление всей оперативной памяти), а потом продолжили. Программа не знает, что было в её отсутствие. Равно как и самой программы в результате наших действий уже может в ОЗУ не оказаться. Самым корректным вариантом в этом случае был бы RS-триггер (буквально на паре элементов от ЛА3), сбрасываемый от RESETa и устанавливаемый сигналом записи в ваш порт. Завести бы его на параллельный порт и анализировать состояние. Как только он будет в единице, значит можно слать инструкцию. Если в нуле - то режим. Я в 1994-м наигрался с этим МС2702 по самое нехочу, когда писал диссертацию по ВВ51 (впрочем, буржуйский аналог работает точно так же, наши содрали его один-в-один). Три дня и три ночи стоял он у меня, не выключаясь, чтобы память не сбрасывалась и не набирать программу каждый раз заново.
Кстати, после каждого обращения к регистру состояния порта я бы на всякий случай поставил пару команд:
m21: dcr c
jnz m21
Работы немного, а головных болей станет меньше. Даже на 2702. Можно принудительно обнулить его в начале, но по сбросу в нём и так будет ноль, а после первого такого ожидания в нём также останется ноль.
|
|
|
|
09.04.2009, 01:23
|
#12
|
Прописка
Регистрация: 03.05.2005
Адрес: Москва
Сообщений: 289
Сказал спасибо: 1
Сказали Спасибо 25 раз(а) в 23 сообщении(ях)
|
вв51
Стук из прошлого...Да действительно есть у ВВ51 такая
заноза и самое главное она не одна Он действительно
работает до тех пор пока не сбойнула машина я их
пользовал в машинке Корвет правда обмен данными у
меня шел по прерыванию и буфер был 1к
В настоящее время смысла нет вспоминать выбросить все это надо и сделать учебную модель на Мк51 там все
работает правильно да и к практике ближе студенту
тамм кассы всякие торг оборудование а так получается
ретромашины студенты изучают, они должны уже свою
архитектуру моделировать
|
|
|
|
09.04.2009, 05:59
|
#13
|
Частый гость
Регистрация: 14.04.2007
Сообщений: 23
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Цитата:
|
Вот нашел. Это процеДурка инициализировала ВВ51, выдрана из рабочего проекта (работало на минской ТЭЦ-4)
|
Спасибо! Убедили, что это будет работать
Цитата:
|
...заноза и самое главное она не одна Он действительно
работает до тех пор пока не сбойнула машина я их...
|
Что значит до тех пор, пока не сбойнула машина? Это не баг контроллера, а его специфика: просто управляющий порт - один, на нем висят два регистра управления, которые и используются для управления девайсом. Заноза лишь в том, что проблема эта не сразу заметна.
Цитата:
|
Бедные студенты... Перед вами поставлена некорректная задача. Программно невозможно узнать, принял ли ВВ51 слово режима работы или не принял.
|
Задача не в том, чтобы программно это узнать, а в организации ввода-вывода. Для этого нужно организовать правильную инициализацию. А узнавать или не узнавать, что там ВВ51 принял - не принципиально.
Цитата:
|
Самым корректным вариантом в этом случае был бы RS-триггер (буквально на паре элементов от ЛА3), сбрасываемый от RESETa
|
ага... в субботу приеду с паяльником, отверткой и ЛА3 Вот препод прифигеет
|
|
|
|
09.04.2009, 09:24
|
#14
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Сообщение от kramolnic
|
Цитата:
|
Вот нашел. Это процеДурка инициализировала ВВ51, выдрана из рабочего проекта (работало на минской ТЭЦ-4)
|
Спасибо! Убедили, что это будет работать
Цитата:
|
...заноза и самое главное она не одна Он действительно
работает до тех пор пока не сбойнула машина я их...
|
Что значит до тех пор, пока не сбойнула машина? Это не баг контроллера, а его специфика: просто управляющий порт - один, на нем висят два регистра управления, которые и используются для управления девайсом. Заноза лишь в том, что проблема эта не сразу заметна.
Цитата:
|
Бедные студенты... Перед вами поставлена некорректная задача. Программно невозможно узнать, принял ли ВВ51 слово режима работы или не принял.
|
Задача не в том, чтобы программно это узнать, а в организации ввода-вывода. Для этого нужно организовать правильную инициализацию. А узнавать или не узнавать, что там ВВ51 принял - не принципиально.
Цитата:
|
Самым корректным вариантом в этом случае был бы RS-триггер (буквально на паре элементов от ЛА3), сбрасываемый от RESETa
|
ага... в субботу приеду с паяльником, отверткой и ЛА3 Вот препод прифигеет
|
зачем ла3 ? Пойдите чуть дальше и используйте дешевую тиньку или пик. На самых дешевых в качестве обязательной периферии оно стоит. Не вижу смысла в работе Ваших преподов - занимаетесь некромантией... На микрочипе ру преподаватель студентов на курсовых нагружает тсp-ip стеком, у него студенты фтп сервер на микроконтроллерах поднимают. К примеру.
|
|
|
|
09.04.2009, 19:14
|
#15
|
Частый гость
Регистрация: 14.04.2007
Сообщений: 23
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Цитата:
|
Не вижу смысла в работе Ваших преподов - занимаетесь некромантией...
|
Ну что уж тут поделаешь, что в Московских вузах программа такая устаревшая.
А по поводу TCP/IP скажу, что у подавляющего большинства студентов с потока проблемы вызывает даже программирование этого чуда техники (задачи там не сложные).
|
|
|
|
09.04.2009, 23:58
|
#16
|
Прописка
Регистрация: 03.05.2005
Адрес: Москва
Сообщений: 289
Сказал спасибо: 1
Сказали Спасибо 25 раз(а) в 23 сообщении(ях)
|
вв51
Нормальные прграммы обучения были в 70х-80х годах
прошдого века,, а сейчас ну кто туда идет работать
Ну наверное сами то не головой не руками делать ничего
неумели вот и приклеились А студенты они понятное дело
уже не те радиолюбители 80х им сейчас то-же главное
бумажка А техника эта совершествуется значительно
быстрее чем раньше Вот и получилось что нашу школу
загубили, Недавно один растишка просил диплом написать
Так он так и несмог толком объяснить что ему нужно
|
|
|
|
10.04.2009, 15:51
|
#17
|
Прохожий
Регистрация: 28.04.2005
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Уважаемый kramolnik !
В свое время у меня ВВ51А работала как ей вздумается, хотя все делалось в соответствии с описанием.
Пришлось звонить в Киев на завод-изготовитель. Нашел человека, изложил проблему и первый его вопрос был такой: "А как вы ее сбрасываете (аппаратно)? Насколько я помню, - сказал он, - длительность сигнала сброс для ВВ51А кажется должна быть не менее 6 периодов тактовой частоты".
Все. Как только сделали t сбр. = 6 х T сlk (а было значительно меньше), все стало на свои места.
А в заводской (!) документации про это не было ни слова.
|
|
|
|
11.04.2009, 04:11
|
#18
|
Прописка
Регистрация: 04.08.2008
Сообщений: 203
Сказал спасибо: 33
Сказали Спасибо 75 раз(а) в 58 сообщении(ях)
|
Выдержка из книги "Микропроцессорные средства и системы" Н.Н. Щелкунов А.П.Дианов стр 118
Перед выдачей командного слова выбора режима MI микросхема приводится в в исходное состояние.Для этого в управляющий порт PCI+1 выдается три нулевых байта и команда сброса. Предварительная выдача трех нулей обеспечивает перевод БИС вв51 независимо от ее текущего состояния в рабочий режим, в котором она сможет правильно отреагировать на команду програмного сброса (код 40Н). Команда с кодом 5 разрешает одновременную работу приемника и передатчика. После разрешения работы следует выполнить холостой цикл ввода по готовности, уничтожающий ложный символ, который может возникнуть в приемнике адаптера во время во время процедуры инициализации.
Процедура инициализации из книги
SAINI:PUSH PSW
XRA A
OUT PCI+1
OUT PCI+1
OUT PCI+1
MVI A,40H
OUT PCI+1
MVI A,0FAH
OUT PCI+1
MVI A,5
OUT PCI+1
CALL SAI
POP PSW
RET
Правильно писали три ноля надо послать, и препод возражать не должен, так как это предусмотрено изготовителем.
|
|
|
|
11.04.2009, 13:43
|
#19
|
Прописка
Регистрация: 20.01.2009
Сообщений: 156
Сказал спасибо: 3
Сказали Спасибо 27 раз(а) в 11 сообщении(ях)
|
Сообщение от Gerbicid
|
Выдержка из книги "Микропроцессорные средства и системы" Н.Н. Щелкунов А.П.Дианов стр 118
|
О, всё новые и новые товарищи подтягиваются! Добро пожаловать!
Сообщение от urry
|
Пойдите чуть дальше и используйте дешевую тиньку или пик. На самых дешевых в качестве обязательной периферии оно стоит. Не вижу смысла в работе Ваших преподов - занимаетесь некромантией...
|
Если бы только некромантией! А то ведь некромантией в извращённых формах!!! Я ж говорю, бедные студенты... Наслушались своего препода, и теперь извращаются... Вот, к примеру, kramolnic пишет:
Цитата:
|
Задача не в том, чтобы программно это узнать, а в организации ввода-вывода. Для этого нужно организовать правильную инициализацию. А узнавать или не узнавать, что там ВВ51 принял - не принципиально.
|
А ведь организация ввода-вывода в том и состоит, чтобы знать, когда, что и куда можно вводить и выводить. И перед выводом чего-нибудь в порт вывода неплохо бы проверить его готовность, а то может он и не готов к приёму вашего байта. kramolnic, конечно, у этого препода вы лабу как-нибудь сдадите (и уже наверняка сдали), но в жизни вывод в порт без предварительной проверки готовности чреват непредсказуемостью, за исключением "всегда готовых" портов. ВВ51 всегда готовым не является. Посему без трёх-то нулей вряд ли получится что-нибудь путное.
|
|
|
|
11.04.2009, 13:48
|
#20
|
Частый гость
Регистрация: 14.04.2007
Сообщений: 23
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
|
Спасибо всем за помощь!
Наконец-то оно сбросилось и заработало. 8O
Глазам не верю
Цитата:
|
Цитата:
|
Задача не в том, чтобы программно это узнать, а в организации ввода-вывода. Для этого нужно организовать правильную инициализацию. А узнавать или не узнавать, что там ВВ51 принял - не принципиально.
|
А ведь организация ввода-вывода в том и состоит, чтобы знать, когда, что и куда можно вводить и выводить. icon_smile.gif И перед выводом чего-нибудь в порт вывода неплохо бы проверить его готовность, а то может он и не готов к приёму вашего байта. kramolnic, конечно, у этого препода вы лабу как-нибудь сдадите (и уже наверняка сдали), но в жизни вывод в порт без предварительной проверки готовности чреват непредсказуемостью, за исключением "всегда готовых" портов. ВВ51 всегда готовым не является. Посему без трёх-то нулей вряд ли получится что-нибудь путное.
|
Вы меня совсем не поняли. Я же говорю: нужно организовать правильную инициализацию. А насчет узнавать что он там принял или нет - будьте уверены, я прекрасно себе представляю, что и чем там чревато, поэтому и делаю все проверки, которые мне предоставляет сей USART, в т.ч. готовность принять и передать данные. [/quote]
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:02.
|
|