PDA

Просмотр полной версии : ZX_Multi_Card



Страницы : [1] 2 3 4 5 6 7

caro
07.04.2005, 17:30
Поддерживает:
1) IBM AT клавиатуру - эмулирует стандартную клавиатуру Спектрума;
2) PS/2 мышка - эмулирует Кемпстон мышку (с колесом);
3) RS232 - поддержка внешнего модема с адресацией по Кондратьеву.
4) Часы реального времени (RTC) - поддержка через порты в поле модема (0xE0EF...0E7EF).

В прошивку встроены:
1) Тест RTC - вызов <WinMenu> + <F1>;
2) Тест мышки - вызов <WinMenu> + <F2>;
3) TinyTerm - вызов <WinMenu> + <F3>;
минитерминал для работы с PC по RS232 с загрузчиком по протоколу X-MODEM.
Изменение разрешения мышки:
<WinMenu>+<1> - 1/мм
<WinMenu>+<2> - 2/мм
<WinMenu>+<3> - 4/мм - по умолчанию при RESET
<WinMenu>+<4> - 8/мм
(Здесь цифровые клавиши основного поля клавиатуры)

Начиная с прошивки версии 2.4, при не подключенной к ZXMC клавиатуре,
разблокируется порт Спектрумовской клавиатуры.

zxmc_kbd.zip - исходники раскладки клавиатуры;
ZXMC_sch.zip - схема, монтажка и перечень элементов.
ZXMC_RTC - обновленное описание работы с часами (от 23.04.07)
ZXMC_all.zip - прошивки версий от 2.1 до 2.4, начальный загрузчик и исходник TinyTerm.

Доработка ZXMC1 под Скорпион: http://zx.pk.ru/showpost.php?p=44557&postcount=121
Дочерняя платка: http://zx.pk.ru/showpost.php?p=45245&postcount=125
Схема магнитофонного входа: http://zx.pk.ru/showpost.php?p=75801&postcount=205
Схема MIDI-интерфейса для ZXMC: http://zx.pk.ru/attachment.php?attachmentid=5645&d=1185437721
Доработка ZXMC1 для работы Спектрума с родной клавиатурой: http://zx.pk.ru/showpost.php?p=96449&postcount=407
James DiGreze - описание интерфейса RS232, входящего в состав ZX MultiCard:
http://zx.pk.ru/attachment.php?attachmentid=3103&d=1145690339
Alex_NEMO - манускрипт на тему написания собственных клавиатурных скриптов для мультикарты:
http://www.zx.pk.ru/attachment.php?attachmentid=13358&d=1253556987
Jons- программа для установки часов:
http://zx.pk.ru/attachment.php?attachmentid=12964&d=1251315824
Утилита для модификации CMOS-памяти часов:
http://zx.pk.ru/attachment.php?attachmentid=34186&d=1332400398
Желающие могут скачать схему новой версии ZXMC2
Схема принципиальная: http://www.caro.su/grafs/zxmc20/zxmc20.png
Размещение элементов top: http://www.caro.su/grafs/zxmc20/zxmc20t.png
Размещение элементов bottom: http://www.caro.su/grafs/zxmc20/zxmc20b.png
Прошивка ATF16V8 с исходниками: http://www.caro.su/files/zxmc2io.zip
Версия 2.6 прошивки ATMega8515 для новой карты: http://www.caro.su/files/zxmc2_26.zip
Версия 2.7 прошивки под ATMega162 для ZXMC2: http://www.caro.su/files/mc2_m162.zip
Обновление прошивок:
Для ZXMC1: http://www.caro.su/files/zxmc1v25.zip
Для ZXMC2: http://www.caro.su/files/zxmc2v27.zip
ATMega8515/ZXMC2 для Профи: http://caro.su/files/zxmc2prf28.zip

Обновление прошивки для ZXMC2 от 31.05.2020: http://www.caro.su/files/zxmc2v28.zip
даже при блокировке порта клавиатуры по Scroll Lock разрешается ввод символов.
То же самое обновление прошивки под Profi: http://caro.su/files/zxmc2v29prf.zip

Doctor Max
07.04.2005, 17:38
Вот бы платку еще....

CHRV
07.04.2005, 17:40
Вот бы платку еще....
Это еще не финальный релиз!
Идеи нужны и время :)

CHRV
07.04.2005, 17:52
В принципе этот вариант уже можно было бы развести и изготовить.
Почти все что нужно и может быть реализовано уже стоит.
Да я знаю ты мне кидал вариант еще без часов по моему :)
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!

fan
07.04.2005, 21:28
2 caro

Пока все, но есть еще свободные ноги у контроллера и идеи у меня.

Предлагаю ещё MIDI интерфейс утромбовать. В одном из номеров ZX-HARD (вроде первом и втором) поднималась подобная тема и (насколько помню) давался адрес человека готового поделиться наработками и инфой по MIDI.

Costa
07.04.2005, 21:32
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.что за вопрос!?слот конечно.вроде как стандарт уже.

cr0acker
08.04.2005, 00:31
Да я знаю ты мне кидал вариант еще без часов по моему :)
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!
Ну это как я понимаю результат нешего с каилом разговора о будуще контроллере для АТМ Турбо 2++

Looker
08.04.2005, 03:32
2 caro

Пока все, но есть еще свободные ноги у контроллера и идеи у меня.

Предлагаю ещё MIDI интерфейс утромбовать. В одном из номеров ZX-HARD (вроде первом и втором) поднималась подобная тема и (насколько помню) давался адрес человека готового поделиться наработками и инфой по MIDI.

миди - это рс232+гальваническая развязка. Лишшь бы частоты хватило. А ее у АТмега хватит, повверь мне :)

DVS
08.04.2005, 07:33
2 caro

Отличная работа. Все хотели сделать, а вы сделали :-)

CHRV
08.04.2005, 09:33
2 caro

Отличная работа. Все хотели сделать, а вы сделали :-)
Еще не сделана :wink:

DVS
08.04.2005, 10:18
Это из разряда: совершенству нет предела? :)

Или сделана - это когда уже серия?

CHRV
08.04.2005, 10:23
Ну это как я понимаю результат нешего с каилом разговора о будуще контроллере для АТМ Турбо 2++
ДА на АТМ тоже подразумевается замена на AT8515.

CHRV
08.04.2005, 10:25
Это из разряда: совершенству нет предела? :)

Или сделана - это когда уже серия?
Когда есть изделие и руководство по его эксплуатации как минимум.
Не обязательно серия :)

CHRV
08.04.2005, 10:58
Камиль я все таки думаю есть смысл поддержать GamePAD или джойстик!
Это логично с точки зрения назначения устройства!

kgbplus
08.04.2005, 12:23
Пока не решен окончательно вопрос конструктива - слотовая конструкция с возможностью распайки жгутом и с выносной планкой разьемов перифирии, или просто выносная плата контроллера с разьемами.
Я бы сделал стандартно: плата для установки в слот с разъемами прямо на ней. Кому нужно вывести разъемы в другое место - спаяет удлинитель, у кого нет слотов - вопрос 10 рублей за слотовый разъем на шлейф или на пайку, по желанию. Если хочется совсем удобно - имеет смысл оставлять рядом с разъемами площадки для пайки или ставить разъемы как под джамперы на пц.

caro
08.04.2005, 12:41
Я бы сделал стандартно: плата для установки в слот с разъемами прямо на ней. Кому нужно вывести разъемы в другое место - спаяет удлинительНадо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
CHRV берется изготовить вариант под слот.

CHRV
08.04.2005, 13:10
Надо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
CHRV берется изготовить вариант под слот.
Добавлю, что прошивка есно будет одинаковая и устройства функционально идентичны. У меня будет плата под слот, и болтающиеся на удлинителях разьемы - два Ps/2 и COM... может и под джойстики если генеральный конструктор решит поддержать :wink: .

DVS
08.04.2005, 14:03
Только джойпады от какой приставки? От PS1,2 Nintendo64 и ещё какие-то нецелесообразно, т.к. они как правило с аналоговыми джойстиками и стоят не хило.

CHRV
08.04.2005, 14:05
Только джойпады от какой приставки? От PS1,2 Nintendo64 и ещё какие-то нецелесообразно, т.к. они как правило с аналоговыми джойстиками и стоят не хило.
Sega, там цифровой выход и стоят они бюджетно!

Знахарь
08.04.2005, 14:36
Да! Давайте от sega или PS1 ! а стоят они :) Ну у нас аж по 2 доллара. Разорительно, не правда ли ? А вот от PS1 с вибро или от PS2 или там nintendo - да! Цена уже от 10$. Но Кнопок... Кнопок достаточно и на джойстике от Денди.

Давайте исходить из кол-ва кнопок, что нам надо, и из сложности реализации того / иного джоя.

Т.е. помню, что везде просто на проводках работают в Сеге и Денди лево право верх низ и кнопка А. Остальное - через контроллер. Как его "разобрать" и припрячь ?

DVS
08.04.2005, 15:20
От Сеги более надёжные, чем от Денди (скока их погорело, ужас).

Ronin
08.04.2005, 16:27
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!

тогда уж и кемпстон :)

а вообще амижники их цепляют с заменой 5и7 ног в разъеме, т.е. там обычный протокол "кнопки" как и на спековских джойсах

Ronin
08.04.2005, 16:32
а вообще амижники их цепляют с заменой 5и7 ног в разъеме
хотя этого на все кнопки не хватит и наверно что-то последовательное там тоже есть.

а на дендях воще какой-то последовательный интерфейс, там 5 жил всего-то

Ronin
08.04.2005, 16:34
т.е. там обычный протокол "кнопки
и какой смысл городить ради этого АТмегу ?
надо попробовать подрубить, должно работать.

Ronin
08.04.2005, 16:42
да, кстати, а чего кварц всего на 9мгц ? или там удвоитель частоты есть внутри ?
и программирование "от спека" сразу не предусмотрено ? (я так понимаю надо кабель от ISP_AVR на LPT скажем)

Ronin
08.04.2005, 16:45
PCF8583P RTC, 240 байт RAM, DIP8, Phillips.
а может RTC все же на самой 8515 реализовать как-то ? EEPROM есть.
цену ефинд выдал 1-3$+ - сколько они реально-то стоят.

Costa
08.04.2005, 18:28
а может RTC все же на самой 8515 реализовать как-то ? EEPROM есть.Дык,а как часики то ходить будут без питания?
При каждом включении выставлять время и дату чтоли.
А вообще PCF8583P очень удачный и компактный чип.

Shiru
08.04.2005, 18:58
Т.е. помню, что везде просто на проводках работают в Сеге и Денди лево право верх низ и кнопка А. Остальное - через контроллер. Как его "разобрать" и припрячь ?
В NES-джойстиках (Денди) последовательный протокол, не может там ничего работать 'просто на проводках'. 5 проводов - VCC, GND, Clock, Select, Data. Простой паралельный интерфейс только в Сеговских джойстиках, от Master System и Genesis.

Знахарь
09.04.2005, 11:15
Shiru, спрорить не буду насчет денди... (но был джой к спеку проводками подключен у товарища) Но на сеге так как я писал. Т.е. кнопки bcd xyz start select напрямую не работают. В сеге тоже ведь 9 проводков на вывод. А может и меньше (не помню уж)

kgbplus
09.04.2005, 11:23
Надо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
Ох. Во всех случаях не подойдет никогда. Если бы хоть эти аппараты (спектрумы) в одинаковых корпусах стояли... А то и такого нет.
Удлинитель же я предполагал выполненный потребителем, т.е. на цену устройства не влияющий.


В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
А что такое "распайка под шлейф"? Гребенка для разъема IDC? Или контактные площадки на плате для напайки проводков из шлейфа?

caro
09.04.2005, 12:41
А что такое "распайка под шлейф"? Гребенка для разъема IDC? Или контактные площадки на плате для напайки проводков из шлейфа?Разводка под двухрядную 40-контактную гребенку (запаивать разьем IDC или паять шлейф на плату, решит тот кто будет заниматься монтажем). Я бы предпочел устанавливать на плату розетку.

atrin
10.04.2005, 09:57
Если к ZX_Multi_Card подключать джойстик от видеоприставок, то по-моему мнению наверно лучше подойдут от Dendy и Sony Playstation уних последовательный протокол. Они продаются везде (made in china) недорогие.
Радио №10,1997 стр. 28-29 «Особенности схемотехники восьмибитных видеоприставок» С. Рюмик. (Dendy)
Радио №5, 1998 стр.27-28 «Особенности схемотехники 16-битных видеоприставок» С. Рюмик. (SEGA)
Радио №5, 1999 стр.24-25 «Sony Playstation или особенности схемотехники 32-битных видеоприставок» С. Рюмик.
Радио №12, 2001 стр.21-22 «Dreamcast- 32\128-разрядная видеоприставка» С. Рюмик.
Все эти статьи должны быть на www.radio.ru

kgbplus
10.04.2005, 10:18
Разводка под двухрядную 40-контактную гребенку (запаивать разьем IDC или паять шлейф на плату, решит тот кто будет заниматься монтажем). Я бы предпочел устанавливать на плату розетку.
Если есть место под IDC, то контактная площадка под слот требует из затрат только 2 см2 на плате ;-) Вся разводка то есть... И все счастливы.
В качестве рац. предложения.
PS на самом деле наверное это удовлетворяет больше всего пожеланий, т.к. я например не понимаю плату расширения без слота, а кто то утилитарно ругается на слотовые площадки, распаивая туда шлейф по привычке.

CHRV
10.04.2005, 10:43
Если есть место под IDC, то контактная площадка под слот требует из затрат только 2 см2 на плате ;-) Вся разводка то есть... И все счастливы.
В качестве рац. предложения.
PS на самом деле наверное это удовлетворяет больше всего пожеланий, т.к. я например не понимаю плату расширения без слота, а кто то утилитарно ругается на слотовые площадки, распаивая туда шлейф по привычке.
Я сделаю побольше площадью и универсальную! С шагом 2.5 (как у отечественных слотов). И планирую ILX232 поставить набортно :).

