PDA

Просмотр полной версии : RS232 - вариант на ATTiny2313



alx32
22.05.2012, 09:39
Я уже Z80Card собрал, только сам Z80 никак не могу найти, а так собираюсь сделать весь орион по максимуму, плюс RS232 на тиньке 2313 приделать.

Error404
22.05.2012, 11:47
плюс RS232 на тиньке 2313 приделать.


А по какой схеме/алгоритму работы?
В Орионе-2010 была реализация RS232 в ПЛИС на портах F764,F765 (порт данных и порт статуcа) и эта реализация поддежана ПО (в CP/M - консоль, stat/pip, xModem, Kermit). Можно ли достичь совместимости с этим решением схемой на ATtiny2313?

alx32
22.05.2012, 12:13
Если эти программы работают с портом напрямую, то нужно знать алгоритм обмена, а если через драйвер, то можно организовать свой, кроме того в тиньке можно заделать буфер FI-FO, если конечно он нужен...
Более того, можно предусмотреть возможность смены прошивки.

Error404
22.05.2012, 12:31
Если эти программы работают с портом напряму, то нужно знать алгоритм обмена

Консоль CP/M и xModem - напрямую. Алгоритм такой:


; Отправка байта - запись в порт F764.
; Прием байта - чтение порта F764.
; Контроль состояния передачи - порт F765 на чтение:
; D7 - TX_Ready (0 = идет отправка байта, порт не готов. 1 = можно записывать следующий байт для отправки)
; D6 - RX_Status (0 = нет нового принятого байта. 1 = принят новый байт. После считывания байта из F764 этот бит сбрасывается в 0).
; Управление режимами - порт F765 на запись:
; D0, D1 - Скорости UART (4800 (умолчание), 9600, 19200, 38400)
; D6 - "1" = разрешает прерывание по приему байта. На ШД ставится 0FDh.


Kermit и stat/pip - через консольные п\п CP/M

alx32
22.05.2012, 12:37
А прерывание как организуется (если не брать в расчёт 50Гц)?
А всётаки буфер придётся делать...

Error404
22.05.2012, 13:26
А прерывание как организуется (если не брать в расчёт 50Гц)?


Периферийное устройство выдает импульс /INT и в какой-то момент (не помню диаграмм) на ШД выставляет 0FDh. Поскольку Z80 работает в режиме IM2, то считав с ШД код он перейдет на некий обработчик в памяти (в нашем случае в этом обработчике идет считывание байта с RS232 и помещение его во временный FIFO-буфер в ОЗУ Ориона). CP/M же читает данные уже из временного буфера (из ОЗУ Ориона) и готовность определяет по наличию в буфере данных. Так работает CP/M в режиме с поддержкой прерываний (режим INT)

На самом деле париться на счет прерываний нет смысла: та же CP/M и все программы поддерживают и режим POLL (опрос готовности RS-232 в процессе работы). Как показала практика с Орион-2010, никакого выигрыша режим прерываний не приносит (разницы по скорости нет, и "проглатывания" символов ни в каком из ражимов тоже нет).

alx32
22.05.2012, 14:03
Значит с прерываниями можно не париться?
Кварц, скорее всего, будет 18.432, так как при тактовой процессора 5Мгц нужно успевать принимать и выдавать данные на ШД. Думаю скорости тиньки должно хватить, а биты состояния тинька будет выдавать напрямую через буфер типа ЛП8, с которого процессор их может считать в любой момент.

Error404
22.05.2012, 14:23
Ну да, как-то так

alx32
22.05.2012, 14:29
Боюсь, как бы вейтить не пришлось...

Mick
22.05.2012, 18:14
Боюсь, как бы вейтить не пришлось...

А что так все боитись вайтить клаву. Что куча демок написано, где подсчитаны все такты. Сомневаюсь. Избавьтесь от комплеса вайта. У меня в Фениксе клава вайтится, и что с того - работает прекрасно и нигде не жмет.

alx32
22.05.2012, 19:00
Mick, вообще-то тема про СОМ порт на орионе, а не про клавиатуру или спектрум

Error404
22.05.2012, 20:27
Можно без WAIT, но добавить пару мсх - 2 регистра для данных (по одному в каждом направлении, в один Орион пишет, из другого читает; Тини - комплиментарно): поскольку алгоритм POLL синхронный (ориентируется по выводам Тини TX_Ready/RX_Status), то Тини сможет рулить процессом в зависимости от собственной готовности (уже она прочитала первый регистр или уже записала ли во второй регистр). Провод RX_Status еще надо будет простробировать на d-триггере типа ТМ2 (чтобы Тини туда записывала состояние RX_Status, но при чтении Орионом второго регистра этот d-триггер сбрасывался). Итого кроме ATTiny имеем 3 корпуса логики (два ИР33, один ТМ2) + еще какая-нибудь мелочь-обвязка для дешифрации и селекторов /RD /WD

Mick
22.05.2012, 20:33
Mick, вообще-то тема про СОМ порт на орионе, а не про клавиатуру или спектрум

Какая разница, я к тому что - вайта боятся не стоит.

alx32
22.05.2012, 21:19
Error404, как вариант, интересно, у ИР33 есть 3е состояние на выходе при защёлкнутых данных?

Error404
22.05.2012, 21:47
Error404, как вариант, интересно, у ИР33 есть 3е состояние на выходе при защёлкнутых данных?

Да, есть 3-e состояние. ИР33 это тоже что и ИР22 (8-разрядный асинхронный регистр с 3 состоянием), только цоколевка разная. А ИР23 - синхронный регистр (запись по фронту тактового сигнала) с 3 состоянием. Тут уж надо смотреть логику схемы - где что будет лучше: регистры с синхронной записью или асинхронной.

alx32
22.05.2012, 22:38
ФронтовЫе наверно лучше будут...:D

alx32
23.05.2012, 13:06
Предварительный вариант схемы,

