nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 23 Oct 2017 23:59



Reply to topic  [ 29 posts ]  Go to page 1, 2  Next
Serial to Parallel Converter 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Джентльмены, не у кого не завалялась простая схема преобразования последовательного кода RS-232 в параллельный?

Мне так помнится, что на сдвиговых регистрах и логике пробегала она ещё во времена Фидо.
И я себе скачивал, но где-то на дисках затерялась. :(

Там что-то типа такого должно быть:

Image

Я, безусловно, прочесал Интернет, но сейчас все на ПИКи и на Меги активно присели...
Да и я по жизни на ПИКе сделал бы, но сейчас мне простая схема нужна -
в Протезусе загружать программу в статическое ОЗУ программ 4-bit CPU.

В нём ОЗУ не хранит содержимое в файле, а из загрузчиков только RS-232 терминал,
вот здесь я им пользовался с такой целью:

Image

Не у кого схемы сабжа не завалялось? Уж больно некогда его заново разрабатывать... :-?

_________________
iLavr


03 Apr 2012 04:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Serial to Parallel Converter - v.1

Мне кажется - это вот и есть простенькая схема, о которой я говорил:

Image

Правда, я её помню на отечественных элементах...
Но посмотрю, проверю - она или нет.

_________________
iLavr


13 Apr 2012 18:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Есть и ещё один вариант этой схемы by Bill Bowden:

Image
Источник

По ссылке подробно описан и принцип работы устройства.

_________________
iLavr


14 Apr 2012 04:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
В более привычном виде последняя схема на элементах ТТЛ (преимущественно) выглядит вот так:

Image

Я удалил цепи оптопары, поскольку согласователь уровней RS-232 - ТТЛ
на VT1 по моему опыту работает вполне неплохо...

Может случиться, что с фазой сигнала во входных цепях будет незадача
с точностью до инверсии.

Проверяю сейчас на модели Протезуса - если будет нужна дополнительная
инверсия - лишние элементы в схеме присутстуют.

Кстати, весьма неплохо управляемый генератор VT3, D3.1, D3.2 работает!
При эаданных номиналах очень точно попадает в частоту передачи и запускается
уверенно.
Обычно старт-стопный генератор несколько по-другому делают...

_________________
iLavr


15 Apr 2012 14:39
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Я удалил цепи оптопары, поскольку согласователь уровней RS-232 - ТТЛ
на VT1 по моему опыту работает вполне неплохо...
Может случиться, что с фазой сигнала во входных цепях будет незадача
с точностью до инверсии.


Проверил - похоже, что с фазой сигнала TxD никаких проблем нет:

Image

Хотя в Протезусе богатый выбор фазировки сигнала TxD: Normal,
Inverted и Default! :o
Как для блондинок: Да, Нет, Незнаю... :wink:

Преобразователь в принципе работает верно. Заметил, что бывает сбой
в первом принятом байте. Погоняю - проверю, в чём дело...

Хочу также заменить сдвиговый регистр CD4015 на пару 155ИР1 или 155ИР16.
Надо бы также избавиться от транзисторов в схеме - непонятно их присутствие
при наличии в схеме лишних вентилей.
Да и частота генератора - 57600 Гц - позволяет обойтись без высокоомного
входного каскада в генераторе.
Не совсем также понял необходимость триггеров Шмитта в схеме, возможно
и на обычных вентилях будет работать не хуже...

А так - в принципе конвертер рабочий, кто имеет желание поэкспериментировать -
вот модель.

_________________
iLavr


15 Apr 2012 15:55
Profile
Maniac

Joined: 14 Jul 2011 05:18
Posts: 255
Location: Гомель
Reply with quote
Post 
печатку одностороннюю к этому проекту и цены емы бы вообще небыло)
кстати на сколько я помню у интеграла готовая микросхемка есть аналогичная последней схеме :)


16 Apr 2012 14:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
7400 wrote:
печатку одностороннюю к этому проекту и цены емы бы вообще небыло)
кстати на сколько я помню у интеграла готовая микросхемка есть аналогичная последней схеме :)