Shiru
10.04.2005, 11:00
Shiru, спрорить не буду насчет денди... (но был джой к спеку проводками подключен у товарища) Но на сеге так как я писал. Т.е. кнопки bcd xyz start select напрямую не работают. В сеге тоже ведь 9 проводков на вывод. А может и меньше (не помню уж)
Дендевские джойстики перепаивать надо, отрубать чип, паять провода напрямую к контактным площадкам.

У Sega всё по-хитрому. Изначально была 8-битная Master System. Там на джойстике только стрелки и две кнопки. Поэтому был простой паралельный интерфейс, по проводу на кнопку. Пинаут вот: http://pinouts.ru/data/sega_ms_joy_pinout.shtml

Потом появилась 16-битная Genesis. У неё было 4 кнопки - A B C Start, и стрелки. Её сделали совместимой с Master System, т.е. если воткнуть такой джойстик в MS, он будет работать - разумеется, только две кнопки из 4-х. Остальные кнопки в Genesis выбирались уровнем на новой линии Select. Вот так: http://pinouts.ru/data/genesiscontroller_pinout.shtml

Ещё позже появился вариант Genesis'а - Megadrive. У него помимо стрелок было 8 кнопок - A B C X Y Z Start Mode. Поэтому добавили ещё одну линию Select (пинаут не нашёл сейчас, но можно найти, если приспичит).

Соответственно для ZX можно поддержать только две стандартных кнопки, и ничего в джойстике и контроллере перековыривать не придётся.

random
11.04.2005, 12:17
3) RS232 - поддержка внешнего модема с адресацией по Кондратьеву.

Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.

Возможно для "кондратьевского" модема они и не использовались, я точно не знаю. тем не менее, считаю что без этих сигналов произойдет следующее:

1. работа внешних модемов будет нестабильной.
2. передачи будут прерываться.
3. софт толковый не написать.

caro
11.04.2005, 12:56
Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.

Возможно для "кондратьевского" модема они и не использовались, я точно не знаю. тем не менее, считаю что без этих сигналов произойдет следующее:

1. работа внешних модемов будет нестабильной.
2. передачи будут прерываться.
3. софт толковый не написать.На приеме в контроллере происходит буферирование входного потока данных.
Размер буфера 128 байт, что при опросе контроллера по прерываниям с частотой 50 герц,
обеспечивает максимальную скорость принимаемых данных:
BPS = 128*50 = 6400 байт в секунду.
Проверено, прекрасно работает даже с USR Courier V.Everything.
Коннект на моей телефонной линии доходит до 50 кбит в секунду (порядка 5 - 6 кбайт в секунду).
Вопрос ожидал, думал будет раньше :)

CHRV
11.04.2005, 13:06
На приеме в контроллере происходит буферирование входного потока данных.
Размер буфера 128 байт, что при опросе контроллера по прерываниям с частотой 50 герц,
обеспечивает максимальную скорость принимаемых данных:
BPS = 128*50 = 6400 байт в секунду.
Проверено, прекрасно работает даже с USR Courier V.Everything.
Коннект на моей телефонной линии доходит до 50 кбит в секунду (порядка 5 - 6 кбайт в секунду).
Вопрос ожидал, думал будет раньше :)
Я так понимаю вопрос задается с точки зрения работы по нуль-модему типа ПЦ-СПЕК, СПЕК-СПЕК и тогдалее, там скорости поболе будут :)

caro
11.04.2005, 13:17
Я так понимаю вопрос задается с точки зрения работы по нуль-модему типа ПЦ-СПЕК, СПЕК-СПЕК и тогдалее, там скорости поболе будут :)Для этого существуют команды установки скорости работы RS232.
А для синхронизации работы протокол XON/XOFF.

random
11.04.2005, 13:31
совершенно верно, меня наиболее интересует связь спектрумов между собой и ПЦ. а без DSR, CTS программу для поддержки таких связок написать гораздо сложнее.

тем не менее, даже с модемом по телефонной линии... что делать без RI? как компьютер узнает что кто-то звонит на модем? а если программа не только принимает/посылает данные? если программе необходимо что-то свое делать, да при отключенных прерываниях?

Неужели сложно сделать ПОЛНУЮ поддержку формата, тем более что бОльшая часть уже сделана? Зачем перекладывать решение вопросов с железа на каждую программу использующую модем?

Убедительно прошу поддержать стандарт RS232 полностью. Если есть какие-то проблемы с реализацией его, давайте обсудим. Но писать "у меня работает и без них, нафига они нужны" в разработке железа все таки не стоит.

caro
11.04.2005, 13:38
Убедительно прошу поддержать стандарт RS232 полностью.Подумаю.

spensor
16.04.2005, 14:13
Есть идея, что еще можно "повесить" на контроллер. Поскольку в схему введен таймер и устройство обработки информации (AVR) предлагаю зарезервировать возможность управления питанием от таймера. Потребность возможно и не велика, но в перспективе не исключено что окажется востребованой.

jtn
17.04.2005, 00:20
Есть идея, что еще можно "повесить" на контроллер. Поскольку в схему введен таймер и устройство обработки информации (AVR) предлагаю зарезервировать возможность управления питанием от таймера. Потребность возможно и не велика, но в перспективе не исключено что окажется востребованой.
точно-точно, завести туда узел управлением ATX БП

Ronin
17.04.2005, 21:29
точно-точно, завести туда узел управлением ATX БП
и кнопки power/sleep на пц клаве заюзать ;)

bpm
22.04.2005, 13:16
Если хочется совсем удобно - имеет смысл оставлять рядом с разъемами площадки для пайки или ставить разъемы как под джамперы на пц.

Во, самое оно. Сами разъемы на плату можно не паять. Вставляем плату в слот (или елку), наружу цепляем выкидыши. Пеньков и разъемов для них на старых мультяхах у меня лично хватает.

С другой стороны если на плате уже будут разъемы, то никто не помешает мне их выпаять, вынести на корпус и добавить удлиннитель. Но первое имхо удобнее. По крайней мере для ZS/Kay

Ronin
05.05.2005, 14:08
а как насчет скролл-колеса на мыше :)
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)

AlexCrush
05.05.2005, 19:09
а как насчет скролл-колеса на мыше :)
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)

Чисто технологически это не сложно - в протоколе обмена с мышкой вначале отсылается мышке дополнительное указание о необходимости работы колесика (хитрый порядок смены частоты передаваемых данных) и после этого она начинает слать пакетики не по 3 байта а по 4 - уже с инфой о колесе

Ronin
12.05.2005, 17:17
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)

имеются ввиду порты кемпстон-мыши ессно.
в каком-то DonNews (16 или около того) была статья (и поддержка листалкой), и на paradox-е такую мышу показывали.

icebear
13.06.2005, 15:49
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?

lvd
13.06.2005, 15:56
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?

Я конечно не Камиль, но порекомендую вот это:
http://john.ccac.rwth-aachen.de:8000/as/

Этот асм понимает туеву хучу различных процессоров: z80, 6502, pic16, pic18, avr, 68k... и ещё сотни других.

caro
13.06.2005, 16:52
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?AVR-ская бесплатная ASTUDIO.

Ewgeny7
08.07.2005, 00:36
Очень рекомендую для этих целей Algorithm Builder.
Визуальное построение алгоритма на ассемблере - такого я еще не видел :)
Фришная версия работает прекрасно, ограничений не обнаружено :p

Yaroslav
08.07.2005, 05:21
Очень рекомендую для этих целей Algorithm Builder.
Визуальное построение алгоритма на ассемблере - такого я еще не видел :)
Фришная версия работает прекрасно, ограничений не обнаружено :p
А как же ограничение в 1Кб кода.

SfS
08.07.2005, 07:44
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?

Я не Камиль, но вставлю 5 копеек :)

Лично я использую AVR-GCC. Очень удобно тем, что бесплатно, стандартно и никаких тебе "ограничений на 1Кб", кряков и прочей байды.

Вообще - если интересует работа с AVR-контроллерами - то прошу сюда:
http://www.nedopc.org/forum/
В раздел AVR.

Кстати (порекламирую немножко, да простят меня модераторы) - во втором номере журнала NedoPC, насколько мне известно, будет довольно объемный материал по железу и программированию AVR-контроллеров. Рекомендую обратится к этому изданию.

spensor
08.07.2005, 08:58
во втором номере журнала NedoPC
А, где первый искать?

SfS
08.07.2005, 09:02
А, где первый искать?

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

Ne01eX
12.07.2005, 14:49
Господа, возможно я это где-то просмотрел - какова максимальная скорость передачи по RS-232 случае ее реализации на MAXIMовской серии? В даташит носом сувать не надо, я сам :). Со стороны спека есть какие-либо ограничения?

spensor
12.07.2005, 15:08
Можно конкретизировать вопрос? Имеется в виду макс. скорость для MAX232 или контроллера by Caro? У MAX232 по доке 115,2 КБод, но наверное и 4МБод потянет. С контроллером это только Caro поможет, так как скорость напрямую зависит от реализации. Но поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод. Поскольку в приблизительном пересчете это 10 КБ/с, сам Спектрум это не должно сильно напрягать.

caro
12.07.2005, 15:15
Господа, возможно я это где-то просмотрел - какова максимальная скорость передачи по RS-232 случае ее реализации на MAXIMовской серии? В даташит носом сувать не надо, я сам :). Со стороны спека есть какие-либо ограничения?Похоже вопрос поставлен не корректно.
1) Видимо имеется ввиду не максимальная скорость, которую обеспечивают преобразователи уровня фирмы MAXIM (и других фирм, которые делают аналоги).
Обычное значение для них - не менее 200 кбит в секунду.
2) Если имеется ввиду реализация программного RS232 на самом Спектруме, то в ПЗУ 128-ой версии зашита процедура, обеспечивающая скорость до 9600 бод.
В чешской версии стека TCP/IP реализован программный RS232 со скоростью 36600, так что и это возможно.
3) Для внешних контроллеров RS232 ограничение скорости определяется скоростью обработки Спектрумом входного потока данных и способом опроса готовности данных (программно или по прерываниям).
В контроллере на AT90S2313 и в ZX_Multi_Card предусмотрен буфер для данных на приеме обьемом порядка 120 байт, что даже при опросе по прерываниям от системного таймера (50 раз в секунду) дает возможность работать со скоростью до 50*120=6000 байт/секунду.
Тоесть принципиально можно работать и на скорости 57600 бод.

ilyaspb
13.07.2005, 01:53
подскажите по каким аресам доступны СОМ порт и часы

caro
13.07.2005, 07:41
.. поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод. Поскольку в приблизительном пересчете это 10 КБ/с, сам Спектрум это не должно сильно напрягать.Да нет напрягает, надо же заниматься и обработкой этих данных.
В простейшем случае хотя бы выводить на экран, а это как сами понимаете делается не мгновенно :)

Ne01eX
13.07.2005, 08:31
В контроллере на AT90S2313 и в ZX_Multi_Card предусмотрен буфер для данных на приеме обьемом порядка 120 байт, что даже при опросе по прерываниям от системного таймера (50 раз в секунду) дает возможность работать со скоростью до 50*120=6000 байт/секунду.
Тоесть принципиально можно работать и на скорости 57600 бод.


Но поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод.

Мгм... Разногласие в стане, тов. разработчики. Ладно 57600 это тоже немало, хотя 115.2 кБит было бы лучше. Если на вскидку сказать, то что в первую очередь ограничивает скорость работы порта RS-232, тов. Каримов? В ZX-MultiCard, естественно?

caro
13.07.2005, 09:03
Мгм... Разногласие в стане, тов. разработчики. Ладно 57600 это тоже немало, хотя 115.2 кБит было бы лучше. Если на вскидку сказать, то что в первую очередь ограничивает скорость работы порта RS-232, тов. Каримов? В ZX-MultiCard, естественно?ZX-MultiCard запросто работает и со скоростью 115200 и это предусмотрено в настройках.
А вот для Спектрума скорость обработки, как я уже это отметил, будет зависить от того, что с этими данными будет делать приложение и как оно будет отслеживать прием потока данных.
В общем работайте на скорости 115200, но не забывайте о квитировании сигналами RTS/CTS :)

spensor
14.07.2005, 15:06
ZX-MultiCard запросто работает и со скоростью 115200 и это предусмотрено в настройках.
А вот для Спектрума скорость обработки, как я уже это отметил, будет зависить от того, что с этими данными будет делать приложение и как оно будет отслеживать прием потока данных.
В общем работайте на скорости 115200, но не забывайте о квитировании сигналами RTS/CTS :)
Вопрос такой - какова потенциально возможная скорость приемопередачи в данной схеме? Как можно предположить, предельная скорость будет определяться тактовой частотой AVR (Fuart=Fclk/16) и задержками на обработку инфы ядром AVR. Так вот, какова задержка на обработку инфы и потенциальная результирующая скорость по COM-порту. Про программую совместимость с кондратьевской схемой и обработкой по INT пока не говорим.

Ne01eX
18.07.2005, 11:13
Вопрос такой - литиевой батарейки на 3.3 В разве хватит? Ага, если верить даташиту, то минимальное рабочее напряжение микросхемы 2.5 В. С учетом падения на диоде, получается 0.2 запаса. Как долго без питания часы живут? Или может быть диоды особенные?

caro
18.07.2005, 11:22
Вопрос такой - литиевой батарейки на 3.3 В разве хватит? Ага, если верить даташиту, то минимальное рабочее напряжение микросхемы 2.5 В. С учетом падения на диоде, получается 0.2 запаса. Как долго без питания часы живут? Или может быть диоды особенные?Если внимательно посмотреть даташит, то написано: при не активном I2C, что подразумевает работу часов в режиме хранения, рабочее напряжение от 1в до 6в.
А совсем без питания часы естественно сразу останавливаются :)
Диоды обычные, например КД522.

spensor
18.07.2005, 11:53
С учетом падения на диоде, получается 0.2 запаса.
Если опасаешься прямого падением напряжения на кремниевых диодах (порядка 0.7-0.8 В), используй диоды Шотки, у них Vf=0.25-0.3 В. Наиболее широко распространен и известен 1N5817. Можно также использовать другие 1N581x.

