Вход

Просмотр полной версии : Коммутатор 3-х дисководов... Идеи?



Alex_NEMO
12.11.2009, 17:05
Привет, коллеги!
Есть схемка (см. вложение), которую я нашел на диске KOE, который он рапространяет вместе с платой Пента 1024. Он соответственно, коммутирует только два дисковода A/B - B/A.

Вопрос: каким макаром "красиво" скоммутировать 3-и дисковода?
Какие будут идеи у сообщества?

spensor
12.11.2009, 18:11
Вообще объясни что хочешь получить?
Данная фишка работает таким образом, что дисководы меняются местами - условно A-a B-b можно переключить на A-b B-a.
А как ты представляешь ситуацию с 3 дисководами это опиши. Там кажется 6 перестановок выходит.

KALDYH
12.11.2009, 18:38
А что, аппаратура Пентагона 1024 не поддерживает 4 дисковода?

Alex_NEMO
12.11.2009, 18:54
Вообще объясни что хочешь получить?
Как работает 2-х канальный - я понял.
С 3-мя - да, сложнее, потому и спрашиваю... На вскидку, какой-нить контроллер типа тини 2313, пара кнопок, и с индикацией определиться...
Управление - 1-я кнопка - циклический перебор для "1-го" дисковода - A>B>C>A, затем, 2-я кнопка - циклический перебор для "2-го" дисковода - A>B>C>A, при этом, в "логику работы" контроллера заложить, что если буква уже занята 1-м, то для 2 и 3-го она будет уже не доступна!

---------- Post added at 18:54 ---------- Previous post was at 18:50 ----------


А что, аппаратура Пентагона 1024 не поддерживает 4 дисковода?

KALDYH, дело не в том, сколько поддерживает, а в том, как коммутировать > 3-х! Иначе, придется постоянно держать корпус открытым и перетыкать перемычки туда/сюда!

spensor
12.11.2009, 19:03
А что, аппаратура Пентагона 1024 не поддерживает 4 дисковода?
Возможно и не реализовано, так как с года эдак 1993 более чем два дисковода никому и даром ни нужны были. По 4 дисковода на BBS и FIDO станциях юзались.

Но в данном случае эта "примочка" нужна совсем для другого. Задача схемы переставлять дисководы местами, скажем A это 5,25", B - 3,5", а сама прога (на диске) так написана, что работает только с диска А, еще и диск защищенный.

Alex_NEMO
12.11.2009, 19:08
Возможно и не реализовано, так как с года эдак 1993 более чем два дисковода никому и даром ни нужны были. По 4 дисковода на BBS и FIDO станциях юзались.
По схеме, в П1024 можно юзать как раз до 3-х дисководов. 4-й РАМ-ДИСК. Я, по крайней мере, так понял(реал пока не запустил, жду "маленькую" ПЛИСку).
У меня предполагается 5,25", 3,5" реальные дисководы и флоппи-эмуль француза. Потому и есть потребность в подобном девайсе!

Да, на счет индикации - или 9 светодиодов 3х3, или 3-х разрядный семисегментник... Ну, или простенький HT1610 - не однострочник же символьный ставить!

spensor
12.11.2009, 19:10
Управление - 1-я кнопка - циклический перебор для "1-го" дисковода - A>B>C>A, затем, 2-я кнопка - циклический перебор для "2-го" дисковода - A>B>C>A, при этом, в "логику работы" контроллера заложить, что если буква уже занята 1-м, то для 2 и 3-го она будет уже не доступна!
Реализовать в принципе несложно, вопрос в актуальности;) и условно говоря в "User Interface" - цепочно перещелкивать 6 комбинаций как то нездорово выглядит, пульт с 6 кнопками аналогично.

Alex_NEMO
12.11.2009, 19:21
..."User Interface" - цепочно перещелкивать 6 комбинаций как то нездорово выглядит, пульт с 6 кнопками аналогично.
Ну, по моему, 2-е кнопки и 3х3 светодиоды 3мм - простой и не дорогой вариант, при этом, не потребует много места на передней панели! Ну, не валкодер же с символьником лепить! Да и места это займет...
А уж, до 5-и раз на паре кнопок щелкнуть - не велик труд!

rasmer
12.11.2009, 19:51
на паре кнопок можно максимум три раза щёлкнуть - первая кнопка отвечает за переключение между собой первого и второго дисковода -, вторая кнопка - второго и третьего соответственно... и тут уже не надо следить какая уже выбрана или нет...

Alex_NEMO
15.11.2009, 10:54
на паре кнопок можно максимум три раза щёлкнуть - первая кнопка отвечает за переключение между собой первого и второго дисковода -, вторая кнопка - второго и третьего соответственно...
Ну и как ты видишь программно-аппаратную реализацию этого? Лично я не вижу!

