Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Джентльмены, не у кого не завалялась простая схема преобразования последовательного кода RS-232 в параллельный?
Мне так помнится, что на сдвиговых регистрах и логике пробегала она ещё во времена Фидо.
И я себе скачивал, но где-то на дисках затерялась.
Там что-то типа такого должно быть:
Я, безусловно, прочесал Интернет, но сейчас все на ПИКи и на Меги активно присели...
Да и я по жизни на ПИКе сделал бы, но сейчас мне простая схема нужна -
в Протезусе загружать программу в статическое ОЗУ программ 4-bit CPU.
В нём ОЗУ не хранит содержимое в файле, а из загрузчиков только RS-232 терминал,
вот здесь я им пользовался с такой целью:
Не у кого схемы сабжа не завалялось? Уж больно некогда его заново разрабатывать...
_________________ iLavr
|
03 Apr 2012 01:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Serial to Parallel Converter - v.1
Мне кажется - это вот и есть простенькая схема, о которой я говорил:
Правда, я её помню на отечественных элементах...
Но посмотрю, проверю - она или нет.
_________________ iLavr
|
13 Apr 2012 15:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Есть и ещё один вариант этой схемы by Bill Bowden:
Источник
По ссылке подробно описан и принцип работы устройства.
_________________ iLavr
|
14 Apr 2012 01:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В более привычном виде последняя схема на элементах ТТЛ ( преимущественно) выглядит вот так:
Я удалил цепи оптопары, поскольку согласователь уровней RS-232 - ТТЛ
на VT1 по моему опыту работает вполне неплохо...
Может случиться, что с фазой сигнала во входных цепях будет незадача
с точностью до инверсии.
Проверяю сейчас на модели Протезуса - если будет нужна дополнительная
инверсия - лишние элементы в схеме присутстуют.
Кстати, весьма неплохо управляемый генератор VT3, D3.1, D3.2 работает!
При эаданных номиналах очень точно попадает в частоту передачи и запускается
уверенно.
Обычно старт-стопный генератор несколько по-другому делают...
_________________ iLavr
|
15 Apr 2012 11:39 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Проверил - похоже, что с фазой сигнала TxD никаких проблем нет:
Хотя в Протезусе богатый выбор фазировки сигнала TxD: Normal,
Inverted и Default!
Как для блондинок: Да, Нет, Незнаю...
Преобразователь в принципе работает верно. Заметил, что бывает сбой
в первом принятом байте. Погоняю - проверю, в чём дело...
Хочу также заменить сдвиговый регистр CD4015 на пару 155ИР1 или 155ИР16.
Надо бы также избавиться от транзисторов в схеме - непонятно их присутствие
при наличии в схеме лишних вентилей.
Да и частота генератора - 57600 Гц - позволяет обойтись без высокоомного
входного каскада в генераторе.
Не совсем также понял необходимость триггеров Шмитта в схеме, возможно
и на обычных вентилях будет работать не хуже...
А так - в принципе конвертер рабочий, кто имеет желание поэкспериментировать -
вот модель.
_________________ iLavr
|
15 Apr 2012 12:55 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
печатку одностороннюю к этому проекту и цены емы бы вообще небыло)
кстати на сколько я помню у интеграла готовая микросхемка есть аналогичная последней схеме
|
16 Apr 2012 11:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не - печатку рано.. сначала сделаю замены.. а Протезус делает печатки -
только я ниразу не пробовал... Может разочек рискну, хотя это такое нетворческое дело.
Мне этот конвертор - для 4-бит ЦПУ. А там - принцип: всё на мелкой доступной логике.
А вот когда гуглил - да: и зарубежных таких спец-микрух много.
_________________ iLavr
|
16 Apr 2012 11:23 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Проверил - проблема есть, но, похоже, чисто Протезузная. На самом первом принимаемом байте не успевает на 1-2 такта запуститься генератор. Сбой устойчивый - но похоже на глюки эмуляции. Генераторы на вентилях плохо эмулируются, т.к. надо искусственно задать асимметрию. Может не в ту сторону задал, ёмкость предзаряжена на 0.1В.
Да - на вентилях всё вполне работает... только RC-цепи подобрать надо.
Складыается впечатление, что автор ставил транзисторы, чтобы номиналы
ёмкостей выбрать поменьше, а сопротивлений - побольше...
_________________ iLavr
|
16 Apr 2012 13:09 |
|
|
7400
Maniac
Joined: 14 Jul 2011 02:18 Posts: 254 Location: Гомель
|
можно будет аля http://cxem.net/comp/comp85-2.gif собрать) как раз 12 контактов и ведь ком порт сейчас более распространен) да и всякие переходники usb- com по моему более надежны чем usb-lpt (по возможности управления)
|
16 Apr 2012 13:35 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вобще говоря, для режима "старт/стоп" более применим вот такой генератор:
Он уверенно запускается и чётко отрабатывает последний импульс.
Я его пробовал и в реале и в моделях.
Автор, правда, долго распинается о стабильности генератора, но на мой взгляд,
на 9 битах генератор не успеет уплыть.
А второе, что мне не нравится - узелок на 155ТМ2 призван подавить запуск
генератора во время старт-бита, чтобы старт-бит не записался в регистр
сдвига...
Но в схеме - всё равно 16-битный счётчик, считающий до 8-ми тиков.
Я предполагал чуть проще: старт-бит запускает генератор, а счётчик - считает до 9-ти.
При этом старт-бит проходит через регистр сдвига, но вылетает из него
на 9-м бите, поскольку регистр 8-разрядный.
9 - это 1001(b) - через вентиль от 155ЛА3 распознаётся также уверенно,
как и 8 = 1000(b) в авторской схеме.
А ещё веселее, в смысле нищебродства схемы, счётчик и вовсе не ставить.
Старт-битом запускаем одновибратор с длительностью импульса, равной
9 тактам частоты передачи.
Одновибратор - разрешает работу генератора, который пропихивает 9 бит в
регистр.
Весь вопрос - в стабильности одновибратора. Но 155АГ1(3) с хорошей RC-цепью
весьма стабилен... говорят.
_________________ iLavr
|
16 Apr 2012 13:58 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Попробовал ещё раз на модели вышеуказанный генератор:
Пачки импульсов уверенно отрабатывает:
Теперь буду встраивать его в исходную конструкцию преобразователя.
_________________ iLavr
|
21 Apr 2012 02:05 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Поскольку схему прототипа я изменил, то подробные описания на получившиеся варианты мне пис ать недосуг.
Но так-как я не сильно отойду от основных принципов исходной схемы,
то её описание я тут приведу, а остальные схемы действуют похоже.
Также, чтобы было понятно, привожу осциллограмму одного кадра передачи
по RS-232 в выбранном формате:
Фронт импульса Start, пройдя через каскад согласования уровней сигналов интерфейса RS-232 с уровнями сигналов ТТЛ, выполненный на транзисторе VT1, превращается в спад на его коллекторе. Этот спад запускает формирователь короткого импульса на элементах DD4.3, VT2. Сформированный короткий импульс по входу Set устанавливает в единичное состояние выход Q триггера DD1 типа 155ТМ2. Инверсный выход /Q триггера при этом устанавливается в состояние логического нуля, снимая сигнал сброса высокого уровня со входов R счётчика DD2 типа 155ТМ2, тем самым разрешая его работу. Также низким уровнем на выходе /Q триггер запирает диод VD2, разрешая работу генератора тактовой частоты 57600 Гц на элементах VT3, DD3.1, DD3.2. Выходной сигнал тактового генератора фронтом своего первого импульса записывает низкий логический уровень со входа D второго триггера микросхемы DD1 на его выход Q, тем самым устанавливая выход /Q этого триггера в состояние высокого уровня. Указанный выход /Q высоким уровнем разрешает прохождение тактового сигнала частотой 57600 Гц через вентиль И на элементе DD4.1. С выхода этого вентиля тактовый сигнал своими фронтами управляет сдвигом входных данных в регистры DD5. Через инвертор DD4.2 этот же тактовый сигнал спадом активирует счётчик DD2, который кодом восьмого подсчитанного импульса с выхода 8 через логический элемент DD3.3 сбросит по входу R первый триггер DD1, запретив тем самым работу генератора тактовой частоты и переведя себя самого в нулевое состояние, высоким уровнем с выхода /Q триггера, поступившего на входы R счётчика DD2. Восьмым импульсом второй триггер DD1 по входу Set установится в единичное состояние по выходу Q, а нулевое состояние на выходе /Q триггера запретит прохождение сигналов тактовой частоты 57600 Гц через вентиль И на элементе DD4.1. Таким образом, второй триггер из DD1 блокирует прохождение первого тактового импульса через вентиль И, не позволяя записать в регистр сдвига импульс Start из кадра передачи интерфейса RS-232. Но этот же первый импульс, записав низкий логический уровень со входа D второго триггера микросхемы DD1 на его выход Q, единичным уровнем по выходу /Q триггера разрешает прохождение серии из восьми тактовых импульсов через вентиль И на элементе DD4.1 ко входам синхронизации регистров DD5.
_________________ iLavr
|
22 Apr 2012 05:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Осциллограммы в характерных точках преобразователя RS-232 - LPT.
Привязка по фазе везде к сигналу на коллекторе VT1, то есть, по сути, ко входному с уровнем ТТЛ.
_________________ iLavr
|
22 Apr 2012 06:12 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Serial to Parallel Converter TTL
Вариант конвертора полностью на микросхемах ТТЛ:
Убрал из оригинала транзисторы (кроме входного) и заменил тактовый генератор.
Поскольку новый генератор чётко отрабатывает включение/выключение,
выяснилось, что сбой в приёме первого символа объясняется неверной
начальной установкой триггера DD1.2.
Поэтому пришлось ввести в него цепи предустановки.
Если при включении питания предустановка прошла верно, зажигается
светодиод VD3 (" Ready").
Для параллельной записи во внешнее устройство, выведен строб /РЕ.
При сборке на серии 155 триггеры Шмитта ( 155ТЛ2) можно заменить
на инверторы 155ЛН1, цоколевка одинаковая.
В остальных случаях триггеры Шмитта - 155ТЛ2 - предпочтительнее.
Сдвиговые регистры на выходе поставил типа 155ИР1 - их у меня достаточно.
Более доступные ныне 555ИР16 полностью подойдут с учётом особенностей
их включеня.
Общий принцип работы конвертора аналогичен прототипу.
Работу устройства можно симулировать на модели Протезуса.
_________________ iLavr
|
22 Apr 2012 11:48 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Наладка конвертора
На вход TxD конвертора подаётся сигнал с выхода интерфейса RS-232 компьютера.
Настройка передачи: 57600 бит/с, 8 бит, без контроля четности, 2 стоп-бита.
После настройки непрерывно передвавать символ " U" (код 55H).
Или же подать на вход конвертера сигнал меандр с генератора, частотой 28800 Гц
и амплитудой 12В, что практически иденьтично.
Один из каналов 2-лучевого осциллографа подключить к коллектору входного
транзистора VT1, а второй канал - к выходу генератора тактовой частоты ( DD5.4 вывод 11).
При этом должна отображаться следующая осциллогамма:
Подбором номинала резистора R7 настроить генератор синхросигнала
на частоту 57600 Гц так, чтобы спады импульсов приходились на середины
полупериодов сигнала на коллекторе транзистора VT1.
На третьей осциллограмме показан инвертированный синхросигнал с выхода 4 элемента DD3.2.
Пачки таких импульсов (по 8 штук) можно наблюдать на выходе 3 вентиля И-НЕ DD4.1.
PS. Схему конвертера с 555ИР16 на выходе вместе с Протезусной моделью можно взять здесь.
_________________ iLavr
|
22 Apr 2012 12:29 |
|
|