Ne01eX
18.07.2005, 12:11
Ага, спасибо с диодами и батарейкой разобрался :) .

Еще такой вопрос к тов. Камилю - больше доработок/наворотов (относительно схемы первого поста) в контроллер не делалось?

caro
18.07.2005, 12:16
... больше доработок/наворотов (относительно схемы первого поста) в контроллер не делалось?Пока нет.

Ne01eX
18.07.2005, 12:17
Угу, спасибо, понятно.

Ne01eX
20.07.2005, 07:11
Камиль, разжуйте пожалуйста поподробнее что за разъемы X3, X5 и их возможное конструктивное исполнение. X2, если конечно я не ошибаюсь - слотовоелочный разъем ZX-BUS?

caro
20.07.2005, 08:41
разжуйте пожалуйста поподробнее что за разъемы X3, X5 и их возможное конструктивное исполнение.X3 и X5 на самом деле один 40-контактный разьем типа PLD-40 (как на винчестерах).

X2, если конечно я не ошибаюсь - слотовоелочный разъем ZX-BUS?Он самый.

Ne01eX
20.07.2005, 09:58
X3 и X5 на самом деле один 40-контактный разьем типа PLD-40 (как на винчестерах).

То есть это тоже ZX-BUS?

caro
20.07.2005, 10:03
То есть это тоже ZX-BUS?Да, укороченный под 40-жильный шлейф.
У себя в Кворуме мне так удобно цеплять дополнительные примочки.

Yaroslav
06.09.2005, 09:53
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!

Боюсь уже не актуально,но всё таки.
Статья по этому поводу

Ewgeny7
17.09.2005, 03:08
Странно как-то... Никто не спрашивает "а как я могу изменить раскладку кнопок?". Прям такое очучение, что этот девайс делал только я один :(
Ну ладно, будем ждать пока кто-нибудь спросит. А сам спросить - стесняюсь... Поэтому - не буду... :rolleyes:

caro
17.09.2005, 08:06
а как я могу изменить раскладку кнопок?.1. Если не устраивает заложенная по умолчанию - чем?
2) Изменить очень легко, каждому скан-коду IBM в таблице перекодировки назначается код Спектрума.
Исходный текст таблицы перекодировки см. ниже.
Я думаю прочтение исходника даст понятие принципа перекодировки.
В той прошивке, что лежит на форуме адрес начала таблицы = 53Eh
Это именно та таблица, что зашита в прошивке.

Ewgeny7
17.09.2005, 09:05
Никоим образом не хочется умалять достоинства оригинальной раскладки! :)
Просто я имею в распоряжении весьма необычную клавиатуру - она финская. И по месту производства, и по содержанию. Например, доп. кнопок у нее - больше, да и расположение знаков препинания далеко не всегда совпадает. Поэтому оптимизация раскладки нисколько не помешает.
Спасибо, что так оперативно откликнулись!

pbogdan
25.09.2005, 11:05
Возможно в схему ZX_Multi_Card встроить полнофункциональную поддержку шины I2C подкючить 24CXXx , PCF8574 - дополнительные порти ввода вывода , АЦП - Спектрум будет отображать информацию и сохранять на дисках .

caro
25.09.2005, 19:13
Возможно в схему ZX_Multi_Card встроить полнофункциональную поддержку шины I2C подкючить 24CXXx , PCF8574 - дополнительные порти ввода вывода , АЦП - Спектрум будет отображать информацию и сохранять на дисках .Да конечно, надо только решить вопрос с адресацией этих устройств со стороны спектрума.

James DiGreze
03.11.2005, 11:45
Есть еще один чисто технологический вопрос... Камиль, каким редактором принципиальных схем пользуетесь?

caro
03.11.2005, 12:02
... каким редактором принципиальных схем пользуетесь?Сейчас P-CAD.

James DiGreze
04.11.2005, 07:30
Плохо... Придется ручками перерисовывать схемку в Eagle. Но все равно Спасибо! Хочу развести печ. плату. Попробовать сей девайс в работе.

caro
04.11.2005, 07:45
... Хочу развести печ. плату. Попробовать сей девайс в работе.Ради одной штуки есть ли смысл делать печатную плату.
Я для отладки собрал на макетке - отлично работает.

James DiGreze
04.11.2005, 07:56
Может быть... Тогда встает вопрос о изготовлении переходника с kay'евского слота, допустим на 40-pin "гребенку".

Yaroslav
04.11.2005, 18:10
Может быть... Тогда встает вопрос о изготовлении переходника с kay'евского слота, допустим на 40-pin "гребенку".
Я делал плату в слот,мне не понравилось.Слишком много перемычек.
С переходником должно получше получится.

CHRV
04.11.2005, 18:26
Я делал плату в слот,мне не понравилось.Слишком много перемычек.
С переходником должно получше получится.
Переходник уменьшает надежность!
А что развести по нормальному не удалось?

Yaroslav
04.11.2005, 18:38
Переходник уменьшает надежность!
А что развести по нормальному не удалось?
Да я на скору руку делал,как следует разводку обсасывать времени не было.

caro
17.02.2006, 18:40
Получил 20 плат.
Одну собрал.
Завтра буду включать.

James DiGreze
17.02.2006, 19:10
Класс!
Жду с нетерпением результатов ;)

axor
17.02.2006, 21:28
Класс!
Жду с нетерпением результатов

А я жду 5 заказанных экземпляров :)

breeze
18.02.2006, 02:11
Получил 20 плат.
Одну собрал.
Завтра буду включать.

А сколько будет стоить? и как можно заказать ? :rolleyes:

Jukov
18.02.2006, 10:22
Камиль, как насчет того чтобы дабавить в контроллер кворумовскую клавиатуру. ИМХО лучше подключать дендивский джойстик, т.к. при этом появляется возможность легко переделать однокнопочный спековский джойстик в 4-кнопочный дендивский (у спековского 6 проводов, а у дендивского 5. У других же джойстиков количесвто проводов гораздо больше, что не позволяет использовать для соединения распространенный на спеках штекер СШ-5). Во-вторых в денди-джойстике аппаратно реализованы кнопки ТУРБО. А по цене девайс вообще вне конкуренции.

Eltaron
18.02.2006, 11:42
ИМХО лучше подключать дендивский джойстик, т.к. при этом появляется возможность легко переделать однокнопочный спековский джойстик в 4-кнопочный дендивский (у спековского 6 проводов, а у дендивского 5. У других же джойстиков количесвто проводов гораздо больше, что не позволяет использовать для соединения распространенный на спеках штекер СШ-5). Во-вторых в денди-джойстике аппаратно реализованы кнопки ТУРБО. А по цене девайс вообще вне конкуренции.
а имхо лучше все же сеговский
разьем у него - это не менее распространенный DBF-9(вилка выламывается с материнки(com-порт) или покупается в любых радиодеталях), кнопок больше(8, вместо 4 дендивских(обычные и турбо считаю за одну, ес-но))
да и удобней он, весь такой изогнутый :cool:
дендивский "параллелепипед" по эргономике вообще никакой :rolleyes:
минус, правда, в том, что контактов на него больше уйдет, параллельный все-таки..

Знахарь
18.02.2006, 12:09
Да в сеговском джойстике сила... :) только контроллер похоже нужен... или нет ?

Eltaron
18.02.2006, 12:19
Да в сеговском джойстике сила... :) только контроллер похоже нужен... или нет ?
тока если вдруг у меги не хватит ног и придется параллельный код переделывать в последовательный

у меня, кстати, по этой схеме не заработало, подключал по схеме, где все данные передаются по основному порту(2-9 пины LPT-разьема), робит на ура. Причем +5v никуда не подключал, до сих пор не пойму, как так :)

caro
19.02.2006, 15:23
Жду с нетерпением результатов ;)Новая плата с прошивкой, выложеной в первом посте этой темы работает без проблем.
Пока не обнаружил ни одной ошибки в трассировке.
Сейчас добавлю в прошивку поддержку RS232 и попробую подключить модем.

icebear
20.02.2006, 11:43
Новая плата с прошивкой, выложеной в первом посте этой темы работает без проблем.
Пока не обнаружил ни одной ошибки в трассировке.
Сейчас добавлю в прошивку поддержку RS232 и попробую подключить модем.

Камиль, под какую распиновку разведена плата? Судя по фотографии её просто вставляешь и всё и подозреваю, что вставляешь в Кворум, да?

caro
20.02.2006, 12:01
Камиль, под какую распиновку разведена плата?ZX-bus, в том виде, какой используется в основных моделях Спектрумов.
Шаг контактов 2.54 мм


Судя по фотографии её просто вставляешь и всё и подозреваю, что вставляешь в Кворум, да?Системный разьем в Кворумах выполнен в виде краевого разьема ZX-bus,
так как это сделано в фирменных Спектрумах.
Тоесть слотов для подключения нет.
Но я просто соединил два слотовых разьема друг с другом.
В результате через этот переходник подключал плату и к Кворуму и
к фирменному ZX-Spectrum 2+.

caro
01.03.2006, 10:42
А есть свободные на продажу?Если есть сколько стоит?Пока есть.
Стоимость самой платы получилась порядка 130 р.
(за изготовление 20 плат я заплатил чуть больше 2600 р.).
Пересылка по России сейчас стоит от 80 до 100р.
Кому надо пишите в личку, а лучше на e-mail: k2k(at)list.ru

Eltaron
03.03.2006, 12:20
немного оффтоп: а чем и как эти все поверхностные компоненты паять? я бы взял платку, но не знаю, реально ли напаять весь этот ужас ;) обычным совковым паяльником :)

do_se
03.03.2006, 13:12
немного оффтоп: а чем и как эти все поверхностные компоненты паять? я бы взял платку, но не знаю, реально ли напаять весь этот ужас обычным совковым паяльником

Ничего там ужасного нет. Шаг ножек 1,25 (1,27) мм прекрасно паяется, даже легче чем DIP с шагом ного 2,5 (2,54) мм...

caro
03.03.2006, 13:14
... реально ли напаять весь этот ужас ;) обычным совковым паяльником :)Паяльник с тонким жалом, не более чем на 25 ватт
(желательно с регулятором температуры, но не обязательно),
и все паяется на Ура.

caro
12.03.2006, 09:56
Тем кто заказал голые платы я их выслал сразу (пока 4 шт).
А вот с собранными (их заказано 7 шт.) я пока повременил
отправлять, поскольку хотел до некоторого логического конца
решить вопрос с прошивкой.
Вчера наконец дожил до этого конца :).
Поскольку у платы очень высокий потенциал, я не могу сразу
написать окончательный вариант, на котором можно было бы
поставить точку.
Сейчас сделана прошивка (версия 1.1), которая поддерживает:
1) PS/2 клавиатуру;
2) PS/2 мышку по стандарту Кэмпстон-маус (с поддержкой колеса);
3) порт RS232 и модем по схеме Кондратьева;
4) часы реального времени с доступом пока по своему
стандарту (не по Gluk :)).
Все это дело занимает в памяти 2.5 кбайт из 8 доступных.

В результате я решил встроить в микроконтроллер начальный
загрузчик, который позволит любому пользователю перешить
программу, подключив контроллер к любой IBM-ке через
нуль-модемный кабель к COM-порту.
Начальный загрузчик имеет обьем всего около 500 байт и
зашивается в область BOOTRST микроконтроллера.
Для инициализации загрузчика используется один свободный
бит порта E (вывод 29). Установка 0 на этом входе при
включении питания запускает загрузчик, иначе запускается
основная программа контроллера.
Для программирования используется AVRProg из состава ASTUDIO -
бесплатного пакета разработчика для AVR-контроллеров.
В дальнейшем предполагаю сделать вариант загрузчика,
который позволит загружать прошивку и прямо на Спектруме.
Думаю это актуально для модификации раскладки клавиатуры.

Zerios
12.03.2006, 12:39
А заказы ещё принимаются ?
Я бы тоже не отказался...
Можно это оформить ? и как ?
Хотелось бы собраную плату.

caro
14.03.2006, 12:32
В результате сборки и отладки первых экземпляров ZX_MCard пришлось немного доработать схему.
Окончательный вариант выложен взамен старого в первом посте этой темы.
Доработка касается в основном часов реального времени (RTC).
1) Запаять конденсатор емкостью 6.8 пФ между входом подключения кварца
и питанием микросхемы RTC, иначе кварц работает на повышенной частоте.
2) Поставить подтягивающие резисторы по 10 кОм, на линиях данных и тактовой частоты интерфейса i2c.
3) Вход A0 (вывод 3 RTC) заземлить (вывод 4 RTC).

4) Для того, что бы использовать стандартные шнурки для подключения COM-портов
от IBM-ских материнских плат, желательно исправить разводку выводов MAX232 к разьему X2.
В принципе можно обойтись и без этого, распаяв подключение DB9M, как показано на схеме.

PS. В первом посте еще добавил начальный загрузчик, который позволяет перепрограммировать
ATMEGA8515 не вынимая из панельки, подключив карту к COM-порту IBM-ки НУЛЬ-модемным кабелем.

caro
18.03.2006, 08:41
Обновил версию начального загрузчика ZX_MCard (см. пост 1.)
Теперь его можно будет вызывать нажатием клавиш ALT+Pause не выключая компьютер.
Естественно это работает, если текущая прошивка нормально поддерживает работу клавиатуры.
Для принудительного запуска начального загрузчика как и в старой версии, необходимо
установить перемычку между 1 и 2 контактами X5 (подать землю на вывод 29 ATMega8515).