Более-менее что уже сложилось в голове, и буду потихоньку пробовать реализовывать (не спец я ни в программировании, ни в схемотехнике :) ):
1. "Сердце" - контроллер тини 2313, тактирование - внутр. генератором.
2. Индикатор - 7-и сегм. LCD типа TIC9153 (http://www.gamma.spb.ru/products.info.php?c=459&i=460)(AMPIRE или аналогичный, с драйвером ML-1001 (http://display.compel.ru/getpdf.php?path=cntrl%2Fpdf&fn=ML1001)), даташит на TIC9153 (http://www.trt.ru/products/tic/pdf/segment/TIC9153.pdf). Преимущества - SPI-интерфейс(всего 3-и провода упр-я), небольшая цена (60-70р.), малые габариты.
3. Управление - 2(3) кнопки. 1-я кнопка - циклический перебор для "1-го" дисковода - A>B>C>A, затем, 2-я кнопка - циклический перебор для "2-го" дисковода - A>B>C>A, при этом, в "логику работы" контроллера заложить, что если буква уже занята 1-м, то для 2 и 3-го она будет уже не доступна! Возможно, стоит использовать 3-ю кнопку, для записи "конфигурации" в EEPROM контроллера. По идее, этот девайс с тем же железом, можно "скрестить" с "Индикатором флопа (http://zx.pk.ru/showthread.php?p=232441#post232441)" - ног у тини2313 должно хватить! Имеем 15 пинов + 2 под кварц, которые можно задействовать. 3 вх. + 3 вых - упр-е дисководами, 3 кнопки, 3 пина на LCD, как раз, ещё 3-и пина на сигналы с ВГшки, как раз чисто под "Индикатор флопа". И ещё 2-а пина в запасе.

rasmer
15.11.2009, 17:51
писец! циклический перебор с проверкой на уже занятость - это реализуемо, а то как я предложил - нет... Ведь то как предложил я намного проще и элементарнее...

---------- Post added at 17:51 ---------- Previous post was at 17:46 ----------

ABC - Изначально
BAC - После нажатия левой кнопки
BCA - нажатия правой кнопки
CBA - После нажатия левой кнопки
За три нажатия - целиком поменяли... а у тебя это сколько займёт?

Alex_NEMO
15.11.2009, 18:57
А если надо САВ, а АСВ?
Я и не спорю, что мой вариант не 100% оптимален, но для меня лично - так удобнее, и как мне кажется, гибче!
Вопрос как реализовать!

molodcov_alex
15.11.2009, 19:31
САВ
изначально - ABC
правая - ACB
левая - CAB

АСВ
изначально - ABC
правая - ACB

Alex_NEMO
15.11.2009, 19:39
molodcov_alex, не совсем понял - к чему эта писанина? Упрощение до 1-й кнопки? Опять же гибкости нет! Ладно, хотя бы для своего варианта код набросаешь на С под тини2313?

molodcov_alex
15.11.2009, 19:53
Ладно, хотя бы для своего варианта код набросаешь на С под тини2313?
??? Мопед какбы не мой.
Хотя... Экономии кнопок нет, да и ваш вариант проще в обращении.

Могу и в асме. Вот только будет ли tiny2313 успевать среагировать на изменение выбранного дисковода?

Alex_NEMO
15.11.2009, 20:04
Могу и в асме. Вот только будет ли tiny2313 успевать среагировать на изменение выбранного дисковода?
Не, лучше на С - асм тежеловат для меня, хотя и в С далеко не профи, так, чайник-любитель :) ...
А что, разве такое "быстрое" реагирование надо? Натыкал, (записал в EEPROM контроллера) и вперед! Как я понимаю, например у тини2313 пины PD4-PD6 "входы" для сигналов DS0, DS1, DS2, в пины PB0-PB2 - "выходы" для этих же сигналов, с учетом "логики", заложенной в тини. Так?

molodcov_alex
15.11.2009, 20:18
PD4-PD6 "входы" для сигналов DS0, DS1, DS2, в пины PB0-PB2 - "выходы" для этих же сигналов
Скорее наоборот, порт B может реагировать на изменение сигналов и формировать прерывание.

А что, разве такое "быстрое" реагирование надо?
Ну не знаю, пока тини почувствует что на входах что-то изменилось, запустится обработчик прерываний, считаются текущие данные, переплетутся как следует, выведутся в порт... Хотя спек не так уж шустр, может хватит даже встроенного RC-генератора.

Если объединять с индикатором флопа, то сигналы STEP и TR00 лучше всего завести на PD2 и PD3.

Alex_NEMO
15.11.2009, 20:33
Скорее наоборот, порт B может реагировать на изменение сигналов и формировать прерывание.
По идее(может, я и не прав - спецам виднее!), без разницы, и прерывание с данном моменте не обязательно. Ведь надо же тупо "транслировать" с учетом "коммутации" что пришло на "входы" на соотв. "выходы"!
По скорости - она и не нужна большая! Если только после каждой загрузки не менять конфиг дисководов, хотя это маловероятно! Опять же, если и "тормоза" будут - 1-2 сек.подождать не проблема!

molodcov_alex
15.11.2009, 20:41
Ведь надо же тупо "транслировать" с учетом "коммутации" что пришло на "входы" на соотв. "выходы"!
Просто так заниматься "транслированием" надо будет только при изменении состояния, а остальное время можно фигней маяться - например кнопки сканировать. Иначе придется организовывать цикл с постоянным опросом состояния входов.

Alex_NEMO
15.11.2009, 20:50
Просто так заниматься "транслированием" надо будет только при изменении состояния, а остальное время можно фигней маяться - например кнопки сканировать. Иначе придется организовывать цикл с постоянным опросом состояния входов.
По идее, так и надо делать - команда выбора дискача DSx (Drive Select x) от контроллера дисковода, активный ур-нь "0", то же транслируем на "нужный выход", с учетом выбора. Вопрос в том, как быстро и часто этот сигнал меняется - надо "буквари" почитать.