http://photo.qip.ru/photo/alx32.nmru/4084088/small/97931304.jpg (http://photo.qip.ru/users/alx32.nmru/4084088/97931304/)

Error404, может будут предложения насчёт дешифратора, не хочется РТ4 ставить, а без неё получается ещё 3 дополнительных корпуса?

HardWareMan
23.05.2012, 13:54
Не взлетит.

alx32
23.05.2012, 14:04
Не взлетит.
Поясни, может я где накосячил?

Error404
23.05.2012, 14:22
Предварительный вариант схемы,

http://photo.qip.ru/photo/alx32.nmru/4084088/small/97931304.jpg (http://photo.qip.ru/users/alx32.nmru/4084088/97931304/)

Error404, может будут предложения насчёт дешифратора, не хочется РТ4 ставить, а без неё получается ещё 3 дополнительных корпуса?

Да, типа того.
РТ4 конечно не хотелось бы. Если уж ставить в дешифратор нечто программируемое, то тогда уж сразу GAL, в который половина этой схемы влезет.
Дешифратор на логике можно применить типа такого (картинка ниже). У меня оно выбирает таймер и SD-карту (F760, F761, F762, F763), но если на вход подавать сигнал A2 инверсным, то такая же схема будет выбирать F764, F765, F766, F767

Или можно на монтажном поле основной платы сделать общий дешифратор области F760...F767 на паре ИД7 (ИД4) вместо того чтобы на каждой перефирийной плате его делать.

alx32
23.05.2012, 14:40
Или можно на монтажном поле основной платы сделать общий дешифратор области F760...F767 на паре ИД7 (ИД4) вместо того чтобы на каждой перефирийной плате его делать.
Возможно так и сделаю, я вообще хотел разместить это всё на монтажном поле контроллера дисковода...

P.S. К стати, не ругайте за импортные графобозначения элементов на моих схемах, рисую в KiCad-e, а советские ГОСТы добавлять некогда...

HardWareMan
23.05.2012, 14:43
Поясни, может я где накосячил?
Триггер статуса должен очищаться в конце цикла чтения, у тебя же всегда или в начале. Включение должно быть таким:
http://savepic.su/2006977.png
Таким образом, по заднему фронту сроба записи данный триггер запишет в себя 0, установить в единицу его можно в любое время. При использовании ЛП8 инвертор не нужен.

Один кристалл ИД14 дает тебе управление 2мя ячейками (у тебя же ячейка данных и ячейка статуса).
http://savepic.su/1987520.png
Использование тактируемых регистров (ИР23 для данных и ТМ2 для статуса) позволяет избавиться от инвертора.

alx32
23.05.2012, 14:56
Триггер статуса должен очищаться в конце цикла чтения, у тебя же всегда или в начале. Включение должно быть таким:
http://savepic.su/2006977.png
Таким образом, по заднему фронту сроба записи данный триггер запишет в себя 0, установить в единицу его можно в любое время. При использовании ЛП8 инвертор не нужен.

Триггеры статуса устанавливаются процессором, а сбрасываются тинькой.

HardWareMan
23.05.2012, 14:59
Триггеры статуса устанавливаются процессором, а сбрасываются тинькой.
Триггеры управления - да (справа вверху, там все оке).
Триггеры статуса - нет (по центру снизу).
http://savepic.su/1990595.png

alx32
24.05.2012, 05:45
Так, ладно, пока приостановим эту тему, нужно ещё орион отладить, а потом заниматься всякими свистульками к нему.

Error404
24.05.2012, 17:28
Возможно так и сделаю, я вообще хотел разместить это всё на монтажном поле контроллера дисковода...


Кстати, если делать контроллер на плате КНГМД, то там можно взять выборку диапазона F760..F76F c ИД4 тамошнего дешифратора - выв. 5 D14. За счет чего упростить схему дешифратора выборки адресов F764,F765.

alx32
24.05.2012, 17:41
Кстати, если делать контроллер на плате КНГМД, то там можно взять выборку диапазона F760..F76F c ИД4 тамошнего дешифратора - выв. 5 D14. За счет чего упростить схему дешифратора выборки адресов F764,F765.

А вот это хорошая новость!:)

alx32
29.05.2012, 14:56
Народ, гляньте схему (alx32.nm.ru/tty_orion.pdf) не замыленым глазом, перерисовал в ГОСТе, а так-же изменил дешифратор, согласно рекомендациям Error404.

P.S. Копируйте ссылку и вставляйте в новой вкладке, с qip.ru творится что-то неладное...

Error404
29.05.2012, 15:40
Вроде как-то так.
Единственно, ИР33 труднодоставаемая, проще доставаема ИР22 (функционально - аналог, отличается цоколевкой)

alx32
29.05.2012, 16:02
Единственное напрягает 9 корпусов...

caro
29.05.2012, 16:20
Единственное напрягает 9 корпусов...Добавьте /WAIT, обойдетесь 3-мя корпусами, работать будет не хуже.

alx32
29.05.2012, 16:41
Я сначала попробую без регистров, напрямую, возможно и успеет, ваш же контроллер клавиатуры при 8МГц успевает, а я хочу запустить тиньку при 18,432МГц.

caro
29.05.2012, 17:56
Я сначала попробую без регистров, напрямую, возможно и успеет, ваш же контроллер клавиатуры при 8МГц успевает, а я хочу запустить тиньку при 18,432МГц.А что Тинька должна успеть сделать, если на нее не подается ни одного сигнала с шины управления, которые бы говорили ей, что надо прочитать байт с шины процессора, либо выдать на нее байт, причем определенный.

alx32
29.05.2012, 18:17
А что Тинька должна успеть сделать, если на нее не подается ни одного сигнала с шины управления, которые бы говорили ей, что надо прочитать байт с шины процессора, либо выдать на нее байт, причем определенный.

Вы хотите конкретную схему?

caro
29.05.2012, 18:59
Вы хотите конкретную схему?Нет не хочу, я и сам ее могу нарисовать.

