MiX, я в ЛС предложил Artredsun набить с "железного пульта" программку из трёх слов от Patron'а, которая выводит код А на терминал, и уже тогда посмотреть осликом, что там дальше творится.
Вид для печати
MiX, я в ЛС предложил Artredsun набить с "железного пульта" программку из трёх слов от Patron'а, которая выводит код А на терминал, и уже тогда посмотреть осликом, что там дальше творится.
Кроме этого, надо выяснить нужны ли команды NOP в программе. Байтмен, как у тебя команды проходят? Без NOP?
Как выяснилось - по команде S пульт СМ1420 сначала увеличивает стартовый адрес на 4 и только потом передаёт управление, поэтому при вводе кода с адреса 1000 есть смысл помещать по адресам 1000 и 1002 две команды NOP ( код 240 ).
Например, программка для вывода буквы A на терминал будет выглядеть так:
Код:000000
?L 1000
?D 001000 240
?D 001002 240
?D 001004 12737
?D 001006 101
?D 001010 177566
?D 001012 774
?L 1000
?S
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Patron, если вводить с "железного пульта", то по идее эти дополнительные нопы лишние..
В программе из трёх слов третье слово передаёт управление на первое, поэтому хотя выполнение и начинается с него - дальше всё работает штатно. Проблема в том, что команда S помещает 0 в младший байт R0, поэтому на экран ничего не выводится. Надо или прервать программу с аппаратного пульта, занести в R0 код 101 и запустить с адреса 1000, или вводить код, приведённый выше.
- - - Добавлено - - -
Если работает терминал - нет разницы как вводить. Разница только в том, как запускать. Программу из трёх слов надо по-любому запускать с "железного" пульта, потому что иначе в R0 будет 0.
Patron, именно так, это я в ЛС топикстартеру сделать и посоветовал :)
- - - Добавлено - - -
Цитата:
СМ3508.31 - это расширитель памяти с MMU (вроде как на 2 мегабайта, могу ошибаться, в моей СМке этого расширителя увы нет, и платы, в которую у вас подключается расширитель, тоже нет, вместо неё дырка), по хорошему его отключать не надо, только попробовать вытащить кабель который уходит от процессора в контроллер харда. И заново попробовать набрать тест от form и посмотреть на результат...
Про изменённую плату - думаю, что пока что менять ничего не надо, ещё раз перепроверьте подключение к конвертеру rs232-токовая петля, мне кажется что вы просто там ошиблись с подключением, по идее всё должно работать. Попробуйте посмотреть по топику выше, там есть коротенькая программа от Патрона, которая печатает символ А на повторе. Смотрите, что вы можете сделать - попробуйте набить эту программу с "эелезного пульта" (она коротенькая, поэтому набить получится за пару минут). При этом держите включенным ваш "зеленый терминал", если набили программу правильно - побежит буква А. Тогда уже можно будет подключить вместо зелёного терминала ваш конвертер, набить программу заново и смотреть уже на конвертере где дёргается, а где нет, и смотреть где ошиблись с подключением.
http://zx-pk.ru/threads/27908-sm-142...l=1#post922115
Как набить прогу на железном терминале:
1) Сначала остановите процессор (переключатель РАБ-ОСТАН нажать). Должна загореться лампа останов
2) Команда L На клавиатуре соответствует вводу адреса и нажатию клавиши ВВОД АДР (вроде как на диодах должен высветиться введенный адрес)
3) Дальше набиваете три слова (которые справа, слева адрес, он будет автоматом инкрементироваться), после набора каждого слова нажать ЗАПИСЬ.
4) Когда ввели все три слова, снова установить начальный адрес указанный в первой строке (1000) и нажать ввод адр.
5) Перевести кнопку ОСТ - РАБ в положение РАБ.
6) Нажать ПУСК.
Процессор должен покасить лампу ОСТАНОВ и на терминале должны побежать буковки А.
Вот это было посоветовано :)
А как с "железного" пульта занести в R0 код буквы A ?
Можно вводить программу, которая сразу A выводит - она всего на одно слово длиннее:
Код:12737
101
177566
774
В двоичном виде будет так:
Код:0001010111011111
0000000001000001
1111111101110110
0000000111111100
http://s019.radikal.ru/i626/1708/71/abf8d321e97et.jpg
Не заметил 13ую страницу форума, что она появилась, с этой работой мозг взорвался, ещё параллельно кучей дел занимаюсь.
Ну в общем ввёл программу Patron'а - результат на фото выше.
Отключил контроллеры дисков, остался только блок процессора и блок СМ3508.31
Можно без NOPов попробовать, байтовой пересылкой.
112737
000101
177566
774
ввёл с железного пульта - работает
http://i056.radikal.ru/1708/91/1f00140e810et.jpg
Ну вот теперя переключать с терминала на переходник на rs232, вводить заново и осциллографом нпытаться смотреть что там творится и почему не работает...
Земли соединить вместе, земляной щуп можно не цеплять. При замере программа должна работать.
Если в передатчике блока ИРПС СМ1420.6010 используется токовая петля, которая замыкает контакты ПД- и ПД+ при передаче "1" и размыкает при передаче "0" ( или наоборот ) - конвертер такого сигнала в сигнал RS232 можно сделать из одного резистора: Простой адаптер токовой петли для COM-порта.
Для возможности выставлять необходимые уровни ( +12В или -12В ) на выводах DTR и RTS в настройках COM-порта - в качестве эмулятора терминала на PC можно использовать: Эмулятор терминала типа VT52.
http://zx-pk.ru/threads/27908-sm-142...l=1#post921522
Patron, На фотке слева виден восьминогий (оптрон?) и справа два транзюка. Вот по сути реализация токовой петли на этой плате.
Я к тому веду, что по стандарту - передатчик токовой петли не генерит сигнала, а только замыкает/размыкает контакты ПД- и ПД+ ( надо ещё проверить, учитывается ли состояние цепи разрешения работы - ГПД ), поэтому если просто подключить осциллограф к висящему в воздухе выходу передатчика токовой петли - ничего увидеть не получится, надо сначала подключить выход передатчика ИРПС к исправному источнику приёмника, который и будет коротиться/размыкаться при работе передатчика ИРПС.
В такой ситуации проще сразу подключать выход передатчика токовой петли к COM-порту PC через резистор 2 КОм ( по схеме ). У COM-порта мощная защита от любого насилия над входом приёмника, а измерить уровни на входе COM-порта осциллографом элементарно просто.
Возможна ситуация, когда для разрешения работы передатчика требуется закоротить эти контакты ( и они уже закорочены в разъёме кабеля терминала ), поэтому при подключении терминала таким кабелем - передатчик ИРПС будет работать, а при подключении COM-порта другим кабелем - работать не станет. Т.е. надо просто проверить, не закорочены ли эти контакты в разъёме кабеля терминала - и сделать так же.
Могу предложить схему адаптера. Там есть схема подключения ( на 7 странице) как в активном режиме так и в пассивном.
Здесь.
- - - Добавлено - - -
Patron, В книге Сингера описывается (175стр.) программа трансляции символа с байтовой пересылкой без NOPов. В эмуляторе она не проходит. Понятно что программа должна исполнятся на PDP. А на СМ как?
Patron, в сканах нашёл только паспорт, схема у меня есть на бумаге, но она плохочитаема, очень плохо.
http://u.zeptobars.ru/yuot/2420/3.057.036-PS.djvu
Получается, что у ИПРС ДВК передатчик пассивный, а приёмник активный, а у СМ - и приёмник тоже пассивный. Но речь пока только о передатчике ИРПС - они (насколько я понял) у ДВК и СМ одинаково пассивные, поэтому схема с резистором должна работать.
- - - Добавлено - - -
Два NOPа нужны в том случае, если программа запускается с терминала СМ1420 командой S. Дело в том, что ПЗУ пульта СМ1420 устроено так, что при выполнении команды S - стартовый адрес, заданный командой L сначала увеличивается на 4 и только потом передаётся управление. Можно просто давать перед S не L 1000, а L 774 - и обойтись без двух NOPов в начале, но тогда будет утрачена совместимость скрипта с Электроникой 100/25.
Тогда в приёмнике схему изменить так. Землю подсоединить к ПР+, а ТХ к ПР-. Убрать перемычки 9-11, 10-12, установить перемычку 11-12.
В момент простоя отрицательный уровень отсекается защитным диодом, в момент импульса положительный уровень проходит через светодиод оптрона.
Недостатки этой схемы то что сажается отрицательный уровень и не сбалансировано питание светодиода в момент импульса.
- - - Добавлено - - -
!Это касается только схемы Patronа.
И понятно, почему замыкание входа на выход у адаптера токовой петли не дало результата. Для работы с СМ - у адаптера токовой петли и вход, и выход должны быть активные. Хорошо, если в адаптере при таком соединении ничего не сгорело.
Как раз дало- http://zx-pk.ru/threads/27908-sm-142...l=1#post922563
Значит адаптер в полном порядке и для настройки тракта передачи ИРПС после запуска программы передачи буквы A - надо только убедиться, что есть сигнал на выходе адаптера со стороны PC и задать правильную скорость COM-порта в настройках программы терминала.
- - - Добавлено - - -
Надо соединить выводы адаптера 24 и 7, а к передатчику ИРПС ( выводы ГП+ и ГП- ) подключать выводы 19 (+5в) и 12 адаптера, но какой куда - надо по схеме ИРПС смотреть ( или проверить тестером, куда подаётся +5в при подключении родного терминала ).
У топикстартера уже должны были быть символы передаваемые с ПС без программы. Эмулятор пульта позволяет отдавать любые символы по 2шт в одной строке. Далее печатает знак вопроса и передает снова по 2шт. Если этого не происходит любые программы бессмысленны.
...
Для 12 вольтовой ИРПС 5 вольт адаптера не хватает.
- - - Добавлено - - -
Не годится.
На ИРПС со стороны передатчика
4- земля
6- выход открытого коллектора
Эммитер транзистора на земле. Соответственно транзистор питается через оптрон.
Там 12 вольт.
Без программы - на осциллографе не видно, какая скорость и битность у передачи. При неправильной настройке COM-порта - PC ничего не примет, хотя всё работает как надо.
Работа ИРПС не зависит от напряжения в токовой петле - в этом смысл ИРПС. Надо только соблюсти правильную полярность.
Значит - в адаптере надо соединить выводы 19 и 12, вывод 24 адаптера подключить к выводу 6 ИРПС, а землю адаптера 7 - к земле ИРПС 4.
Вроде как разобрались какую скорость выставить- 9600 8N2.
Примет, только будет печатать всякую ерунду. Не примет, в основном если в настройках неправильно настроены сигналы готовности. Но я говорил поставить перемычки на RTS-CTS, CD-DTR-DSR.
Ток на участке цепи прямо пропорционален напряжению.
Кроме того, у светодиода есть свой порог срабатывания.
Да - http://zx-pk.ru/threads/27908-sm-142...l=1#post921543
Но и светодиод, и источник находятся в адаптере, а по спецификации ИРПС - при активном подключении между ними должен находиться ключ передатчика, поэтому всё полностью штатно. У терминала приёмник рассчитан на подключение 12в к токовой петле, а у адаптера - на подключение 5в к токовой петле.
- - - Добавлено - - -
Вот почему полезна программа вывода буквы A - можно проверить осциллографом напряжение на ключе передатчика ИРПС ( между 4 и 6 ) и на выходе адаптера со стороны PC. Если со стороны ИРПС есть сигнал, а со стороны PC нет - значит при открытом ключе передатчика ИРПС светодиод в адаптере не загорается.
Всё правильно, буква A должна передаваться.
Неправильно. Если со стороны PC нет сигнала в СМ, то не загорается светодиод в ИРПС.
- - - Добавлено - - -
Чтобы зажечь светодиод на ИРПС можно взять питание со 2 ноги микросхемы. Там +10в по описанию.
Если посмотреть на отсутствие перемычек S13 у топикстартера то будет именно 8N2. Скорость 9600 наличием перемычек 3-4 на S8 и 3-4 на S11.
UPD.Контроль по четности есть.
- - - Добавлено - - -
Ещё момент который я упустил, это то что адаптер инвертирует сигнал.
При -12 на RS232 даёт 20ма.
При +12 на RS232 даёт 0ма.
Если бы было наоборот то при в включении на экране РС появилось приглашение пульта.
Что за хрень?! С утра ещё раз проверил ввод с пульта, на "железный терминал" стала выводится буква "А", потом подключил ПК с адаптером к com-порту, стал вводить с пульта и по моему на втором слове выдало это:
http://s019.radikal.ru/i636/1708/88/00a9ee81f7dbt.jpg
177570
т.е. нажимаю ЗАПИСЬ и выдаётся на диодах это. Ещё пару раз попробовал, иногда записывался адрес, но чаще всего выдавало это.
Подключил опять железный терминал - результат тот же. Адрес (1000) вводить даёт (нажимаю ВВОД АДР диод(ы) загорается как надо), а вот как нажимаю ЗАПИСЬ, то всё.
Неправильно. Светодиод выходного оптрона передатчика ИРПС зажигается СМ полностью автономно, потому что в токовой петле со стороны СМ - только ключ выходного оптрона, а со стороны адаптера - источник тока и светодиод входного оптрона. Когда СМ зажигает светодиод выходного оптрона - ключ выходного оптрона открывается и источник тока адаптера подключается через токовую петлю к светодиоду входного оптрона адаптера ( в нашем случае - светодиод с источником тока подключаются к земле ).
- - - Добавлено - - -
Похоже, что из-за деградации конденсаторов в блоке памяти - по мере прогрева памяти после включения она и раньше переставала работать и всё зависало. Вот и сейчас память перестала работать точно так же. ВВОД АДР ( если правильно понимаю ) задаёт сигналы для шины адреса блока памяти, а ЗАПИСЬ - задаёт сигналы для шины данных и осуществляет запись.
- - - Добавлено - - -
ПЗУ пульта работает без участия памяти, поэтому даже при неисправной памяти после включения питания на терминале должно всегда появляться приглашение пульта, но при записи в память командой D и при чтении из памяти командой E - могут возникать ошибки.