caro
21.03.2006, 14:15
У Мультикарты появилась новая функция:
Надоело мне в процессе отладки набирать с клавиатуры тестовые процедурки
для проверки отдельных узлов мультикарты.
У нее же все равно "мозгов" достаточно, да и ресурсы не исчерпаны.
Вот и заставил я ее саму набирать эти тексты.
Теперь клавиши ALT на IBM-ской клавиатуре при нажатии с любой другой клавишей
вызывают на исполнение "клавиатурный скрипт" представляющий собой последовательность
нажатых клавиш.
Довольно забавно выглядит на экране :) .
Скрипты могут размещатся в EEPROM (обьем 512 байт)
и в свободной зоне программ (пока доступно 2 кбайта).
Кроме вызываемых по горячим клавишам скриптов, предполагается еще задавать их по:
1) включению питания;
2) по RESET
3) по NMI
Это позволит хранить в контроллере например начальный загрузчик, для работы
с карточкой SD или MMC, которую уже сейчас можно подключить к свободному пока интерфейсу SPI.

caro
21.03.2006, 16:18
Обновил версию начального загрузчика (см. 1 пост).

James DiGreze
21.03.2006, 19:18
Это позволит хранить в контроллере например начальный загрузчик, для работы с карточкой SD или MMC, которую уже сейчас можно подключить к свободному пока интерфейсу SPI.
Для работы с SD/MMC картой требуется некий порт (со стороны z80), запись в который должно инициировать обмен по SPI, а чтение из этого порта должно отдавать полученный результат. А также потребуется еще и некий флаг окончания обмена. При обмене одной ногой AVR нужно еще делать "селекцию" низким уровнем, говоря карточке о начале обмена. Чуток позже выложу нужные диаграммы...
В общем, собственно говоря, вопрос стоит в том, а можно ли организовать этот порт и порт флага (последний можно совместить с чем-либо еще)?

caro
21.03.2006, 21:39
..... собственно говоря, вопрос стоит в том, а можно ли организовать этот порт и порт флага (последний можно совместить с чем-либо еще)?Если внимательно посмотреть на схему карты, то видно, что ей доступны
кроме 256 клавиатурных портов (**FEh), 256 портов модемных (**EFh)
и 256 портов мышиных (**DFh).
Причем это полноценные порты ВВОДА/ВЫВОДА, тоесть могут работать
и на чтение и на запись.
Так что с портами никакого напряга нет.
Для работы часов например, выделено адресное пространство от 0E0EFh
до 0EFEFh (16 портов чтения/записи).

fk0
24.03.2006, 14:12
Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.


DCD -- carrier detect
DSR -- готовность модема

не особо и нужны. но при работе /именно с модемом/ нужны. потому как
модем может быть действительно не готов, и непонятно как (кроме как по строке CONNECT) определять наличие, а главное пропадание несущей.

CTS -- вот это проблема.

fk0
24.03.2006, 14:17
Для этого существуют команды установки скорости работы RS232.
А для синхронизации работы протокол XON/XOFF.

Команды установки скорости предполагают установку исключительно МАКСИМАЛЬНОЙ скорости...

XON/XOFF работает только в направлении потока данных спектрум->пц. в обратном
пц может не успеть среагировать. XON/XOFF вносит бОльшие задержки в процесс
передачи данных. XON/XOFF не может быть использован только в одном направлении
(в то время, как в другом, например, RTS/CTS) (т.е. может, но это хакерство).

XON/XOFF -- это НЕ ПОЛНОСТЬЮ 8-bit ПРОЗРАЧНЫЙ протокол. Он не позволяет,
например, использовать X-modem (а это может быть, или Y-modem, работать по-быстрей
Z-modem'а ввиду его крайней простоты).

fk0
24.03.2006, 14:24
AVR-ская бесплатная ASTUDIO.

AVRA для всего мелкого и GCC для всего большого.

caro
27.03.2006, 11:51
... CTS -- вот это проблема.Согласен, для синхронной работы на высоких скоростях обязательно наличие режима CTS/RTS.
Такой режим в карте предусмотрен.
Вчера попробовал погонять файлы с IBM на Спектрум и наоборот по нуль-модемному кабелю.
На Спектруме работал в Melon v1.90i, на IBM - TeraTerm.
К сожалению в Melone максимальная скорость 57600 бод.
Поэтому не удалось опробовать максимальную скорость 115200.
На скорости 57600 все работает без проблем.

caro
02.04.2006, 19:59
В результате эксперимента с подключение ZX_MCard к Скорпиону выяснилось, что совместная ее работа со SMUC невозможна.
Дело оказалось в конфликте портов, которое в принципе лечится, но доработкой либо карты, либо Скорпиона.
Так что если кто в Питере желает все таки иметь ZX_MCard, обращайтесь к Николаю Амосову, он решил, что она ему ни к чему.
--- cut -----
Ну вообщем произошло то, чего я больше всего боялся - ни один новый
девайс не работает со Скорпионом. Так было в случае с TurboSoundFM, а
вот теперь в ZXMC.
"Издеваться" над компьютером я не буду, а ZXMC попробую продать.

У меня к Вам просьба - если к Вам обратится кто-нибудь из Питера на
предмет покупки карты ZXMC отошлите его пожалуйста ко мне.
--- cut ----

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


PS. Николай пока решил оставить у себя.

Ronin
03.04.2006, 09:21
Так было в случае с TurboSoundFM
а TSFM тут причем ? там никаких новых портов нет, все стандартное AY-шное. Ну разве что дурь с теневиком какая...

CHRV
03.04.2006, 10:21
а TSFM тут причем ? там никаких новых портов нет, все стандартное AY-шное. Ну разве что дурь с теневиком какая...
Вить, я об этом писал в теме по ТФМ. Смотри.

caro
04.04.2006, 17:15
Выложил новую версию прошивки для ZXMC - версия 1.2
(см. пост 1)
Клавиатура, мышка, RS232, часы.

PS. Для самостоятельно собравших, предупреждаю о необходимости
подтягивающих резисторов на шине i2c даже при отсутствии часов.

Orionsoft
08.04.2006, 04:15
Что надо проделать для совместимости со [скорпионом&smuc&GS] ?

caro
08.04.2006, 08:29
Что надо проделать для совместимости со [скорпионом&smuc&GS] ?
К сожалению действительно возникла проблема совместимости ZXMC со Скорпионом + SMUC.
-- cut ---

>> НА> 2. Не желает работать одновременно со SMUC - теневой монитор не видит
>> НА> SMUC при установленной ZXMC.
>> Посмотрел файл с оаписанием портов SMUC. Не удивительно, что есть
>> конфликт. Для решения проблемы можно использовать прием, который
>> используется в KAY-ях. SMUC надо сделать белее приоритетным по адресации
>> чем ZXMC. Тоесть сигнал /IORQE от SMUC должен блокировать сигнал
>> /IORQ для ZXMC. Простая логическая схема - применена в схеме KAY.

НА> Ну KAY ладно, а мне то что делать? Программно это не решается?

Посмотрел схемы и описания портов SMUC.
Для нормального функционирования SMUC с ZXMC придется сделать в
последней полную дешифрацию портов. Для этого надо добавить один
корпус ЛА1 или ЛИ1. Я у себя сделал бы это запросто, приклеив на плату
небольшой кусочек печатного шаблона с припаяным корпусом ЛА1 или ЛИ1
Сможешь сам это сделать?


Надо на плате перерезать проводник который идет от шины
ZX_BUS вывод B10 (это адрес A1) к 5 выводу элемента
DD2:2 (ЛИ1). В этот разрыв надо вставить такую схему:


на ЛА1
------
___ ___
B10(A1) ___9_| | _1_| |
B11(A2) __10_| | |_2_| |
B12(A3) __12_| | |_4_| |
B22(A6) __13_| | 8 | 5 | | 6
| o-----+---| o------ к выводу 5 DD2:2
|___| |___|
ЛА1 ЛА1

на ЛИ1
------
___
B10(A1) ___1_|& |3
B11(A2) ___2_| |---+
|___| |
___ | ___
B12(A3) __12_|& |11 |_4_|& |6
B22(A6) __13_| |_____5_| |------ к выводу 5 DD2:2
|___| |___|
ЛИ1 ЛИ1

Таким образом ZXMC будет работать только при единичных уровнях на
A1,A2,A3,A6,A7, что должно исключить конфликт с портами SMUC.

Orionsoft
08.04.2006, 15:59
понятно,конфликт с портами smuc ,приделаем мелкосхемку вторым этажом , это нам невпервой ...

Пасибо за инфу ! :v2_cheer:

Mike
12.04.2006, 16:15
В результате эксперимента с подключение ZX_MCard к Скорпиону выяснилось, что совместная ее работа со SMUC невозможна.
Дело оказалось в конфликте портов, которое в принципе лечится, но доработкой либо карты, либо Скорпиона.
Так что если кто в Питере желает все таки иметь ZX_MCard, обращайтесь к Николаю Амосову, он решил, что она ему ни к чему.
--- cut -----
Ну вообщем произошло то, чего я больше всего боялся - ни один новый
девайс не работает со Скорпионом. Так было в случае с TurboSoundFM, а
вот теперь в ZXMC.
"Издеваться" над компьютером я не буду, а ZXMC попробую продать.

У меня к Вам просьба - если к Вам обратится кто-нибудь из Питера на
предмет покупки карты ZXMC отошлите его пожалуйста ко мне.
--- cut ----

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


PS. Николай пока решил оставить у себя.

Не подскажите, как связатся с Николаем Амосовым ?
Какова цена новой готовой карты ?

caro
15.04.2006, 15:13
Версия прошивки для ZXMC 1.3 от 15.04.06

Относительно предыдущей версии в ней зашит
мини-терминал - TinyTerm.

Загрузка скрипта по клавишам ALT+F3.

Работает как терминальная программа через
порт RS232 карты. Скорость установлена
по умолчанию 19200.

Горячие клавиши:
SS+Q - выход в Basic;
SS+E - очистка экрана;
CS+3 - запуск загруженной программы;
CS+4 - загрузка по протоколу XMODEM.

Загрузка программы по CS+4, начиная с
адреса 8000h (32768).
При успешной загрузке, по клавише CS+3
производится запуск программы.
Если загрузки не было или она закончилась
ошибкой, при попытке запуска программы
выдается сообщение 'No file'.

caro
17.04.2006, 12:14
Для работы с картами SD и MMC собрал небольшую "дочку" для ZXMC.

James DiGreze
22.04.2006, 11:19
Выкладываю на всеобщее обозрение небольшой мануал в формате RTF с описанием интерфейса RS232, входящего в состав ZX MultiCard.
К сожалению, пока без примеров...

caro
22.04.2006, 11:32
Выкладываю на всеобщее обозрение небольшой мануал в формате RTF с описанием интерфейса RS232, входящего в состав ZX MultiCard.
К сожалению, пока без примеров...Примером программирования может служить исходник TinyTerm, выложенный в первом посте этой темы.

caro
25.04.2006, 16:31
Добавил на дочернюю плату для ZXMC пару EEPROM
с интерфейсом I2C (по 64 Кбайт каждая).
Идея в том, чтоб операционку хранить в несьемном
носителе, которым и будет эта память.
Файловую систему здесь можно иметь упрощенную,
например как в CP/M.
Карточки SD/MMC играют роль сьемного устройства
с файловой системой совместимой с IBM.

DVS
26.04.2006, 09:13
Добавил на дочернюю плату для ZXMC пару EEPROM
с интерфейсом I2C (по 64 Кбайт каждая).
Идея в том, чтоб операционку хранить в несьемном
носителе, которым и будет эта память.
Файловую систему здесь можно иметь упрощенную,
например как в CP/M.


Эта ОС будет самопрошиваться в некоторую область MCU?
Какие у неё планируются функции?

caro
26.04.2006, 09:29
Эта ОС будет самопрошиваться в некоторую область MCU?Для хранения ОС в MCU неоходимо по крайней мере 16 кбайт свободной памяти.
К сожалению на сегодняшний день у ATMEL нет контроллера, совместимого
по ножкам c ATMega8515 с обьемом памяти больше 16 кбайт (16 килобайт у ATMega162).
Маловато будет :)
Прошиваться ОС будет в дополнительные EEPROM, которые я поставил на дочернюю плату.

Какие у неё планируются функции?Для начала адаптирую ZXCPM.
Нормальная ОС со всеми функциями присущими таковым.
Добавлю поддержку FAT16 для работы с карточками SD/MMC

DVS
26.04.2006, 09:53
Прошиваться ОС будет в дополнительные EEPROM, которые я поставил на дочернюю плату.


Мне просто не понятно, как будет выполняться код подпрограмм зашитых в EEPROM, вот я и подумал, что этот код будет перебрасываться в память программ MCU. А как иначе?

caro
26.04.2006, 11:52
Мне просто не понятно, как будет выполняться код подпрограмм зашитых в EEPROM, вот я и подумал, что этот код будет перебрасываться в память программ MCU. А как иначе?Имеется ввиду ОС для Спектрума, а не для карты :)

DVS
26.04.2006, 12:05
Ааа... понятно. А то я думал, что будет что-то аля AVR-OS от nedoPC.

ASDT
27.04.2006, 08:57
"Имеется ввиду ОС для Спектрума"
когда я планировал приделать контроллер, то предполагалась
загрузка "биоса" из контроллера на zx... Но это надо глубже
лезть в схему ...

caro
27.04.2006, 10:08
когда я планировал приделать контроллер, то предполагалась
загрузка "биоса" из контроллера на zx... Но это надо глубже
лезть в схему ...Не надо никуда лезть.
В ZXMC реализована поддержка "клавиатурных скриптов".
Довольно забавно выглядит:
1) в начале автоматически вводится Basic загрузчик;
2) автоматически выполняется команда RUN;
3) из памяти контроллера в память Спектрума перебрасывается кодовый блок;
4) выполняется запуск кодового блока.
Сейчас так по нажатию ALT+F3 происходит загрузка TinyTerm,
который в ПЗУ Меги занимает около 600 байт.
Точно также будет происходить загрузка ОС, только
читаться она будет либо из EEPROM, либо с карточки SD/MMC

ASDT
27.04.2006, 10:16
"вводится Basic загрузчик" Я предполагал полный отказ от ПЗУ.