alx32
29.05.2012, 19:05
Вот и я про совсем другой вариант схемы, если не ставить 512ВИ1, 580ВИ53, в общем ограничиться грубой дешифрацией и посадить тиньку в диапазон F760-F76F, то можно ограничиться вообще одной микросхемой...

Error404
29.05.2012, 19:26
Дешифратор - не то место, где следует экономить. :)
ПО уже вряд ли кто-то перепишет, проще пару мсх пришаманить.

alx32
29.05.2012, 19:38
Error404, это я понимаю, просто для отработки прошивки МК, можно воспользоваться и такой грубой дешифрацией, пустить на МК сигналы A0, /RD, /WR, /F76x. А уж потом достаточно добавить ИД7 для более точной дешифрации.

alx32
31.05.2012, 09:37
Народ, посмотрите пожалуйста исходничек к этой схеме:
http://alx32.nm.ru/tty2-small.png (http://alx32.nm.ru/tty2.png)
35820
Как оказалось, сигнал /WR не пришлось использовать...
P.S. Добавил скорость 115200...

alx32
31.05.2012, 10:13
Люди, есть у кого тайминги шины процессора Z80?

Error404
31.05.2012, 10:25
Как оказалось, сигнал /WR не пришлось использовать...


Как же оно работает, как без /WR, так и без /RD?

Зы. Туплю, они просто на разъеме не нарисованы.
/WAIT планируется в этой схеме?

alx32
31.05.2012, 10:42
Пока нет, возможно тинька успеет за процессором, в прошивке сделано два прерывания, одно на данные, другое на статус, выбираются они с помощью ИД7 и реагируют на смену уровня, то есть за время цикла чтения данных из тиньки или записи в неё прерывания срабатывают два раза, первый, при спадающем импульсе на соответствующем входе, она выдаёт или забирает данные с ШД в зависимости от состояния сигнала /RD, а при возрастающем переводит порт в высокоимпедансное состояние, ну а всё остальное работает в основном цикле программы.

caro
01.06.2012, 11:00
Народ, посмотрите пожалуйста исходничек к этой схеме:....
Желательно прерывания на входах МК стробировать сигналами WR и RD, иначе придется реагировать на весь шум, идущий на шине адресов процессора.
Вход прерывания надо использовать один, никакого выигрыша от того, что вы используете оба аппаратных прерывания не будет, поскольку всё равно придется по INT0 делать безусловный переход на отработку прерывания, а это дополнительно два такта, эквивалентно тому, что вы будете анализировать на входе МК состояние входа A0.
Почти уверен, что без WAIT обойтись не удастся, слишком коротки циклы RD и WR у INTEL 8080.
PS. Желательно конечно расписать все величины в цифре, но что-то давно я не занимался времянками 8080 :)
Что касается Z80, то для него, при тактовой частоте = 3.5 Мгц время отработки прерывания не должно превышать два с половиной периода тактовой частоты Z80. А это получается порядка 715 нсек.
Надо еще учитывать, что только реакция на прерывание у Тиньки занимает порядка 4..6 тактов, а это даже при 20 Мгц уже 300 нсек.

alx32
01.06.2012, 11:51
Я ориентировался на тайминги Z80 при частоте 5МГц, там период обращения к шине получается где-то 400нс, но вейтить всё равно придётся, хотя бы пропустить 1-2 такта МП.

HardWareMan
01.06.2012, 12:09
Z80 хорош стробом адреса (MREQ), а значит гличей на сигналах CS не будет. А вот ВМ80 этим не может похвастать, поэтому я еще когда свой собирал видел гличи на дешифраторе портов F4xx-F7xx.

caro
01.06.2012, 13:42
Z80 хорош стробом адреса (MREQ), а значит гличей на сигналах CS не будет. А вот ВМ80 этим не может похвастать, поэтому я еще когда свой собирал видел гличи на дешифраторе портов F4xx-F7xx.Я о том же.
Нельзя подавать на прерывание сигнал без подтверждения устойчивости данных (WR или RD).

Ewgeny7
01.06.2012, 17:05
Порт UART поддержан софтинками для Z80, поэтому... ;)

Ewgeny7
10.06.2012, 13:35
Собираю свой вариант UART. Покурив даташиты, выбрал Тини2313 в ДИПе. Порт В целиком уходит на шину данных, INT0 и INT1 идут на дешифратор ИД7 (F764 и F765), PD4 - WR, PD5 - RD, PD6 - WAIT. Вейт пока подключаю "на всякий случай", возможно он не понадобится. Время покажет. В качастве USB2UART использую готовый модуль на одной мелкосхемке CP2102. Лапки Таньки для подключения кварца пока свободны, можно будет воткнуть кварц на 20Мгц. Это пока тоже под вопросом, использую внутренний генератор 8Мгц.
Возможно, придется выбирать из двух вариантов - или вейт, или кварц. Как считаете, что лучше?


---------- Post added at 13:35 ---------- Previous post was at 13:32 ----------


На самом деле париться на счет прерываний нет смысла: та же CP/M и все программы поддерживают и режим POLL (опрос готовности RS-232 в процессе работы). Как показала практика с Орион-2010, никакого выигрыша режим прерываний не приносит (разницы по скорости нет, и "проглатывания" символов ни в каком из ражимов тоже нет).
Используем этот факт, обойдемся без буферов и прерываний. На Орион-2010 нужды в них не возникало. А схема (и код) упростятся в разы.

Blade
10.06.2012, 13:41
Возможно, придется выбирать из двух вариантов - или вейт, или кварц. Как считаете, что лучше?

Если делать с WAIT, то будут видеоэффекты на экране, как с контроллером дисковода.

Ewgeny7
10.06.2012, 13:57
Если делать с WAIT, то будут видеоэффекты на экране, как с контроллером дисковода.
Принято :) Оставим этот вариант как худший.