Не - печатку рано.. сначала сделаю замены.. а Протезус делает печатки -
только я ниразу не пробовал... Может разочек рискну, хотя это такое нетворческое дело. :(

Мне этот конвертор - для 4-бит ЦПУ. А там - принцип: всё на мелкой доступной логике.

А вот когда гуглил - да: и зарубежных таких спец-микрух много. :wink:

_________________
iLavr


16 Apr 2012 14:23
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Заметил, что бывает сбой в первом принятом байте.
Погоняю - проверю, в чём дело...

Проверил - проблема есть, но, похоже, чисто Протезузная.
Code:
sent "5" = 35h
__1101010 - first byte
00110101 - second byte

На самом первом принимаемом байте не успевает на 1-2 такта запуститься генератор.
Сбой устойчивый - но похоже на глюки эмуляции. Генераторы на вентилях
плохо эмулируются, т.к. надо искусственно задать асимметрию.
Может не в ту сторону задал, ёмкость предзаряжена на 0.1В. :wink:

Lavr wrote:
Надо бы также избавиться от транзисторов в схеме - непонятно
их присутствие при наличии в схеме лишних вентилей.

Да - на вентилях всё вполне работает... только RC-цепи подобрать надо.

Складыается впечатление, что автор ставил транзисторы, чтобы номиналы
ёмкостей выбрать поменьше, а сопротивлений - побольше... :-?

_________________
iLavr


16 Apr 2012 16:09
Profile
Maniac

Joined: 14 Jul 2011 05:18
Posts: 255
Location: Гомель
Reply with quote
Post 
можно будет аля http://cxem.net/comp/comp85-2.gif собрать) как раз 12 контактов и ведь ком порт сейчас более распространен) да и всякие переходники usb- com по моему более надежны чем usb-lpt (по возможности управления)


16 Apr 2012 16:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Вобще говоря, для режима "старт/стоп" более применим вот такой генератор:

Image

Он уверенно запускается и чётко отрабатывает последний импульс.
Я его пробовал и в реале и в моделях.

Автор, правда, долго распинается о стабильности генератора, но на мой взгляд,
на 9 битах генератор не успеет уплыть.

А второе, что мне не нравится - узелок на 155ТМ2 призван подавить запуск
генератора во время старт-бита, чтобы старт-бит не записался в регистр
сдвига...
Но в схеме - всё равно 16-битный счётчик, считающий до 8-ми тиков.

Я предполагал чуть проще: старт-бит запускает генератор, а счётчик - считает до 9-ти.
При этом старт-бит проходит через регистр сдвига, но вылетает из него
на 9-м бите, поскольку регистр 8-разрядный.

9 - это 1001(b) - через вентиль от 155ЛА3 распознаётся также уверенно,
как и 8 = 1000(b) в авторской схеме.


А ещё веселее, в смысле нищебродства схемы, счётчик и вовсе не ставить. :D
Старт-битом запускаем одновибратор с длительностью импульса, равной
9 тактам частоты передачи.
Одновибратор - разрешает работу генератора, который пропихивает 9 бит в
регистр.
Весь вопрос - в стабильности одновибратора. Но 155АГ1(3) с хорошей RC-цепью
весьма стабилен... говорят. :wink:

_________________
iLavr


16 Apr 2012 16:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Попробовал ещё раз на модели вышеуказанный генератор:

Image

Пачки импульсов уверенно отрабатывает:

Image

Теперь буду встраивать его в исходную конструкцию преобразователя.

_________________
iLavr


21 Apr 2012 05:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Поскольку схему прототипа я изменил, то подробные описания на получившиеся варианты мне писать недосуг.
Но так-как я не сильно отойду от основных принципов исходной схемы,
то её описание я тут приведу, а остальные схемы действуют похоже.

Image

Также, чтобы было понятно, привожу осциллограмму одного кадра передачи
по RS-232 в выбранном формате:

Image

Фронт импульса 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 08:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Осциллограммы в характерных точках преобразователя RS-232 - LPT.

Image

Привязка по фазе везде к сигналу на коллекторе VT1, то есть, по сути, ко входному с уровнем ТТЛ.

_________________
iLavr


22 Apr 2012 09:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Serial to Parallel Converter TTL

Вариант конвертора полностью на микросхемах ТТЛ:

Image

Убрал из оригинала транзисторы (кроме входного) и заменил тактовый генератор.

Поскольку новый генератор чётко отрабатывает включение/выключение,
выяснилось, что сбой в приёме первого символа объясняется неверной
начальной установкой триггера DD1.2.
Поэтому пришлось ввести в него цепи предустановки.
Если при включении питания предустановка прошла верно, зажигается
светодиод VD3 ("Ready").

Для параллельной записи во внешнее устройство, выведен строб /РЕ.

При сборке на серии 155 триггеры Шмитта (155ТЛ2) можно заменить
на инверторы 155ЛН1, цоколевка одинаковая.
В остальных случаях триггеры Шмитта - 155ТЛ2 - предпочтительнее.

Сдвиговые регистры на выходе поставил типа 155ИР1 - их у меня достаточно.
Более доступные ныне 555ИР16 полностью подойдут с учётом особенностей
их включеня.

Общий принцип работы конвертора аналогичен прототипу.
Работу устройства можно симулировать на модели Протезуса.

_________________
iLavr


22 Apr 2012 14:48
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Наладка конвертора

На вход TxD конвертора подаётся сигнал с выхода интерфейса RS-232 компьютера.
Настройка передачи: 57600 бит/с, 8 бит, без контроля четности, 2 стоп-бита.
После настройки непрерывно передвавать символ "U" (код 55H).

Или же подать на вход конвертера сигнал меандр с генератора, частотой 28800 Гц
и амплитудой 12В, что практически иденьтично.

Один из каналов 2-лучевого осциллографа подключить к коллектору входного
транзистора VT1, а второй канал - к выходу генератора тактовой частоты (DD5.4 вывод 11).

При этом должна отображаться следующая осциллогамма:

Image

Подбором номинала резистора R7 настроить генератор синхросигнала
на частоту 57600 Гц так, чтобы спады импульсов приходились на середины
полупериодов сигнала на коллекторе транзистора VT1.

На третьей осциллограмме показан инвертированный синхросигнал с выхода 4 элемента DD3.2.
Пачки таких импульсов (по 8 штук) можно наблюдать на выходе 3 вентиля И-НЕ DD4.1.


PS. Схему конвертера с 555ИР16 на выходе вместе с Протезусной моделью
можно взять здесь.

_________________
iLavr


22 Apr 2012 15:29
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 29 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.