caro
27.04.2006, 10:19
"вводится Basic загрузчик" Я предполагал полный отказ от ПЗУ.ZXMC разработана с расчетом подключения к любой Спектрум-совместимой машине.
Причем основное требование - никаких перепрошивок ПЗУ.
Отсюда и такой способ управления - через клавиатуру :)

axor
27.04.2006, 21:48
ZXMC разработана с расчетом подключения к любой Спектрум-совместимой машине.
Причем основное требование - никаких перепрошивок ПЗУ.
Отсюда и такой способ управления - через клавиатуру :)
Все здорово!
Нужно бы подарить карточку Димке Быстрову, чтобы скорее началась программная поддержка :)

DVS
28.04.2006, 10:53
1) в начале автоматически вводится Basic загрузчик;

Как? :v2_conf2:

DVS
28.04.2006, 10:59
Ось будет грузиться в нижнее ОЗУ (ПЗУ выключается и включаются страницы ОЗУ)?

caro
28.04.2006, 11:48
Как? :v2_conf2:При нажатии "горячей клавиши" ALT+F3 в контроллере отрабатывается
процедура исполнения "клавиатурного скрипта".
Он представляет из себя массив, содержащий скан-коды Спектрумовской клавиатуры.
Тоесть процедура иммитирует нажатие клавиш, тем самым и вводится нужный
для исполнения BASIC-загрузчик.
Вот как это выглядит в исходнике:



script_04:
; Задать адрес загружаемого кодового сегмента
DB SET_CS ;Установить адрес кодового скрипта
DB LOW ADR_S1,HIGH ADR_S1 ;адрес кодового скрипта
DB LOW LEN_S1,HIGH LEN_S1 ;длина кодового скрипта
; 1 CLEAR 24831 (6100h-1)
DB K1,KX,K2,K4,K8,K3,K1,KCR
; 2 LET a=24832 (6100h)
DB K2,KL,KA,EQV,K2,K4,K8,K3,K2,KCR
script_as: ;Читать из памяти ASM-script
; 6 LET r=a
DB K6,KL,KR,EQV,KA,KCR
; 7 IF IN 55791 = 0 THEN RANDOMIZE USR r
DB K7,KU,EXT,SS+KI,K5,K5,K7,K9,K1,EQV,K0,SS+KG,KT,EXT ,KL,KR,KCR
; 8 PRINT AT 0,0; a-r;
DB K8,KP,SS+KI,K0,ZPT,K0,TZP,KA,MNS,KR,TZP,KCR
; 9 POKE a,IN 55535: LET a=a+1: GOTO 7
DB K9,KO,KA,ZPT,EXT,SS+KI,K5,K5,K5,K3,K5,DVT,KL,KA,EQ V,KA,PLS,K1,DVT,KG,K7,KCR
; RUN
DB KR,KCR
DB 0FFh ;конец скрипта

Здесь скан-коды обозначены их мнемоникой.

caro
28.04.2006, 11:54
Ось будет грузиться в нижнее ОЗУ (ПЗУ выключается и включаются страницы ОЗУ)?Если бы у всех моделей Спектрумов был стандартизован способ включения
ОЗУ вместо ПЗУ, так бы и сделал.
Но мало того, что существует несколько вариантов управления 0-ой страницей памяти,
есть модели, и таких большинство, у которых это вообще не предусмотрено.
Так что приходится ориентироваться на большинство.
Я уже представлял в форуме свою версию ОС под названием ZXCPM,
которая отличается от стандартной смещением области ОЗУ на 6000h.
Вот и хочу для начала адаптировать ее для работы с ZXMC.

caro
02.05.2006, 14:53
Немного поправил прошивку.

1) При выходе из TinyTerm в BASIC не очищается ОЗУ.
В терминалку можно вернуться по команде RUN 9
2) Для ускорения переделан начальный загрузчик TinyTerm.
Теперь BASIC-загрузчик читает в память Спектрума только
первые 15 байт программы, которые и догружают остальной код.

rasmer
28.08.2006, 19:04
Люди, может я плохо просматривал все6 сообщения в данной теме, но где ссылки на схемы и прошивки данного девайса, или их уже засекретили...

shurik-ua
05.09.2006, 13:09
Люди, может я плохо просматривал все6 сообщения в данной теме, но где ссылки на схемы и прошивки данного девайса, или их уже засекретили...

А сцылок нету, непорядок.

Syntal
06.09.2006, 15:37
А сцылок нету, непорядок.

Кстати да, нет ссылок, в первом посте ничего! Или информацию уже засекретили? :v2_biggr:

Ewgeny7
03.10.2006, 12:34
В ближайшие дни выложу ссылку.
И гиде мопассан?

Evgeny Muchkin
11.10.2006, 22:45
caro, как продвигается дело с внедрением возможности регулировки скорости мышки?

AHAHACbI
12.10.2006, 15:44
Я не понял, а где схема то сей мультикарты или где посмотреть можно? или только на заказ?

caro
12.10.2006, 16:03
Я не понял, а где схема то сей мультикарты или где посмотреть можно? или только на заказ?Смотри http://zx.pk.ru/showpost.php?p=9958&postcount=1

caro
13.10.2006, 09:13
как продвигается дело с внедрением возможности регулировки скорости мышки?А достаточно ли будет изменять 3 параметра отвечающие за характеристики мышки:
1) resolution - 1, 2, 4, 8 ед./мм
2) sample rate - 10, 20, 40, 60, 80,100, 200 герц
3) scale - 1:1, 1:2
Сейчас выставлены по умолчанию: 4/100/1:1
Может нужна еще предварительная программная обработка?

yoko_ono
13.10.2006, 09:56
Может нужна еще предварительная программная обработка?

К слову, я вспомнила одну фишку, которую ещё RDC делал на контроллере ps/2 мышки для амиги, а именно, ограничение изменения счётчиков за 1 кадр, не более +-127. Или это уже есть?

caro
13.10.2006, 10:01
К слову, я вспомнила одну фишку, которую ещё RDC делал на контроллере ps/2 мышки для амиги, а именно, ограничение изменения счётчиков за 1 кадр, не более +-127. Или это уже есть?Пока никакого программного контроля нет, что приходит с мышки, то и выдается в порты.
За кадр, если я правильно понял, это между двумя прерываниями (если говорить о Спектруме)?
А есть ли необходимость в таком контроле?
При максимальном разрешении в 8 ед./мм получим ограничение 128/8 = 16мм за 20 мсек.
Тоесть ограничение будет равно 16*50 = 0.8 м/сек.
Это надо?

Evgeny Muchkin
13.10.2006, 10:01
Мне кажется, что этого набора варьируемых параметров будет более чем предостаточно. Чего там еще программно обрабатывать? Разгон мышки чтоли делать, по аналогии как управление курсорной стрелкой от клавиатуры в большинстве программ? :)

И, если честно, хотелось бы более удобного способа редактирования прошивок.

А вообще, девайс получился просто великолепный! Спасибо, Камиль!

caro
13.10.2006, 10:06
Мне кажется, что этого набора варьируемых параметров будет более чем предостаточно. Чего там еще программно обрабатывать?Есть в принципе варианты, например фильтрацию быстрых перемещений.


И, если честно, хотелось бы более удобного способа редактирования прошивок.Предложи вариант, как бы хотелось.

yoko_ono
13.10.2006, 10:33
Пока никакого программного контроля нет, что приходит с мышки, то и выдается в порты.
За кадр, если я правильно понял, это между двумя прерываниями (если говорить о Спектруме)?
А есть ли необходимость в таком контроле?
При максимальном разрешении в 8 ед./мм получим ограничение 128/8 = 16мм за 20 мсек.
Тоесть ограничение будет равно 16*50 = 8 м/сек.
Это надо?

Вроде бы это легко проверить - загнать стрелочку в угол экрана и резко подвигать мышой в одну сторону, чтоб стрелочка упиралась в бордюр. Если она будет вдруг срываться с места, то - есть необходимость.
Конечно, можно оставить и так, но не стоит ли устремиться к совершенству? Всё же не пц...

axor
13.10.2006, 10:34
caro, как продвигается дело с внедрением возможности регулировки скорости мышки?


Есть в принципе варианты, например фильтрацию быстрых перемещений.
Не нужно ничего фильтровать. Итак нормально! То, что мышка бегает быстрее, чем в других контроллерах (например, в Скорпионовском мышь "бегала" гораздо медленнее), так это не такой уж большой минус. Просто привыкнуть надо.

А вообще, я написал драйвер для мышки (используется в игре Вера и колесо еще опрашивается), у которого можно регулировать скорость перемещения курсора - как занижать скорость, так и завышать ее.

P.S. На моем Кае к мультикарте подключена оптическая мышь Logitech sbd69.

caro
13.10.2006, 10:45
Не нужно ничего фильтровать.Может ты и прав, поскольку ZXMC в данном случае просто передает информацию от мышки в Спектрум.
Всю конечную обработку можно делать уже в Спектруме.
А вот настройку мышки со стороны Спектрума конечно придется сделать.

axor
13.10.2006, 11:06
Может ты и прав, поскольку ZXMC в данном случае просто передает информацию от мышки в Спектрум.
Всю конечную обработку можно делать уже в Спектруме.
А вот настройку мышки со стороны Спектрума конечно придется сделать.
Все верно. Ведь в любом случае, для управления курсором от мышки пишется какой-то драйвер. Так почему бы ему и не заняться управлением скорости и прочего...

Evgeny Muchkin
13.10.2006, 11:20
Все верно. Ведь в любом случае, для управления курсором от мышки пишется какой-то драйвер. Так почему бы ему и не заняться управлением скорости и прочего...

Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.

caro
13.10.2006, 11:34
Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.Основной вопрос был, хватит ли тех настроек, которые предусмотрены для самой мышки
что бы получить нормальный результат для уже существующих драйверов.
Если этого достаточно, то я сделаю так что выбранная настройка будет запоминатся
в EEPROM мультикарты и при включении питания мышка будет перенастроена под
выбранный режим.
Ну можно еще предусмотреть переключение по горячим клавишам - если понадобится.

Ronin
14.10.2006, 14:35
При максимальном разрешении в 8 ед./мм получим ограничение 128/8 = 16мм за 20 мсек.
Тоесть ограничение будет равно 16*50 = 8 м/сек.

вообще-то 0.8м/сек :) вполне доступная для рук скорость, хотя и излишняя практически :) нужно на практике затестить.


Есть в принципе варианты, например фильтрацию быстрых перемещений

ну все это можно поставить "галочками" в сетапе - не надо, отключил, надо - включил.

yoko_ono
14.10.2006, 15:33
вообще-то 0.8м/сек :) вполне доступная для рук скорость, хотя и излишняя практически :) нужно на практике затестить.


Действительно, уважаемый Ronin прав, не 8 м/с, а 800 мм/c = 0.8 м/с
Вот и верь на слово после этого...


Скорость же действительно вполне достижимая, и вышеуказанные глюки будут иметь место.

axor
16.10.2006, 10:18
Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.
На счет ста тысяч программ ты не прав. Дай Бог 100-150 наберется, которые мышку поддерживают.
Старые программы переделывать не нужно. Нужно правильно писать новые, вот и все.

Вот ссылки на программы, в которых регулируется скорость мыши: http://abzac.retropc.ru/files/ProgramBox2_0.zip и еще http://abzac.retropc.ru/files/Courier2.zip.