Error404
10.06.2012, 18:06
я за кварц

alx32
10.06.2012, 20:16
А на какую частоту кварц хотите?

Ewgeny7
10.06.2012, 20:52
А на какую частоту кварц хотите?
На всю катушку, 20Мгц.
Что-то ни фига не уложиться с текущей схемой, опрос входов жрет драгоценное время. Можно воткнуть дополнительную ЛЛ1, чтобы по 2ИЛИ формировались готовые (/F764 or /WR) и прочие три комбинации.

aviator
10.06.2012, 21:15
А если на ВВ51 и ВИ53, по старинке, чтобы не мучаться? Я так делал и COM-мышу ради интереса подключал.

alx32
10.06.2012, 21:18
На 20МГц будут ошибки, чтоб их не было, нужны усартовские кварцы, такие как 18,432; 11,0592; 7,37...

alx32
10.06.2012, 21:20
А если на ВВ51 и ВИ53, по старинке, чтобы не мучаться? Я так делал и COM-мышу ради интереса подключал.

А софт кто писать будет?

Ewgeny7
10.06.2012, 21:42
На 20МГц будут ошибки, чтоб их не было, нужны усартовские кварцы, такие как 18,432; 11,0592; 7,37
Отчасти согласен, ошибки будут. Но "на потоке", у нас же принцип другой - каждый байт передается отдельно, после опроса состояния модуля.

alx32
10.06.2012, 22:04
Евгений, как бы не получилось так, что у нас пересылка этих байтов превратится в поток, ну и полезут ошибки...

Ewgeny7
10.06.2012, 22:32
Евгений, как бы не получилось так, что у нас пересылка этих байтов превратится в поток, ну и полезут ошибки...
На Орион-2010 частота кварца 50Мгц. Никак не кратно "кварцевым".
Алгоритм работы такой - отправляем байт, читаем в цикле статус, по готовности отправляем следующий. Т.е. USART перезапускается каждый раз. Битов у нас 10, поэтому искажения в частоте в несколько процентов беды не создадут. Реально же отклонения будут меньше.

---------- Post added at 22:32 ---------- Previous post was at 22:28 ----------

Что-то я убился уже... Событие "отправка байта" отлавливаю внешним прерыванием, первая же команда читает порт В (шина данных). Но получаем какую-то битовую кашу. Менял условия, читал и по низкому уровню, и по обоим фронтам. Думаю... :v2_dizzy_newspaper:

aviator
10.06.2012, 23:24
А софт кто писать будет?
Вопрос. А есть уже написанный? Я просто не смотрел новые проги, могу быть не в курсе. Под журнальный орион софта под последовательный порт не было вообще.

P.S. Сейчас вот закончил паять на макетке переходник на IDE и расширение на 480 точек с исправлением положения кадра.

Ewgeny7
10.06.2012, 23:29
Вопрос. А есть уже написанный?
Да, есть. Даже я, нифига не кодер, писал крошечные утилитки для гоняния данных между диском ОРДОС и ПЦ. А Сергей "прописал" наш UART на уровне СР/М.

alx32
14.06.2012, 10:36
Люди, дайте кто нибудь нормальную распиновку системного разъёма Орион-512?

Решил RS-232 сделать на отдельной плате, а так же поместить туда часики на КР512ВИ1.
http://img.tapatalk.com/551aa527-86b3-c477.jpg

Error404
14.06.2012, 12:22
Так какую же схему решил делать? Че-та я гляжу, много корпусов. Одних 20-ногих регистров(или буферов) аж 3 штуки

Ewgeny7
14.06.2012, 12:32
Фух, сдал экзамен на электробезопасность :) Можно продолжать измываться над RS232.

alx32
14.06.2012, 14:35
Первый вариант, второй без вейта работать не захотел...
Вместо ЛП8 поставил АП5, и вместо второй ТМ2 поставил ТМ7.
То есть скорость будет задаваться тремя битами, а не двумя, как раньше. Нужно будет согласовать какие битрейты ещё будут.

Error404
26.06.2012, 12:49
Ну что, получает что-нибудь?

alx32
26.06.2012, 13:26
Ох, пока не до него... с программатором для Winbond'ов мучаюсь, вроде пишет и стирает, а вот прочитать... в линуксе проблема с приёмным буфером...
Сегодня попробую воткнуть прошитую ПЗУ вместо ROM-диска, если всё нормально, то больше заморачиваться не буду и перейду к RS-232...

Ewgeny7
27.06.2012, 12:12
временно уполз на "Ленинград-2012", там косяки табунами пока ходят :(

alx32
10.07.2012, 09:02
Error404, а по каким точно адресам лежит КР512ВИ1, F760-F761, или какие-то другие?

Error404
10.07.2012, 09:43
Error404, а по каким точно адресам лежит КР512ВИ1, F760-F761, или какие-то другие?

F760-F761

alx32
10.07.2012, 09:52
Так, ладно, в общем программатор пишет и ладно, часики тикают, правда насколько точно не знаю, пора браться за прошивку ATTiny2313...:v2_dizzy_botan:

alx32
10.07.2012, 19:04
F760-F761
Я уже запустил, моторола дохлая была, а я думал дело в дешифрации, наша же, 2004 года выпуска, сразу завелась, правда без батарейки. Интересно, какое минимальное напряжение питания у неё, пойдёт ли 3В литиевая батарейку или маленький NiMH аккумулятор на 3,6в для неё?

Error404
23.08.2012, 09:16
пора браться за прошивку ATTiny2313...:v2_dizzy_botan:

И как?
Пацаны то ждут...
:)

alx32
23.08.2012, 09:28
Да пока никак, тут семейных проблем навалилось, с работой непонятки, да плюс ещё винт на компе накрылся, сейчас с 4Гб компакт флеш работает через переходник, места не хватает чтобы avr-gcc поставить, не говоря о чём-то ещё...

:'(

Ewgeny7
25.08.2012, 14:50
И как?
Пацаны то ждут...
Комп запустил? Пацаны-то ждут :)

Error404
25.08.2012, 15:45
Комп запустил? Пацаны-то ждут :)

:)
Я второй экземпляр наверное делать буду, полностью на 155 серии.
С первым убился, но пока не нашел в каком именно месте косяк.

alx32
25.08.2012, 15:56
Комп запустил? Пацаны-то ждут :)

Компа хватает только для инета...

Отправлено с моего HTC Hero через Tapatalk

---------- Post added at 15:56 ---------- Previous post was at 15:53 ----------

Блин, забываю всё время подпись отключить...

Ewgeny7
25.08.2012, 18:27
Я второй экземпляр наверное делать буду, полностью на 155 серии.
"Ой, напрасно, тётя..."(С) Нафига тебе тебе этот обогреватель? :v2_conf2:
Хочешь, свою плату сфотографирую в высоком разрешении (или перепишу номиналы микрух)? 155 серия давно не производится, там уже возможны глюки от "перележания" на складах.

---------- Post added at 18:25 ---------- Previous post was at 18:24 ----------


Компа хватает только для инета...
Это я Сергея подковырнул :)

---------- Post added at 18:27 ---------- Previous post was at 18:25 ----------


И как?
У меня, к примеру, никак. "Голая" Тинька не хочет устойчиво читать шину данных, нужно обвешивать ее регистрами-защелками. А это уже приближает схему к варианту alx32. А нафига нам два велосипеда?

alx32
25.08.2012, 19:17
"Ой, напрасно, тётя..."(С) Нафига тебе тебе этот обогреватель? :v2_conf2:
Хочешь, свою плату сфотографирую в высоком разрешении (или перепишу номиналы микрух)? 155 серия давно не производится, там уже возможны глюки от "перележания" на складах.

---------- Post added at 18:25 ---------- Previous post was at 18:24 ----------


Это я Сергея подковырнул :)

---------- Post added at 18:27 ---------- Previous post was at 18:25 ----------


У меня, к примеру, никак. "Голая" Тинька не хочет устойчиво читать шину данных, нужно обвешивать ее регистрами-защелками. А это уже приближает схему к варианту alx32. А нафига нам два велосипеда?

Вот и я тоже, попробовал и обломался, пришлось делать первоначальную схему, правда получилось на этой же плате без дополнительной дешифрации ещё и часики прикрутить, так как все элементы там уже были, выбор адреса или данных получилось сделать от штатного ИД7, предварительно инвертировав...

Ewgeny7
25.08.2012, 19:32
Я склоняюсь к мнению, что проще будет использовать ПЛИСку, а на нее повесить и компорт, и часы. ПЛИСе проще работать с шинами.

---------- Post added at 19:32 ---------- Previous post was at 19:31 ----------

С другой стороны, Камиль же как-то прилепил Мегу на спектрумовскую шину :)

Error404
26.08.2012, 12:41
Нафига тебе тебе этот обогреватель? :v2_conf2:
Хочешь, свою плату сфотографирую в высоком разрешении (или перепишу номиналы микрух)?


хочу, конечно же



155 серия давно не производится, там уже возможны глюки от "перележания" на складах.

Да и 1533 минимум 10-летней выдержки (а то и существенно поболее)

Ewgeny7
26.08.2012, 15:15
Да и 1533 минимум 10-летней выдержки (а то и существенно поболее)
1533 производит минский "Интеграл", свежачок. Покупается в Элитане.

---------- Post added at 15:15 ---------- Previous post was at 15:15 ----------


хочу, конечно же
сейчас займусь.

alx32
05.11.2013, 23:33
Привет всем!
Не прошло и... 2 года :eek:
Решил таки возобновить работу над RS232.
Выкладываю начальный вариант прошивки для тиньки.
Прошу посмотреть всех не замыленным глазом.
44000

Error404
06.11.2013, 12:25
А на каком варианте схемы остановились?

alx32
06.11.2013, 17:47
С регистрами...

alx32
08.11.2013, 20:51
И так... Спешу обрадовать RS232 заработал, получилось принять текстовый файл в 22528 байт по Xmodem-у, правда только на скорости в 4800 бод. С передачей что-то не так... У меня в линуксе глючная программа... Постоянно вылетает...

И исходник и кекс в одном флаконе под кварц 11059200
44044

Ну и схема, по которой всё конструировалось...:v2_dizzy_facep alm:
44045

Error404
09.11.2013, 12:07
И так... Спешу обрадовать RS232 заработал, получилось принять текстовый файл в 22528 байт по Xmodem-у, правда только на скорости в 4800 бод. С передачей что-то не так... У меня в линуксе глючная программа... Постоянно вылетает...

И исходник и кекс в одном флаконе под кварц 11059200
44044

Ну и схема, по которой всё конструировалось...:v2_dizzy_facep alm:
44045

А чего кварц не 18,432МГц? Не было такого под рукой?
Я к тому что мне например в любом случае в магазе брать - могу взять любой из, так лучше наверное разгонять тиньку по полной. :)
Я сейчас Орионы уже почти допаял (во второй ставлю Z80 card) затем перехожу к контроллеру НГМД, и на нем уже буду делать Rs232 по твоей схеме. Тогда уже попрет конструктив :) , а пока можно дошлифовывать так.
Какая софтинка использовалась на Орионе?
Не попробовал ли терминальный режим RS-232 в CP/M?

alx32
09.11.2013, 12:14
Просто я купил таких кварцев горстку в своё время, специально для тебя могу перекомпилить кекс на 18,432 или на 14,318, этих на старых материнках полно...
Можно наделать кексов под разные кварцы, но лучше UART-овские...
Ну а так-как этот заработал, хочу всётаки попробовать вариант на голой тиньке, и окончательно доказать его "рабочесть" или наоборот несостоятельность...

Error404
11.11.2013, 15:17
Купил кварцы на 18,432
Так что прошивка для этой частоты таки понадобится.