Так же помню, что в каком-то из последних ZX-Format`ов было что-то подобное.

P.S. А вообще, какими старыми программами поддерживающими мышку мы пользуемся?

Evgeny Muchkin
16.10.2006, 13:46
А вообще, какими старыми программами поддерживающими мышку мы пользуемся?

Z-Player v3.0+ :D
RiffTracker 4.19
ARTIST-2
ART-Studio
Журналы всеразличные газеты...

axor
16.10.2006, 15:02
Z-Player v3.0+ :D
RiffTracker 4.19
ARTIST-2
ART-Studio
Журналы всеразличные газеты...
Это все же не сотни тысяч и даже не сотни штук...
Хотя, Камиль, вроде уже согласился что-то сделать в этом направлении.

Evgeny Muchkin
16.10.2006, 15:31
не сотни тысяч

Ну я же утрировал ё-маё :)

Ewgeny7
16.10.2006, 16:15
Для разрешения экрана 256х192 курсор бегает весьма удобно, ИМХО.
Нужно ли пересчитывать битрейт - навряд ли. Но на свете 6 миллиардов мнений... :)

caro
16.10.2006, 17:37
.. какими старыми программами поддерживающими мышку мы пользуемся?
Рекомендую зайти по ссылке:
http://velesoft.speccy.cz/kmsoft.htm
Наши чешские друзья здорово поработали, адаптирую старые программы под работу с мышью.

axor
17.10.2006, 08:33
Рекомендую зайти по ссылке:
http://velesoft.speccy.cz/kmsoft.htm
Наши чешские друзья здорово поработали, адаптирую старые программы под работу с мышью.
Поработали они хорошо (первая часть представленного).

Практически все остальное это наши (отечественные) программы и игры:)

axor
17.10.2006, 08:34
Ну я же утрировал ё-маё :)
Ладно, не будем ссориться :)

Evgeny Muchkin
17.10.2006, 09:21
Ладно, не будем ссориться

Разумеется :) Просто в споре рождается истина, как говорится.

Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)

caro
17.10.2006, 16:10
Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса?Пробовал несколько разных мышек (5 типов), разницы в поведении не заметил.
В принципе так и должно быть, поскольку для всех выставляется режим принятый по умолчанию = 100/4/1:1

axor
19.10.2006, 16:53
Разумеется :) Просто в споре рождается истина, как говорится.

Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)
У меня на контроллере от Create Soft (Kempston mouse) такой эффект и был. Это когда у меня была мышь от ПК Поиск, а потом я переделал писишную мышь под этот контроллер - она стала просто летать. После этого я и написал драйвер мышки с регулятором скорости:)

А вот на мультикарте такого наверно не будет, если все по умолчанию.

Mike
19.10.2006, 19:10
Разумеется :) Просто в споре рождается истина, как говорится.

Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)

Может. Мышки разлечаются на пример по dpi. Лазерные мышки с высоким dpi быстрее курсор перемещают - факт. Но обычные PS/2, COM, USB все примерно одинаковые.

Evgeny Muchkin
19.10.2006, 19:58
Мышки разлечаются на пример по dpi

Воо! Я как раз это и имел ввиду!

caro
19.10.2006, 21:38
Может. Мышки разлечаются на пример по dpi. Лазерные мышки с высоким dpi быстрее курсор перемещают - факт. Но обычные PS/2, COM, USB все примерно одинаковые.Просмотрел все что касается команды Set Resolution и обнаружил, что действительно у мышей с более высоким DPI при начальном сбросе устанавливается большее разрешение.
Так например обычные механические PS/2 имеют стандартное DPI = 200.
При сбросе (Resolution = 2) такая мышь выдает 4 импульса на 1 мм.
Для DPI = 320 имеем 6, при 400 соответственно 8 и т.д.
Минимальное значение Resolution = 0, дает при этом соответственно 1, 1 и 2 импульса на мм.
Так что действительно мыши с высоким DPI (есть уже на 2000 DPI) даже при снижении Resolution
до минимума будут без программной обработки не очень удобны для Spectruma.

Mike
20.10.2006, 08:43
Просмотрел все что касается команды Set Resolution и обнаружил, что действительно у мышей с более высоким DPI при начальном сбросе устанавливается большее разрешение.
Так например обычные механические PS/2 имеют стандартное DPI = 200.
При сбросе (Resolution = 2) такая мышь выдает 4 импульса на 1 мм.
Для DPI = 320 имеем 6, при 400 соответственно 8 и т.д.
Минимальное значение Resolution = 0, дает при этом соответственно 1, 1 и 2 импульса на мм.
Так что действительно мыши с высоким DPI (есть уже на 2000 DPI) даже при снижении Resolution
до минимума будут без программной обработки не очень удобны для Spectruma.

Я тут поелозил как то раз мышку на 1600dpi, при оставшихся настройках виндов по обычную оптичесую мышь (около середины), курсор перемещался как будто speed в настройках поставили в максимум и ещё на 2 - 4 умножили. :)

caro
20.10.2006, 09:11
Я тут поелозил как то раз мышку на 1600dpi, при оставшихся настройках виндов по обычную оптичесую мышь (около середины), курсор перемещался как будто speed в настройках поставили в максимум и ещё на 2 - 4 умножили. :)Все правильно, ведь по сравнению с обычной мышкой (200 DPI), она имеет разрешение в 8 раз выше, при тех же значениях Resolution.
В связи с этим возникло идея решения проблемы для уже разработанных программ: повесить установку Resolution на горячие клавиши клавиатуры, например WinMenu + цифровые 0, 1, 2 и 3 соответственно.
Но надо иметь ввиду, что при очень высоком разрешении самой мышки,
даже установка Resolution в 0 не поможет - курсор будет летать.
Есть еще вариант: сделать автоматическое определение разрешения подключенной мышки
в самом контроллере и приводить выходные параметры к неким средним значениям.
Надо только придумать как это сделать :)

Evgeny Muchkin
08.11.2006, 12:37
caro, вчера доделывал карту для совместимости со смаком и для Magic вместо NMI. Получилось! (как это ни странно с моими то, на залипоны, талантами :))
А нельзя ли как-то так же несложно доделать сабж, чтобы обычная спековская клавиатура не блокировалась при подключенной ZXMC (на мой взгляд это единственный (по большому счету несущественный) минус Твоего мегарулезного девайса) ?

PS: И насчет настройки скоростных харектеристик мышек есть ли подвижки? ;)

caro
08.11.2006, 13:20
А нельзя ли как-то так же несложно доделать сабж, чтобы обычная спековская клавиатура не блокировалась при подключенной ZXMC (на мой взгляд это единственный (по большому счету несущественный) минус Твоего мегарулезного девайса) ?
При нынешней схеме к сожалению нельзя. Честно говоря не видел в необходимости этого режима большого смысла :)


И насчет настройки скоростных характеристик мышек есть ли подвижки? ;)Да, почти все сделал - проверю, выложу новую прошивку.

Evgeny Muchkin
08.11.2006, 13:53
Да, почти все сделал - проверю, выложу новую прошивку

:v2_clapp: :v2_cheer:

Эх поскорей бы :)

А можно еще в этой прошивке задействовать клавиши:
Insert - SS+I
Delete - CS+9
PageUP - CS+3
PageDown - CS+4
Вроде как это стандарт

Home, End тоже можно, только я не помню, на какое сочетание клавиш вешаются обычно эти функции.

Заранее спасибо! :)

caro
08.11.2006, 13:59
А можно еще в этой прошивке задействовать клавиши: .....
Сам можешь настроить клавиатуру под себя.
Сейчас положу в первый пост инструкцию.

Evgeny Muchkin
08.11.2006, 14:24
Просто я подумал, от такой работы этих клавиш никто бы отказываться не стал, а так всем придется перешивать. Ну и прошивка от разработчика всетки... :)

caro
08.11.2006, 14:31
Просто я подумал, от такой работы этих клавиш никто бы отказываться не стал, а так всем придется перешивать. Ну и прошивка от разработчика всетки... :)В том файле что я кинул представлено два варианта раскладки клавиатуры.
Первый базовый, тот что я заложил.
Второй от Axorа, вполне вероятно он тебе больше понравится.

Evgeny Muchkin
08.11.2006, 14:33
Второй от Axorа, вполне вероятно он тебе больше понравится.
Точно :) В нем как раз вышеупомянутые клавиши так и задействованы :)

Evgeny Muchkin
27.12.2006, 10:45
caro, выложи в первый пост исходник TinyTerm плиз.

caro
27.12.2006, 10:59
caro, выложи в первый пост исходник TinyTerm плиз.
Только что подготовил новую прошивку для ZXMC.
Туда же положил и исходник TinyTerm
-------------------------------------------------
Версия прошивки для ZXMC 1.7 от 25.12.06

1) Добавлено управление индикаторами клавиатуры
по нажатию соответствующих клавиш.
Клавиша NumLock переключает свой индикатор,
что обеспечивает норамальную работу
компактных клавиатур, не имеющих цифрового
поля. У них при горящем Num Lock под
цифровые клавиши отводится место в правой
части основного поля клавиатуры.
Клавиша Scroll Lock переключает соответствующий
индикатор, но пока это никак невлияет
на работу контроллера клавиатуры.
Клавиша Caps Lock меняет состояние
индикатора и выдает в Спектрум соответсвующий
код. Для обеспечения синхронизации
работы программ с индикатором Caps Lock,
при нажатии клавиши с Shift, индикатор
переключается, но в Спектрум код не
передается.

2) Добавлено управление величиной Resolution
для мышки.
<WinMenu>+<1> - 1/мм = 25/дюйм
<WinMenu>+<2> - 2/мм = 50/дюйм
<WinMenu>+<3> - 4/мм = 100/дюйм
<WinMenu>+<4> - 8/мм = 200/дюйм
Здесь цифровые клавиши основного поля клавиатуры.
При сбросе устанавливается 100/дюйм.
Указанные величины приведены для простой
мышки, имеющей максимальное разрешение 200/дюйм.
Мышки с повышенной величиной Resolution
будут иметь соответственно большие
величины разрешения при выполнении
данных команд.

caro
27.12.2006, 12:53
Ответы на два вопроса по RS232:

m> как спаять нуль-модемный кабель?

Для всех случаев жизни рекомедую нуль-модем паять по такой схеме:

Трех-проводный:
-------------------------
ZXMC IBM
-------------------------
RXD 2 --------- 3 TXD
TXD 3 --------- 2 RXD
GND 5 --------- 5 GND

DTR 4 -+ +- 4 DTR
DSR 6 -+ +- 6 DSR

RTS 7 -+ +- 7 CTS
CTS 8 -+ +- 8 RTS
-------------------------

Пяти-проводный (рекомендуется):
-------------------------
ZXMC IBM
-------------------------
RXD 2 --------- 3 TXD
TXD 3 --------- 2 RXD
GND 5 --------- 5 GND
RTS 7 --------- 8 CTS
CTS 8 --------- 7 RTS

DTR 4 -+ +- 4 DTR
DSR 6 -+ +- 6 DSR
-------------------------

m> пробовал играть со скоростями порта на
m> ноуте - блин ваааще такая каша получается.
m> стабильная хоть какая никакая работа - только на 19200.

Скорость 19200 ставится в ZXMC при начальном старте по умолчанию.
С ней и работает МиниТерм при запуске. Для работы с простым
нуль-модемным кабелем это оптимальная скорость.
Если требуется работа на более высоких скоростях, во-первых надо
добавить в кабеле сигналы CTS и RTS (спаять 5-ти жильный
нуль-модем), во вторых прямо из бэйсика, перед вызовом TinyTerm
выдать такие команды:
LET N = 1 : REM или значение N сразу подставить во 2 строку
OUT 64495,128: OUT 63727,N: OUT 63983,0: OUT 64495,3

Здесь N - код, определяющий скорость работы RS232:
1 - 115200
2 - 57600
3 - 38400
6 - 19200 (это записано по умолчанию)
12 - 9200
24 - 4800
48 - 2400
96 - 1200
192 - 600

В принципе можно скорость установить еще ниже, но тогда
например для скорости 300 бод, коэффициент получается = 384.
Его надо преобразовать в 1*256+(384-256) и тогда выдать:
OUT 64495,128: OUT 63727,128: OUT 63983,1: OUT 64495,3

Sonic
27.12.2006, 13:53
Ответы на два вопроса по RS232:


Пяти-проводный (рекомендуется):
-------------------------
ZXMC IBM
-------------------------
RXD 2 --------- 3 TXD
TXD 3 --------- 2 RXD
GND 5 --------- 5 GND
RTS 7 --------- 8 CTS
CTS 8 --------- 7 RTS

DTR 4 -+ +- 4 DTR
DSR 6 -+ +- 6 DSR
-------------------------

Вообще по стандарту:


-------------------------
ZXMC IBM
-------------------------
RXD 2 --------- 3 TXD
TXD 3 --------- 2 RXD
GND 5 --------- 5 GND
RTS 7 --------- 8 CTS
CTS 8 --------- 7 RTS
DTR 4 --------- 6 DSR
DSR 6 --------- 4 DTR
-------------------------

caro
27.12.2006, 14:01
Вообще по стандарту:


-------------------------
ZXMC IBM
-------------------------
RXD 2 --------- 3 TXD
TXD 3 --------- 2 RXD
GND 5 --------- 5 GND
RTS 7 --------- 8 CTS
CTS 8 --------- 7 RTS
DTR 4 --------- 6 DSR
DSR 6 --------- 4 DTR
-------------------------
Для работы с IBM по RS232, вполне достаточно одного сигнала квитирования RTS/CTS.
Второй канал - DSR/DTR желателен для работы с модемом, но тут пришлось сэкономить,
поскольку типовые преобразователи TTL/RS232 содержат по два канала на прием и передачу.
Для полноты еще и сигналы DCD и RI надо бы добавить.

Evgeny Muchkin
27.12.2006, 14:09
Вообще по стандарту:
В нашем случае это ни на что не влияет абсолютно.

Sonic
27.12.2006, 15:01
Второй канал - DSR/DTR желателен для работы с модемом
Вообще модем тут ни при чем. DSR говорит о том, что противоположный конец в принципе включен, в то время как CTS - что он готов принимать данные. Многие терминальные программы вообще отказываются что-либо передавать/принимать если DSR опущен.
Конечно локальное замыкание DTR и DSR позволяет это обойти: PC дабы показать что он включен поднимает DTR поднимая тем самым самому себе DSR.
Кстати говоря старая последовательная мышь использует DTR в качестве питания себя любимой. Сбросив DTR можно ее задетектить ибо при включении она о себе рассказывает. Я возился с оной на Профи.
Хотя наверное Serial mouse уже неактуальны...



Для полноты еще и сигналы DCD и RI надо бы добавить.

DCD - да, полезен для определения статуса именно модема (Offline/Online). RI же является атавизмом времен неинтеллектуальных модемов и вроде как не на всех модемах он реально есть.

caro
27.12.2006, 15:15
локальное замыкание DTR и DSR позволяет это обойти: PC дабы показать что он включен поднимает DTR поднимая тем самым самому себе DSR.А так он не знает что включен?


Кстати говоря старая последовательная мышь использует DTR в качестве питания себя любимой. Сбросив DTR можно ее задетектить ибо при включении она о себе рассказывает.Просто выдает символ "M".

А если серьезно, то IBM PC по RS232 может работать тремя способами синхронизации:
1) аппаратная синхронизация RTS/CTS;
2) аппаратная синхронизация DTR/DSR;
3) программная синхронизация XON/XOFF
Так что вполне можно обойтись первым вариантом.

jager
11.01.2007, 17:22
Камиль, а не могли бы вы дать исходник прошивки для платки?

syd
21.01.2007, 19:56
2caro - я так понял у тебя в ZXMC когда спек клаву опрашивает wait используется, это не сильно тормозит при загрузки с касcеты например?

caro
21.01.2007, 20:38
я так понял в ZXMC, когда спек клаву опрашивает wait используется, это не сильно тормозит при загрузки с касеты например?Длительность WAIT в 3 мксек практически не влияет на работу процедур чтения и записи при работе с магнитофоном.
Циклы задержек, используемые в этих процедурах составляет милисекунды, что значительно больше этих 3 мксек.

caro
26.01.2007, 13:55
В прошивку версии 1.7, которая лежала на форуме, как оказалось я забыл вставить терминалку.
Прошу меня извинить, и скачать исправленную версию.

Mikka_A
26.01.2007, 13:59
В прошивку версии 1.7, которая лежала на форуме, как оказалось я забыл вставить терминалку.
Прошу меня извинить, и скачать исправленную версию.

а 1А из конца убрал?

caro
26.01.2007, 14:12
а 1А из конца убрал?Во-первых символ 1Ah (Ctrl-Z) - признак конца файла, при загрузке его через RS232 не мешает.
Во-вторых я его удалил :)

Vitron
26.01.2007, 16:03
Уважаемый Камилл!

Вы писали в ветке про Пентагон 1024 что через вашу плату можно будет подключить порт магнитофонный и был затронут вопрос о программной поддержке.. это подразумевает перепрошивку ?

Мне бы поподробнее..... в плане технической документации ..

caro
26.01.2007, 16:13
Вы писали в ветке про Пентагон 1024 что через вашу плату можно будет подключить порт магнитофонный и был затронут вопрос о программной поддержке.. это подразумевает перепрошивку ?

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

Vitron
26.01.2007, 16:22
Если будет возможность перешить вашу микросхему то перешью, а если нет, то закажу еще платку с компаратором, если вы не против!

falanger
26.01.2007, 17:57
Я бы был тоже непротив заказать вашу Мультикарту с шагом 2,54 для контактов для своего собираемого сейчас Пентагона-1024.

caro
27.01.2007, 17:43
В текущей прошивке этого нет, так что придется ее перешить.Склероз, оказывается я еще в версии 1.6 предусмотрел работу с магнитофоном :)
Так что тем, у кого уже зашита версия 1.6 или 1.7, достаточно спаять приведенную схему.

Соберу компаратор и попробую ввести в новую прошивку эту функцию.Компаратор используется встроенный в Мегу, поэтому схема получилась очень простой.
На эмиттере транзистора при отсутствии входного сигнала, должно быть 1.25+-0.1 вольт.
Подобрать уровень можно изменением в небольших пределах резистора R2*,
но обычно, при использовании 5% резисторов, этого не требуется делать.
Схема нормально работает при входных уровнях сигнала +- 0.5 Вольт.
Разьем X2 это вилка типа PBS-9 (однорядные штыри с шагом 2.54).
Разьем X1 - зависит от вашего магнитофона. Я поставил СГ5 (круглый, пятиконтактный).

Evgeny Muchkin
28.01.2007, 22:59
caro, что-то у меня не получается скорость мыши поменять. Тыкаю все варианты, а скорость как была сверхзвуковой, так и остается... хм... Этот эффект я заметил еще сразу после выхода версии 1.7, сейчас просто пригляделся.

caro
29.01.2007, 13:35
...что-то у меня не получается скорость мыши поменять. Тыкаю все варианты, а скорость как была сверхзвуковой, так и остается... хм... Этот эффект я заметил еще сразу после выхода версии 1.7, сейчас просто пригляделся.Я проверял на простой мышке с DPI = 200/дюйм.
Получается 4 градации разрешения: 25, 50, 100 и 200 DPI.
По умолчанию устанавливается 100DPI.
А у тебя какая?

Evgeny Muchkin
29.01.2007, 14:02
У меня Гениус оптическая; не самая старая. А вот про DPI я не знаю у неё совсем. :( Но весьма чувствительная.

caro
29.01.2007, 14:36
У меня Гениус оптическая; не самая старая. А вот про DPI я не знаю у неё совсем. :( Но весьма чувствительная.Типичное разрешение для современных оптических мышей 800DPI.
Получишь 4 уровня разрешения: 100, 200, 400 и 800DPI.
Тоесть даже при минимальном значении, разрешение получается
как для простой механической мышки по умолчанию = 100DPI.

Mike
29.01.2007, 14:47
Камиль, я тут получил ваш девайс и ткнул его в свой скорп (жёлтый, 256, турбо), но возникла некоторая путаница с разъёмом (наш советский), в результате которой я воткнул карту со смещением на один пин, в сторону от AY. Потом, пропилив в советском разъёме прорезь, вставил его как положено, но так и не смог запустить систему. Без контроллера и с родным скорповским всё работает, с ZX-MCARD система не стартует, на экране полоски. Не сжёг ли я карту таким действием ? Слышал так же, что были несовместимости с турбироваными скорпионами.

caro
29.01.2007, 15:25
Камиль, я тут получил ваш девайс и ткнул его в свой скорп (жёлтый, 256, турбо), но возникла некоторая путаница с разъёмом (наш советский), в результате которой я воткнул карту со смещением на один пин, в сторону от AY. Потом, пропилив в советском разъёме прорезь, вставил его как положено, но так и не смог запустить систему. Без контроллера и с родным скорповским всё работает, с ZX-MCARD система не стартует, на экране полоски. Не сжёг ли я карту таким действием ?Надеюсь нет. Я сам один раз вставил карту со смещением, ничего, выжила.


Слышал так же, что были несовместимости с турбироваными скорпионами.Да, вот мой разговор по Аське с Mikka
Mikka:
твоя мульткарта.
скорп желтый.
переделанный под турбо.
она там не хочет жить.
женя мучкин сказал что ты ему говорил что надо паять
какой то диод и резюк на WAIT
они реально отличаются.
без турбо коротенькие отрицательные импульсы
с турбо - почти меандр бОльшей частоты.
соатльные сигналы вроде совпадают.
Caro:
А разве у Евгения, мултикарта не на Турбо живет?

Mikka:
на турбо.
и зажила она у него после того,как ты дал ему какой то совет....
Caro:
Совет был переделать схему формирования /WAIT.

Mikka:
-- Evgeny MuchkinПн ноя 20 2006 12:20:04
там надо сигнал какой-то через диод пустить, wait помоему
-- Mikka Пн ноя 20 2006 12:21:28
так у тя турбо или не турбо?
-- Evgeny Muchkin Пн ноя 20 2006 12:21:43
turbo
-- Mikka Пн ноя 20 2006 12:21:51
просто у меня 2 платы желтые.
но на одной распаяна плиска и она турбо.
так вот на ней не работает.
-- Evgeny Muchkin (С-Ж-Т) Пн ноя 20 2006 12:23:17
да, у меня тоже не заработало сначала. камиль сказал что
сделать и все поехало нормально
Caro:
Сейчас гляну, освежу в памяти.

Mikka:
давай....
я тоже так подумал - вернуть взяд схему оригинальную..
но есть сомненья - не зря же они с плиски вайт берут...
Caro:
На выходе плиски надо вставить диод, катодом к плиске,
анодом к 24 ноге Z80. А вывод 24 Z80 притянуть резистором 2 КОм к +5V.

Mikka:
.............а вайт с карточки соответственно тоже заводится
на 24 ногу зилога,да?
Caro:
Да. Диоды обеспечивают развязку по цепи /WAIT
Это получается схема логического ИЛИ для отрицательных сигналов.

Mikka:
так может ей ИЛИ скорпить?
Caro:
Нет линия /WAIT на шине процессора специально выведена именно так,
что бы все устройства на шине можно было подключить к ней
по схеме проводного ИЛИ.

Mike
29.01.2007, 15:54
На выходе плиски надо вставить диод, катодом к плиске,
анодом к 24 ноге Z80. А вывод 24 Z80 притянуть резистором 2 КОм к +5V.

Я так понял - вот оно ? Диод любой высокочастотный ?

caro
29.01.2007, 16:10
Я так понял - вот оно ? Диод любой высокочастотный ?Любой импульсный, например: КД520 или КД522.

Mike
29.01.2007, 16:12
Любой импульсный, например: КД520 или КД522.

Спасибо Камиль ! :)

caro
29.01.2007, 16:23
... возникла некоторая путаница с разъёмом (наш советский),Учти, что у "советского" разьема шаг контактов 2.5, а у ZXMC 2.54.
Надо внимательно вставлять карту в разьем, что бы попасть
контакт в контакт (и то с некоторым сдвигом на краях).
А лучше заменить его на импортный SLOT60.

Mike
29.01.2007, 17:47
А лучше заменить его на импортный SLOT60.

Да, это понятно...

MegaMyth
02.02.2007, 11:49
Должен отметить что проект мне понравился, но нельзя ли раскрыть некоторые технические нюансы, касатально длительности сигналов WIAT при обращении к девайсам таким как:Клавиатура, Мышь, Часы, RS-232?

P.S. Так держать! Малаца!:v2_clapp:

caro
02.02.2007, 13:02
... нельзя ли раскрыть некоторые технические нюансы, касательно длительности сигналов WIAT при обращении к девайсам таким как:Клавиатура, Мышь, Часы, RS-232?Сейчас в карты я ставлю кварцы на 11.0592 Мгц,
хотя в принципе можно ставить и 14.7456 и даже 16.384 Мгц
(используется ATMega8515-16P)
Такие кварцы ставятся только из-за того, что удалось их приобрести в
низкопрофильных корпусах (HC-49/S).
Кварцы в корпусах HC-49/U высоковаты и будут мешать установке на ZXMC дочерней платки.
Так вот, при такой тактовой частоте, длительность WAIT при работе с клавиатурой и мышью составляет порядка 3 мксек.
С остальными устройствами не измерял, поскольку длительность зависит от тех регистров,
которые при этом опрашиваються, но, судя по программному коду,
задержка по WAIT не превышает 5 мксек.

Mikka_A
02.02.2007, 15:48
.....судя по программному коду,
задержка по WAIT не должна превышать 5 мксек.....

Камиль!
Выложил бы ты монтажку к схеме еще. А то вот перепутает народ,и воткнет два разхема в один,скажем мышь и клаву в RS232.... :v2_clapp: :v2_biggr:

а компорт оденет на мышь... Да и дырочки внешнего программатора непонятны.... :v2_conf2: :v2_smile:

caro
02.02.2007, 16:46
Выложил бы ты монтажку к схеме еще. В первом посте выложил файл ZXMC_sch.zip - схема, монтажка и перечень элементов.

Syntal
02.02.2007, 17:23
Камиль, а если хочется использовать одну только AT-клаву, какие сигналы на системном слоту не нужны будут? Остальные фичи пока особо не нужны, просто хочется подрубить Вашу разработку к компу не оснащённому системным слотом! Вообще в качестве реверс-инжиниринга можно Вашу карту использовать или нет?

caro
02.02.2007, 17:38
.. если хочется использовать одну только AT-клаву, какие сигналы на системном слоту не нужны будут?Этот контроллер сделан именно под ZX_BUS, поэтому убрать некоторые сигналы не получится.

Остальные фичи пока особо не нужны, просто хочется подрубить Вашу разработку к компу не оснащённому системным слотом!Так может лучше тогда подключить контроллер клавиатуры на AT90S2313 (ATTiny2313).
Он подключается взамен стандартной Спектрумовской клавиатуры и требует дополнительно к шине адреса и данных только несколько дополнительных линий.

Вообще в качестве реверс-инжиниринга можно Вашу карту использовать или нет?Да пожалуйста.

Mikka_A
02.02.2007, 21:39
В первом посте выложил файл ZXMC_sch.zip - схема, монтажка и перечень элементов.


+1

Спасибо! :v2_clapp: :v2_clapp: :v2_clapp: :v2_clapp:

Vitron
02.02.2007, 23:42
Сообщение от caro:
Так может лучше тогда подключить контроллер клавиатуры на AT90S2313 (ATTiny2313).
Он подключается взамен стандартной Спектрумовской клавиатуры и требует дополнительно к шине адреса и данных только несколько дополнительных линий.
..... Получается просто, воткнул в разъем клавиатуры спека эту платку , а к платке AT-шную?

мне бы тоже схемку такую, вот валяется еще Пентагон 128 там стояла типа такого, платка ,пять микросхем и XT клава подключалась...

caro
24.02.2007, 14:33
В первом посте темы выложена новая версия прошивки
и файл описания работы с часами реального времени.
Измения:
1) Чтение портов 00EFh и 00DFh возвращает
номер версии текущей прошивки в десятичном
формате, например:
PRINT IN 239 или PRINT IN 223
печатает для этой версии 20.
Во всех предыдущих версиях возвращается
значение = 255 (0FFh).
2) Косметические изменения TinyTerm. см. исходник.
3) Скорректирована работа RTC в части
поддержки хранения значения текущего
года (см. ZXMC_RTC.DOC).

James DiGreze
24.02.2007, 19:54
А все со старыми просьбами... Может кто еще поддержит.
Может все-таки стоит ввести порт для получения скан-кодов? ;)
Было бы очень удобно использовать всю прелесть полной клавиатуры для тех же текстовых редакторов...

Sonic
26.02.2007, 13:17
А все со старыми просьбами... Может кто еще поддержит.
Может все-таки стоит ввести порт для получения скан-кодов? ;)
Было бы очень удобно использовать всю прелесть полной клавиатуры для тех же текстовых редакторов...

ИМХО раз на то пошло, лучше сделать совместимо с уже имеющимися вариантами.
Мне таковых известно два: полная русская клавиатура "Байта" и дополнительные биты на Profi, которые поддерживались профишным контроллером клавиатуры. В СP/M это все хозяйство работало. Про поддержку для Байта мне ничего неизвестно посему ИМХО предпочтительнее второй вариант.

caro
26.02.2007, 13:34
... дополнительные биты на Profi, которые поддерживались профишным контроллером клавиатуры.Да это хороший вариант, только почему то нигде нет описания,
каким образом эти биты используются.

jager
03.03.2007, 15:56
вчера заметил, что вместо MOVE на 6-ой клавише CIRCLE, а MOVE и все остальное ([E]+SS) сдвинуто вправо.

caro
03.03.2007, 16:16
вчера заметил, что вместо MOVE на 6-ой клавише CIRCLE, а MOVE и все остальное ([E]+SS) сдвинуто вправо.Это получилось из-за того, что на клавиатуре Спектрума клавиша [6/&],
а на IBM-ской [6/^]. Тоесть при нажатии в EXT Mode клавиши [6] c Shift,
иммитируется нажатие клавиши [H/^], в результате чего и получаем Circle.
Точно также с клавишами [7/'], [8/(], [9/)] и [0/-], на IBM-ке [7/&], [8/*], [9/(] и [0/)].
Мне показалось удобным иметь однозначное соответствие между нарисованным
на IBM-ской клавиатуре знаком и его кодом в Спектруме.
Если кому то это покажется непривычным или неудобным,
читайте файл описания раскладки, которую можно перелопатить как угодно.

jager
05.03.2007, 14:01
еще что заметил. тестировал мышку, что интересно, мышка видна в mr gluk только после ресета (т.е. включаем питание, мышки нет, жмем ресет, мышка появляется). если загрузить c неработающей в глюке мышкой прогу поддерживающую мышь, то она там работает. может кто-то сталкивался?
да, речь идет про Pentagon 1024 SL 2.2

caro
06.03.2007, 11:37
еще что заметил. тестировал мышку, что интересно, мышка видна в mr gluk только после ресета (т.е. включаем питание, мышки нет, жмем ресет, мышка появляется). если загрузить c неработающей в глюке мышкой прогу поддерживающую мышь, то она там работает. может кто-то сталкивался?
да, речь идет про Pentagon 1024 SL 2.2Думаю дело вот в чем.
После включения питания компьютера и ZXMC,
подкюченной к нему, ZXMC выдает на линию /RESET
импульс низкого уровня длительностью 0.5 секунд.
После этого компьютер стартует, а ZXMC начинает
проверять подключены ли клавиатура и мышка.
Для проверки на мышку и клавиатуру подается команда
RESET (код 0FFh), что запускает их внутренний тест,
после исполнения которого, контролер должен получить
ответ (код 0AAh). Если ответ получен, значит это
PS/2 устройство подключено и нормально функционирует,
иначе нет. При неподключенной клавиатуре ZXMC просто
зависает, ожидая ее подключения, а при не подключенной
мышке, в соответсвующий регистр устанавливается бит
отсутствия мышки в системе.
Внутренний тест, как показала проверка нескольких
мышей и клавиатур от разных производителей, длится
от 0.3 до 0.7 секунд. Тоесть, так как в начале проверяется
подключение клавиатуры, то после старта компьтера
до начала работы подключенной мышки проходит как минимум
0.6 секунд (как максимум до 1.4 секунд).
Так как все это время ZXMC не реагирует на сигналы
с шины компьютера (на шине все время 0FFh), то
наверняка, уже запущенный Gluk, за это время проверив
шину, убедился что мышки в системе нет :)
При нажатии на PrtScreen на линии /RESET компа
формируется импульс сброса низкого уровня длительностью
10 мсек, в результате компьютер (и Gluk соответственно)
стартует заново, но поскольку к этому времени ZXMC
уже инициировала свои устройства, Gluk прекрасно
видит, что мышка в системе есть.
Можно конечно на все время проверки удерживать /RESET
на низком уровне, но при этом в течении 1.5 секунд,
лично у меня на Кворуме, экран представляет собой цветную
мозаику.

Vitron
06.03.2007, 11:49
Я к стати тоже это предполагал, а если проще в начале подать питание на карту, допустим там через ключик помимо слотов, ну резкой проводников чтобы не питалось одновременно и компьютер и периферийные устройства, а после через пол секунды подать питание на плату, думаю что будет работать нормально все...
может конечно что то я не учел.....

А еще проще чтобы не мучаться с питанием нужно блокировать проц на пол секунды... в момент включения платы причем сделать это с приоритетностью, мало ли ZXVga конвертер тоже что то подобное делать будет .

caro
06.03.2007, 13:19
Я к стати тоже это предполагал, а если проще в начале подать питание на карту, допустим там через ключик помимо слотов, ну резкой проводников чтобы не питалось одновременно и компьютер и периферийные устройства, а после через пол секунды подать питание на плату, думаю что будет работать нормально все...
может конечно что то я не учел.....

А еще проще чтобы не мучаться с питанием нужно блокировать проц на пол секунды... в момент включения платы причем сделать это с приоритетностью, мало ли ZXVga конвертер тоже что то подобное делать будет .Да нет, резать провода это уж слишком, проще всего сразу после инициализации устройств,
принудительно выдавать дополнительный короткий импульс /RESET.
Т.е. иммитировать нажатие клавиши PrtSCreen.

Vitron
06.03.2007, 13:28
Тогда в прошивке zxmc нужно это зафиксить и дело в шляпе.:)

jager
06.03.2007, 15:38
Да нет, резать провода это уж слишком, проще всего сразу после инициализации устройств,
принудительно выдавать дополнительный короткий импульс /RESET.
Т.е. иммитировать нажатие клавиши PrtSCreen.
угу, ну или как вверху писал, продлить ресет сигнал. 1.5 секунды, это не так и много.

caro
27.03.2007, 18:35
В первом посте выложена прошивка для ZXMC ver. 2.1

1) Полностью переделана работа с часами.
Оптимизирована в процессе разработки INTIME -> http://zx.pk.ru/showthread.php?t=5043.
Подробности будут в описании часов ZXMC.
2) /RESET при включении питания снимается
с шины компьютера после определения
наличия мышки. Нужно для работы в ПЗУ
GLUK-сервиса, иначе он мышку не видел.

jager
30.03.2007, 10:25
а я опять с проблемой. :-) прошил 2.1 версию, с мышой все ОК! Спасибо еще раз! :-)

вчера притащил домой компактную клаву (87 кнопок), она USB с переходником на PS/2. Некоторые кнопки не верно работают, т.е. все буквы, цифры, ввод, пробел, Shift (SS), Tab (Edit), Backspace работают верно. Caps Lock и Ctrl поменялись функциями: Caps Lock -> Caps Shift, Ctrl -> Caps Lock. Все остальные клавиши функционируют не верно.
При нажатии на некотороые клавиши (например, курсорные) моргает либо вклюбчается индикатор Scroll Lock.

caro
30.03.2007, 13:35
Caps Lock и Ctrl поменялись функциями: Caps Lock -> Caps Shift, Ctrl -> Caps Lock. Все остальные клавиши функционируют не верно.
Судя по всему ты прошил версию с раскладкой клавиатуры от Axorа ZXMC21ba.hex
Перешей файлом ZXMC21bt.hex - здесь раскладка базовая, которую я обычно зашиваю.
И еще, назначение клавиш на таких клавиатурах меняется в зависимости от состояния NumLock.

jager
30.03.2007, 14:05
Судя по всему ты прошил версию с раскладкой клавиатуры от Axorа ZXMC21ba.hex
нет, шил твою версию раскладки, если подрубаю клаву другую (с PS/2 разъемом, полноразмерная), там все нормально с раскладкой.


И еще, назначение клавиш на таких клавиатурах меняется в зависимости от состояния NumLock.
Да, это я знаю, но у этой клавы нет NumLock-ка вообще. Я вот что подозреваю, ведь контроллер врубает NumLock при старте, может это у клавы так башню сносит? Ты не мог бы мне для теста откомпилить прошивку, где не включается при старте NumLock?

caro
30.03.2007, 16:36
Да, это я знаю, но у этой клавы нет NumLock-ка вообще. Я вот что подозреваю, ведь контроллер врубает NumLock при старте, может это у клавы так башню сносит? Ты не мог бы мне для теста откомпилить прошивку, где не включается при старте NumLock?Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера, так что можно подрубив
нормальную клавиатуру переключить Num Lock в 0, затем попробовать
подключить уразанную клаву.
Я себе тоже купил ноутбучную клаву, проблем не было, видимо потому,что Num Lock на ней есть.
Но именно по причине того, что при включенном Num Lock правая часть клавиатуры выполняла
роль цифрового поля, пришлось сделать возможным оперативно менять состояние Lock-индикаторов.

jager
30.03.2007, 17:29
Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера
Это в предыдущих версиях прошивки есть?
А какая у тебя клавиатура (фирма/модель)? она PS/2 или USB с переходником?

caro
30.03.2007, 17:52
Это в предыдущих версиях прошивки есть?Начиная с версии 1.7, это написано в тексте прилагаемом к прошивке.

А какая у тебя клавиатура (фирма/модель)? она PS/2 или USB с переходником?Mitsumi. Проверил, с переходником на USB не работает. Тоесть простая PS/2 клава.

jager
30.03.2007, 23:13
Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера
Чего-то не запоминается его состояние (всегда вкл при старте) или что-то нажать надо для запоминаия перед выключением? Кстати, в описании к версии 1.7 про запоминание ничего нет.

Прошивка с выключенным NumLock не помогла, все равно глючит и глюки такие же. Может сделать какую-нибудь тестовую процедуру в прошивку, которая могла бы на экран или в rs-232 порт отсылать скан код нажатой клавиши? Кстати, было бы не плохо иметь возможность в спеке читать скан код. Можно писать тогда проги с нормальной поддержкой клавы.

Перепрошивка вызвала трудности. Когда переходил на версию 2.1 (до нее была версия, которую еще ты прошивал в МК), то переход в режим прошивания по WinMenu+Pause прошло успешно. А вот на прошивке 2.1 и 2.2 уже при нажатии на WinMenu приводит к блокировке, т.е. компьютер не реагирует на клавиши, но и программатор не видит плату. При нажатии на PrtScr происходит сброс компьютера и контроллер начинает работать. Пришлось втыкать перемычку.

caro
31.03.2007, 07:36
Чего-то не запоминается его состояние (всегда вкл при старте)Оказалось сделал, но с ошибкой. Исправленная версия 2.2 лежит в 1 посте.


Прошивка с выключенным NumLock не помогла, все равно глючит и глюки такие же.Честно говоря ожидал этого. Надо будет почитать про USB-клавиатуры, может есть какие-то тонокости.


Может сделать какую-нибудь тестовую процедуру в прошивку, которая могла бы на экран или в rs-232 порт отсылать скан код нажатой клавиши? Кстати, было бы не плохо иметь возможность в спеке читать скан код. Можно писать тогда проги с нормальной поддержкой клавы.Сделать могу без проблем, но сомневаюсь в необходимости этого,
разве что для таких вот случаев, для проверки скан-кодов.
Такая поддержка клавиатуры будет работать только с ZXMC, а что делать остальным? :)


Перепрошивка вызвала трудности. Когда переходил на версию 2.1 (до нее была версия, которую еще ты прошивал в МК), то переход в режим прошивания по WinMenu+Pause прошло успешно. А вот на прошивке 2.1 и 2.2 уже при нажатии на WinMenu приводит к блокировке, т.е. компьютер не реагирует на клавиши, но и программатор не видит плату.
Странно, у меня такого эффекта нет. Все работает как задумано.
Надеюсь кто нибудь еще проверит и окликнется, нет ли таких же проблем.


При нажатии на PrtScr происходит сброс компьютера и контроллер начинает работать.При переходе в режим программирования, выход возможен только по выключению питания.

Пришлось втыкать перемычку.А у меня все работает без перемычки, специально сейчас проверил.

James DiGreze
31.03.2007, 08:28
Сделать могу без проблем, но сомневаюсь в необходимости этого, разве что для таких вот случаев, для проверки скан-кодов.
Такая поддержка клавиатуры будет работать только с ZXMC, а что делать остальным? :)Лёд тронулся! :-D Вообще, это больше будет на совести программистов, кто будет писать программы, лишь бы при этом оставалась возможность опроса клавы через #xxFE. К тому же, при отсутствии "классических" клавиатур, очень скоро ZXMC может стать стандартом де-факто.

jager
31.03.2007, 21:12
А у меня все работает без перемычки, специально сейчас проверил.
протестирую еще раз, когда буду шить 2.2 версию.


Сделать могу без проблем, но сомневаюсь в необходимости этого,
разве что для таких вот случаев, для проверки скан-кодов.
Такая поддержка клавиатуры будет работать только с ZXMC, а что делать остальным?


лишь бы при этом оставалась возможность опроса клавы через #xxFE.
Именно, можно и zx и pc клавиатуры в программах поддерживать. :-)

А как называется модель твоей Mitsumi. Что-то поглядел в некоторых магазинах в Москве, не нашел. Сложилось впечатление, что как-то напряжно с маленькими клавиатурами.

Добавлено через 19 часов 30 минут
бред какой-то, вчера прошил новую версию 2.2 (которая официальная), все равно не хочет входить в режим программирования по WinMenu+Pause. Слушай, а там не могло что-нибудь в EEPROM прописаться (когда клавиатуру укороченную тестировал) и что может дейтвовать на реакцию на эту клавишу. При нажатии уже на WinMenu происходит, кроме блокирования клавиатуры (которое не блокирует reset по PrtScr), моргание экрана. Иногда экран так и остается черным пока компер не выключить и при этом уже не помогает reset по PrtScr.

caro
01.04.2007, 16:57
Слушай, а там не могло что-нибудь в EEPROM прописаться (когда клавиатуру укороченную тестировал) и что может дейтвовать на реакцию на эту клавишу.Нет, сейчас в EEPROM задействована единственная ячейка, в которой запоминается состояние индикаторов клавиатуры.

При нажатии уже на WinMenu происходит, кроме блокирования клавиатуры (которое не блокирует reset по PrtScr), моргание экрана. Иногда экран так и остается черным пока компер не выключить и при этом уже не помогает reset по PrtScr.Странные эффекты, единственно что могу порекомендовать - попробуй еще какую-нибудь клавиатуру.
Попробуй прошить ту версию, с которой пришла карта - 2.0

PS. Давай перенесем решение этой проблемы на e-mail.

Добавлено через 16 часов 52 минуты

Что-то поглядел в некоторых магазинах в Москве, не нашел. Сложилось впечатление, что как-то напряжно с маленькими клавиатурами.А я в субботу себе еще одну прикупил, за 400 р.
Sven Standart Mini 4000 Black PS/2
Работает без проблем, хотя судя по описанию может работать и с USB.
В Москве тоже можно купить:
http://www.003.ru/model/13021_137.html

skyther
02.04.2007, 21:33
Камиль, а для работы со spi из спека, что-то реализовано?

caro
03.04.2007, 11:31
... а для работы со spi из спека, что-то реализовано?Да, скоро выложу версию с возможностью посекторного доступа к SD/MMC картам,
подключенным к SPI-интерфейсу ATMega8515.
Размер сектора 256 байт - ограничен обьемом ОЗУ Mega8515 (512 байт на все провсе).
Если заменить Mega8515 на ATMega162 с обьемом ОЗУ 1024 байт,
можно будет работать с секторами по 512 байт.
Но это будет следующий этап :)