alx32
11.11.2013, 17:58
Без проблем, щас будет, но это пока тестовая версия, в этой прошивке не переключаются скорости бодрейта, пока нет времени разбираться, оставил как есть... скорость 4800 бод...

alx32
11.11.2013, 18:04
Вот, забирай...
44108

alx32
11.11.2013, 18:33
Какая софтинка использовалась на Орионе?
Не попробовал ли терминальный режим RS-232 в CP/M?

Использовал xput.com и xget.com, а перевести в терминальный режим хоть убей не помню как, может напомнишь?

Error404
11.11.2013, 23:11
Использовал xput.com и xget.com, а перевести в терминальный режим хоть убей не помню как, может напомнишь?

Для перехода в режим TTY (работы по RS232) надо выполнить команду:
stat con:=tty:
Для перехода обратно в режим графики (CRT) надо набрать:
stat con:=crt:
Посмотреть текущий режим:
stat dev:

Не уверен что корректно стоит скорость порта RS-232 при старте ОС, поэтому в случае чего, в качестве настроечной запусти xget.com с параметром нужной скорости на получение файла (оно выставит порт), да выйди по ctrl+C

Тип терминала на PC надо выбирать VT-52.

Еще есть Монитор F800 (ROM BIOS) в котором можно при включении питания удержать кнопку, вывалиться в промпт Монитора и там директивой загрузить файл по X-MODEM, например приложенный расширитель Монитора:

Error404
11.11.2013, 23:27
Пожалуй в качестве основного Монитора для Ориона ревизии 512 я и буду прошивать M37ZRKR, т.к. при наличии Ордос, он по действию ничем не отличается от прочих версий М3, но при необходимости позволяет загружаться с RS-232 (директивой Монитора, или из Ордос утилитой М256$ вызывая п\п F834 или когда вообще нет ПЗУ ROM-диска)

alx32
12.11.2013, 00:01
Пожалуй в качестве основного Монитора для Ориона ревизии 512 я и буду прошивать M37ZRKR, т.к. при наличии Ордос, он по действию ничем не отличается от прочих версий М3, но при необходимости позволяет загружаться с RS-232 (директивой Монитора, или из Ордос утилитой М256$ вызывая п\п F834 или когда вообще нет ПЗУ ROM-диска)

К стати да! Таким макаром можно будет грузить тестовые программки при испытании нового IDE-контроллера... ;)
Осталось только найти VT-52 терминал в линухе...

Отправленно от моего E73 с помощью Tapatalk 4

Error404
12.11.2013, 14:02
ATTiny2313A-PU на какую частоту рассчитаны?

У некоторых выпусков заведомо пишут частоту (типа "20-PU"), а с этим A-PU чего-то непонятно.

alx32
12.11.2013, 17:48
Просто ATTiny2313A-PU сейчас выпускается взамен ATTiny2313 20-PU и ATTiny2313V 10-PU (низковольтная), и выполнена по технологии PicoPower. В общем, при 5В питании - 20МГц, при 3.3В - 10МГц.
Как-то так...

alx32
13.11.2013, 19:48
Попробовал удалённое подключение через RS232...
Ух ты! Оно работает! Its Live!!!
44124

Error404
13.11.2013, 23:09
Абалдеть. :)
А что там за ошибки BAD SECTOR? Запись на устройство ROM?

alx32
14.11.2013, 05:17
Абалдеть. :)
А что там за ошибки BAD SECTOR? Запись на устройство ROM?

Это я SED.COM пытался запустить...

Error404
14.11.2013, 10:36
Это я SED.COM пытался запустить...

А, да, он при старте какие-то конфиги создает, его надо с VDISK-а (электронного) пускать - там запись работает. Ну или с любого привода где режим R/W

А вот еще вопрос: ты АТТини какой прогой шьешь и с какими фьюзами?

alx32
14.11.2013, 10:52
Шью дудкой(avrdude) из линукса. Во фьюзах всё в единицу кроме SPIEN.
-U lfuse:w:0xff:m -U hfuse:w:0xdf:m

Error404
16.11.2013, 18:30
03.04.2013 21:34
По поводу RS-232. Интерфейс уже давно собран на макетке, дело осталось за прошивкой тиньки. Более того, так как у меня в Орионе есть напряжение -5В, я его использовал в интерфейсе для формирования двуполярного сигнала TXD -5В...+5В. На RXD же стоит простой транзисторный инвертор. Таким образом можно отказаться от MAX232.


А вот кстати, было бы интересно взглянуть на финальный (или близкий к тому) вариант схемы, в т.ч. с выходным формирователем RS-232.

alx32
16.11.2013, 21:28
А вот кстати, было бы интересно взглянуть на финальный (или близкий к тому) вариант схемы, в т.ч. с выходным формирователем RS-232.

А я к стати и не рисовал формирователь RS232, у меня подключен через FT232RL, просто COM-порта у меня на новой машине нет, да и у многих, думаю, тоже... Поэтому предлагаю просто вывести штыри - +5V; RXD; TXD; GND. А там подключат, кому нужно, либо USB-RS232, либо COM-RS232 переходники...

Error404
17.11.2013, 20:33
А я к стати и не рисовал формирователь RS232, у меня подключен через FT232RL, просто COM-порта у меня на новой машине нет, да и у многих, думаю, тоже... Поэтому предлагаю просто вывести штыри - +5V; RXD; TXD; GND. А там подключат, кому нужно, либо USB-RS232, либо COM-RS232 переходники...

FT232RL - используется какая-то готовая плата?
Все равно не хочется изобретать, а хочется собрать проверенное.

alx32
17.11.2013, 20:47
FT232RL - используется какая-то готовая плата?
Все равно не хочется изобретать, а хочется собрать проверенное.

Нет, самоделка, в выводом наружу только сигналов TXD и RXD, и разъёмом miniUSB.

Отправленно от моего E73 с помощью Tapatalk 4

Error404
19.11.2013, 14:01
Вопрос почти по теме: какая из МСХ лучше для преобразования TTL<>USB (по качеству/наличию драйверов), располагаю в порядке увеличения цены:

PL2303HX
CP2102
FT232RL


Читаю тут (http://radiokot.ru/circuit/digital/pcmod/05/), но может кто личным опытом поделится?

Error404
19.11.2013, 16:58
В-общем, заказал PL2303HX (как самую дешевую) для варианта с USB и MAX232 для варианта с RS-232.

ЗЫ. добавил схему в первый пост

alx32
19.11.2013, 22:45
В-общем, заказал PL2303HX (как самую дешевую) для варианта с USB и MAX232 для варианта с RS-232.

ЗЫ. добавил схему в первый пост

А как у неё с паябельностью? Не получится так, что она окажется в каком-нибудь MLF-исполнении и её придётся паять феном?

Отправленно от моего E73 с помощью Tapatalk 4

Error404
19.11.2013, 23:20
А как у неё с паябельностью? Не получится так, что она окажется в каком-нибудь MLF-исполнении и её придётся паять феном?

Отправленно от моего E73 с помощью Tapatalk 4

Оно уже в сборе. Вот такая плата:
http://www.aliexpress.com/item-img/USB-to-TTL-serial-port-in-nine-STC-Brush-PL2303HX-module-microcontroller-board/955125402.html

Цена примерно 40 рублей, мож чуть дороже.

---------- Post added at 23:20 ---------- Previous post was at 23:12 ----------

Я вот тут подумал: может нам этим же контроллером одновременно еще один внешний порт прочитывать (PS/2 мышь)? И записывать байт ее состояния в еще один регистр, откуда Орион будет читать (только читать). 18 с копейками МГц должно хватить на всё.
А то тут звучали пожелания про мышь. Сейчас поищу на каком порту она в Орионе-2010 была реализована.

AHTuXPuCT
20.11.2013, 03:57
Error404, ft232rl лучше будет.
было несколько случаев когда через PL2003 коннекта не было, подключил через FT232RL и все сразу заработало

alx32
20.11.2013, 05:14
Думаешь хватит? Ой сомневаюсь...
А как там было? Приращение X/Y в прямом и обратном коде?

---------- Post added at 05:14 ---------- Previous post was at 05:11 ----------


Error404, ft232rl лучше будет.
было несколько случаев когда через PL2003 коннекта не было, подключил через FT232RL и все сразу заработало

Да, к стати, ей и обвеса не много нужно, даже кварц не требуется...

Error404
20.11.2013, 09:48
Думаешь хватит? Ой сомневаюсь...


Ну, мышь же не сложная в обработке клавиатура (с которой справляется 8-Мгц Мега), считанные с мыши коды можно не особенно обрабатывая выпихивать в регистр - дальше пусть Орион разбирается. Как-то с меньшим приоритетом забирать оставшееся от RS-232 вычислительное время под мышь.

А схемно можно сделать так: у тебя сейчас 5 ножек Тиньки используются под 5 сигналов управления: TX_DAT, RX_DAT, RD_STAT, TX_READY, RX_READY (выв. 6..9,11). Заменить их 3 проводами где двоично указывать какой из сигналов используется, а к Тиньке на эти 3 вывода повесить дешифратор, с которого можно будет снять уже не 5, а 7 сигналов управления (т.е. еще получаем +2 управляющих сигнала для добавляемых регистров мыши). На Тиньке освобождаются 2 ноги, которые можно задейстововать под CLK и DAT разъема PS/2.

Зато какая красота: вместо 9 корпусов получаем только 11, а обслуживаемых устройств - вдвое больше. И концептуально красиво: и RS-232 и PS/2 это по сути одно и то же - последовательные порты.

По какому адресу Орион считывает мышь сейчас пытаюсь выяснить у автора решения - Ewgeny7, ЕМНИП это был порт F766 или F767 (т.е. выбираться будет все тем же дешифратором DD1)



А как там было? Приращение X/Y в прямом и обратном коде?

А вот это не помню, надо изучать. И вообще, просим Ewgeny7 в ветку, делиться опытом. :)

Error404
20.11.2013, 14:28
В этот пост буду подкидывать найденное в сети по MOUSE для контроллеров Atmel.

Вот интересный тред (http://www.mikrocontroller.net/topic/112361) (на немецком, правда, но есть же google translate), c исходниками (кладу и во вложение). У автора в этом примере AtTiny2313 работает от кварца 7,3 MГц
Тред Камиля aka Caro по мышке для MSX (http://zx.pk.ru/showthread.php?t=9392) (что характерно, тоже используется AtTiny2313, 8МГц, исходников правда нету вроде)
Контроллер для Амиги (http://ps2m.sotchenko.ru/index_ru.html), есть исходники, но там PIC

Error404
20.11.2013, 16:10
Приглашаю alx32 в эту ветку (http://zx.pk.ru/showthread.php?t=9674&page=120) на производственное совещание по портам

alx32
20.11.2013, 17:31
В этом случае оба варианта не мешают друг другу, а дополняют (т.к. вариант логики от Ориона-2010 тинька2313 врядли вытянет, да еще и вместе с RS-232). Для Ориона на рассыпухе можно будет использовать один драйвер мыши, для Ориона-2010 - второй. Или написать универсальный с детектом контроллера.

Она и так по максимуму (по ногам) в RS-232 используется, уж лучше поставить вторую для этого дела по стандарту Орион-2010...

Error404
20.11.2013, 22:42
Она и так по максимуму (по ногам) в RS-232 используется, уж лучше поставить вторую для этого дела по стандарту Орион-2010...

Как насчет этого предложения (http://zx.pk.ru/showpost.php?p=645626&postcount=113):


схемно можно сделать так: у тебя сейчас 5 ножек Тиньки используются под 5 сигналов управления: TX_DAT, RX_DAT, RD_STAT, TX_READY, RX_READY (выв. 6..9,11). Заменить их 3 выводами где двоично указывать какой из сигналов дергаем, а к Тиньке на эти 3 вывода повесить дешифратор (3->8), с которого можно будет снять уже не 5, а 7 (один уходит под "все выключены") сигналов управления (т.е. еще получаем +2 управляющих сигнала для добавляемых регистров мыши). На Тиньке освобождаются 2 ноги, которые можно задейстововать под CLK и DAT разъема PS/2 мыши.


Просто, для мыши один раз идет инициализация, а дальше потоком гнать пакеты DX+DY+KEYS на выход. Не особо ресурсоемко чтобы туда еще один контроллер ставить. В этом и весь смак - выжать из одного контроллера больше. :)

alx32
20.11.2013, 22:52
Просто для этого требуется ещё как минимум две ноги, а их нет...

Error404
20.11.2013, 23:49
Просто для этого требуется ещё как минимум две ноги, а их нет...

Не понимаю зачем еще две. У нас же уже за счет применения дополнительной ИД7 освободилось 2 ноги для вывода на PS/2 и за счет неё же есть сигналы записи в регистры мыши (см. мой предыдущий пост)?

alx32
21.11.2013, 05:33
Не понимаю зачем еще две. У нас же уже за счет применения дополнительной ИД7 освободилось 2 ноги для вывода на PS/2 и за счет неё же есть сигналы записи в регистры мыши (см. мой предыдущий пост)?

За счёт дешифратора мы увеличим только выходы, а для мыши нужно ещё 2 входных сигнала. Дело в том, что из всех управляющих сигналов, что ты преречислял, выходными являются только три, два для чтения/записи регистров, и один для чтения статуса. Остальные входные, их-то не дешифруешь...

Отправленно от моего E73 с помощью Tapatalk 4

Ewgeny7
21.11.2013, 08:16
Мега8, или Мега48 - они даже дешевле чем Тини2313, при большей навороченности и многолапности. http://tixer.ru/catalog/ac/ic/mcu/avr-microcontrollers/

Error404
21.11.2013, 11:30
Мега8, или Мега48 - они даже дешевле чем Тини2313, при большей навороченности и многолапности. http://tixer.ru/catalog/ac/ic/mcu/avr-microcontrollers/

Ну, наверное можно и Мегу48, почему нет? Или таки ставить две 2313.
Хотя можно и с одной 2313 выкрутиться. alx32 конечно прав вот в этом (а я не учел):

За счёт дешифратора мы увеличим только выходы, а для мыши нужно ещё 2 входных сигнала. Дело в том, что из всех управляющих сигналов, что ты преречислял, выходными являются только три, два для чтения/записи регистров, и один для чтения статуса. Остальные входные, их-то не дешифруешь...


Значит надо просто сделать так:

ТМ7 (DD9) меняем на ИР33(ИР23) - они защелкиваются так же как ТМ7, но имеют третье состояние (заодно получаем запас "на будущее" по регистру конфигурации RS-232/мыши: 8 бит супротив 4). Соответственно, становится ненужным буфер DD8B (половинка DD8 - кстати, что это за микруха?). Через этот освободившийся DD8B (он теперь будет открываться с доп. дешифратора ИД7) пускаем входные сигналы TX_READY, RX_READY (и может что-нить еще что потом понадобится, например MOUSE_TX_READY :) ) с ТМ2 DD5 на вход данных тиньки (сигналы шины 0..7, ножки 19..12 Тини2313).

Error404
23.11.2013, 20:20
И тишина...

alx32, подскажи пожалуйста - была ли отдельная тема по твоему контроллеру IDE (на регистрах/буферах)?

Если не была, начни такую тему пожалуйста и положи туда схему. Хочу на досуге подумать на тему этого варианта IDE (сейчас паяю КНГМД, а там есть место в "слепышах", планировавшееся как раз под IDE на регистрах/буферах).

alx32
23.11.2013, 20:31
Неа, темы не было, а оно действительно нужно?
И насчёт PS/2, лучше её делать отдельным блоком, а то начнут вылезать всякие косяки с потерей принятых данных...

P.S. А контроллер флопаря у меня так и не заработал...

Error404
24.11.2013, 15:26
Неа, темы не было, а оно действительно нужно?


Нужно. Хочу. :)



И насчёт PS/2, лучше её делать отдельным блоком, а то начнут вылезать всякие косяки с потерей принятых данных...


Может, раз уж на отдельном контроллере, то делать USB? ИМХО PS/2 мышей скоро будет не найти.



P.S. А контроллер флопаря у меня так и не заработал...

Не добил ты его. Можно отложить, а потом вернуться - я так Орион запускал, сразу как-то оно не пошло...

alx32
24.11.2013, 16:01
Нужно. Хочу. :)

Ну раз хотишь, то заведу тему, просто я хотел этот контроллер тыкать в панельку 3-ей ВВ55 с подключением дополнительных линий адреса...

---------- Post added at 16:01 ---------- Previous post was at 15:48 ----------


Может, раз уж на отдельном контроллере, то делать USB? ИМХО PS/2 мышей скоро будет не найти.

Ну тут нужно смотреть в сторону кортексов, а это долгая история.
Я не знаю насчёт AT90USB, но по моему там хоста нет...

Error404
24.11.2013, 19:37
Ну раз хотишь, то заведу тему, просто я хотел этот контроллер тыкать в панельку 3-ей ВВ55 с подключением дополнительных линий адреса...


Не, третью вв55 трогать не надо - это универсальный порт для управления чем угодно, ИДЕ на нем - только частный случай. К тому же, если делать ИДЕ на рассыпухе (и на выделенном порте), то в ОС можно поддержать одновременно оба варианта: у кого-то терпения хватит только на переходник к Вв55, а кто-то контроллер на россыпухе осилит, а кто-то сразу оба варианта. :)