Просмотр полной версии : ZX_Multi_Card
Страницы :
[
1]
2
3
4
5
6
7
Поддерживает:
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
Вот бы платку еще....
Вот бы платку еще....
Это еще не финальный релиз!
Идеи нужны и время :)
В принципе этот вариант уже можно было бы развести и изготовить.
Почти все что нужно и может быть реализовано уже стоит.
Да я знаю ты мне кидал вариант еще без часов по моему :)
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!
2 caro
Пока все, но есть еще свободные ноги у контроллера и идеи у меня.
Предлагаю ещё MIDI интерфейс утромбовать. В одном из номеров ZX-HARD (вроде первом и втором) поднималась подобная тема и (насколько помню) давался адрес человека готового поделиться наработками и инфой по MIDI.
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.что за вопрос!?слот конечно.вроде как стандарт уже.
cr0acker
08.04.2005, 00:31
Да я знаю ты мне кидал вариант еще без часов по моему :)
Так народ давайте говорите как делать лучше только шлейф или слотовую часть тоже сделать, меня например реальщики просили делать со слотом.
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!
Ну это как я понимаю результат нешего с каилом разговора о будуще контроллере для АТМ Турбо 2++
2 caro
Пока все, но есть еще свободные ноги у контроллера и идеи у меня.
Предлагаю ещё MIDI интерфейс утромбовать. В одном из номеров ZX-HARD (вроде первом и втором) поднималась подобная тема и (насколько помню) давался адрес человека готового поделиться наработками и инфой по MIDI.
миди - это рс232+гальваническая развязка. Лишшь бы частоты хватило. А ее у АТмега хватит, повверь мне :)
2 caro
Отличная работа. Все хотели сделать, а вы сделали :-)
2 caro
Отличная работа. Все хотели сделать, а вы сделали :-)
Еще не сделана :wink:
Это из разряда: совершенству нет предела? :)
Или сделана - это когда уже серия?
Ну это как я понимаю результат нешего с каилом разговора о будуще контроллере для АТМ Турбо 2++
ДА на АТМ тоже подразумевается замена на AT8515.
Это из разряда: совершенству нет предела? :)
Или сделана - это когда уже серия?
Когда есть изделие и руководство по его эксплуатации как минимум.
Не обязательно серия :)
Камиль я все таки думаю есть смысл поддержать GamePAD или джойстик!
Это логично с точки зрения назначения устройства!
Пока не решен окончательно вопрос конструктива - слотовая конструкция с возможностью распайки жгутом и с выносной планкой разьемов перифирии, или просто выносная плата контроллера с разьемами.
Я бы сделал стандартно: плата для установки в слот с разъемами прямо на ней. Кому нужно вывести разъемы в другое место - спаяет удлинитель, у кого нет слотов - вопрос 10 рублей за слотовый разъем на шлейф или на пайку, по желанию. Если хочется совсем удобно - имеет смысл оставлять рядом с разъемами площадки для пайки или ставить разъемы как под джамперы на пц.
Я бы сделал стандартно: плата для установки в слот с разъемами прямо на ней. Кому нужно вывести разъемы в другое место - спаяет удлинительНадо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
CHRV берется изготовить вариант под слот.
Надо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
CHRV берется изготовить вариант под слот.
Добавлю, что прошивка есно будет одинаковая и устройства функционально идентичны. У меня будет плата под слот, и болтающиеся на удлинителях разьемы - два Ps/2 и COM... может и под джойстики если генеральный конструктор решит поддержать :wink: .
Только джойпады от какой приставки? От PS1,2 Nintendo64 и ещё какие-то нецелесообразно, т.к. они как правило с аналоговыми джойстиками и стоят не хило.
Только джойпады от какой приставки? От PS1,2 Nintendo64 и ещё какие-то нецелесообразно, т.к. они как правило с аналоговыми джойстиками и стоят не хило.
Sega, там цифровой выход и стоят они бюджетно!
Да! Давайте от sega или PS1 ! а стоят они :) Ну у нас аж по 2 доллара. Разорительно, не правда ли ? А вот от PS1 с вибро или от PS2 или там nintendo - да! Цена уже от 10$. Но Кнопок... Кнопок достаточно и на джойстике от Денди.
Давайте исходить из кол-ва кнопок, что нам надо, и из сложности реализации того / иного джоя.
Т.е. помню, что везде просто на проводках работают в Сеге и Денди лево право верх низ и кнопка А. Остальное - через контроллер. Как его "разобрать" и припрячь ?
От Сеги более надёжные, чем от Денди (скока их погорело, ужас).
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!
тогда уж и кемпстон :)
а вообще амижники их цепляют с заменой 5и7 ног в разъеме, т.е. там обычный протокол "кнопки" как и на спековских джойсах
а вообще амижники их цепляют с заменой 5и7 ног в разъеме
хотя этого на все кнопки не хватит и наверно что-то последовательное там тоже есть.
а на дендях воще какой-то последовательный интерфейс, там 5 жил всего-то
т.е. там обычный протокол "кнопки
и какой смысл городить ради этого АТмегу ?
надо попробовать подрубить, должно работать.
да, кстати, а чего кварц всего на 9мгц ? или там удвоитель частоты есть внутри ?
и программирование "от спека" сразу не предусмотрено ? (я так понимаю надо кабель от ISP_AVR на LPT скажем)
PCF8583P RTC, 240 байт RAM, DIP8, Phillips.
а может RTC все же на самой 8515 реализовать как-то ? EEPROM есть.
цену ефинд выдал 1-3$+ - сколько они реально-то стоят.
а может RTC все же на самой 8515 реализовать как-то ? EEPROM есть.Дык,а как часики то ходить будут без питания?
При каждом включении выставлять время и дату чтоли.
А вообще PCF8583P очень удачный и компактный чип.
Т.е. помню, что везде просто на проводках работают в Сеге и Денди лево право верх низ и кнопка А. Остальное - через контроллер. Как его "разобрать" и припрячь ?
В NES-джойстиках (Денди) последовательный протокол, не может там ничего работать 'просто на проводках'. 5 проводов - VCC, GND, Clock, Select, Data. Простой паралельный интерфейс только в Сеговских джойстиках, от Master System и Genesis.
Shiru, спрорить не буду насчет денди... (но был джой к спеку проводками подключен у товарища) Но на сеге так как я писал. Т.е. кнопки bcd xyz start select напрямую не работают. В сеге тоже ведь 9 проводков на вывод. А может и меньше (не помню уж)
Надо будет умудриться поставить разьемы, так что бы это подошло во всех случаях. А такой удлинитель (два PS/2 и один как минимум DB9) не дороговато будет ставить.
Ох. Во всех случаях не подойдет никогда. Если бы хоть эти аппараты (спектрумы) в одинаковых корпусах стояли... А то и такого нет.
Удлинитель же я предполагал выполненный потребителем, т.е. на цену устройства не влияющий.
В общем похоже остановились на двух вариантах - я делаю плату минимального размера (все в корпусах под поверхностный монтаж) с разьемами для подключения PS/2 мышки и клавиатуры, DB9 для подключения по RS232, креплением на планку по типу IBM-ской и распайкой под 40-жильный шлейф (как на HDD).
А что такое "распайка под шлейф"? Гребенка для разъема IDC? Или контактные площадки на плате для напайки проводков из шлейфа?
А что такое "распайка под шлейф"? Гребенка для разъема IDC? Или контактные площадки на плате для напайки проводков из шлейфа?Разводка под двухрядную 40-контактную гребенку (запаивать разьем IDC или паять шлейф на плату, решит тот кто будет заниматься монтажем). Я бы предпочел устанавливать на плату розетку.
Если к 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
Разводка под двухрядную 40-контактную гребенку (запаивать разьем IDC или паять шлейф на плату, решит тот кто будет заниматься монтажем). Я бы предпочел устанавливать на плату розетку.
Если есть место под IDC, то контактная площадка под слот требует из затрат только 2 см2 на плате ;-) Вся разводка то есть... И все счастливы.
В качестве рац. предложения.
PS на самом деле наверное это удовлетворяет больше всего пожеланий, т.к. я например не понимаю плату расширения без слота, а кто то утилитарно ругается на слотовые площадки, распаивая туда шлейф по привычке.
Если есть место под IDC, то контактная площадка под слот требует из затрат только 2 см2 на плате ;-) Вся разводка то есть... И все счастливы.
В качестве рац. предложения.
PS на самом деле наверное это удовлетворяет больше всего пожеланий, т.к. я например не понимаю плату расширения без слота, а кто то утилитарно ругается на слотовые площадки, распаивая туда шлейф по привычке.
Я сделаю побольше площадью и универсальную! С шагом 2.5 (как у отечественных слотов). И планирую ILX232 поставить набортно :).
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 можно поддержать только две стандартных кнопки, и ничего в джойстике и контроллере перековыривать не придётся.
3) RS232 - поддержка внешнего модема с адресацией по Кондратьеву.
Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.
Возможно для "кондратьевского" модема они и не использовались, я точно не знаю. тем не менее, считаю что без этих сигналов произойдет следующее:
1. работа внешних модемов будет нестабильной.
2. передачи будут прерываться.
3. софт толковый не написать.
Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.
Возможно для "кондратьевского" модема они и не использовались, я точно не знаю. тем не менее, считаю что без этих сигналов произойдет следующее:
1. работа внешних модемов будет нестабильной.
2. передачи будут прерываться.
3. софт толковый не написать.На приеме в контроллере происходит буферирование входного потока данных.
Размер буфера 128 байт, что при опросе контроллера по прерываниям с частотой 50 герц,
обеспечивает максимальную скорость принимаемых данных:
BPS = 128*50 = 6400 байт в секунду.
Проверено, прекрасно работает даже с USR Courier V.Everything.
Коннект на моей телефонной линии доходит до 50 кбит в секунду (порядка 5 - 6 кбайт в секунду).
Вопрос ожидал, думал будет раньше :)
На приеме в контроллере происходит буферирование входного потока данных.
Размер буфера 128 байт, что при опросе контроллера по прерываниям с частотой 50 герц,
обеспечивает максимальную скорость принимаемых данных:
BPS = 128*50 = 6400 байт в секунду.
Проверено, прекрасно работает даже с USR Courier V.Everything.
Коннект на моей телефонной линии доходит до 50 кбит в секунду (порядка 5 - 6 кбайт в секунду).
Вопрос ожидал, думал будет раньше :)
Я так понимаю вопрос задается с точки зрения работы по нуль-модему типа ПЦ-СПЕК, СПЕК-СПЕК и тогдалее, там скорости поболе будут :)
Я так понимаю вопрос задается с точки зрения работы по нуль-модему типа ПЦ-СПЕК, СПЕК-СПЕК и тогдалее, там скорости поболе будут :)Для этого существуют команды установки скорости работы RS232.
А для синхронизации работы протокол XON/XOFF.
совершенно верно, меня наиболее интересует связь спектрумов между собой и ПЦ. а без DSR, CTS программу для поддержки таких связок написать гораздо сложнее.
тем не менее, даже с модемом по телефонной линии... что делать без RI? как компьютер узнает что кто-то звонит на модем? а если программа не только принимает/посылает данные? если программе необходимо что-то свое делать, да при отключенных прерываниях?
Неужели сложно сделать ПОЛНУЮ поддержку формата, тем более что бОльшая часть уже сделана? Зачем перекладывать решение вопросов с железа на каждую программу использующую модем?
Убедительно прошу поддержать стандарт RS232 полностью. Если есть какие-то проблемы с реализацией его, давайте обсудим. Но писать "у меня работает и без них, нафига они нужны" в разработке железа все таки не стоит.
Убедительно прошу поддержать стандарт RS232 полностью.Подумаю.
Есть идея, что еще можно "повесить" на контроллер. Поскольку в схему введен таймер и устройство обработки информации (AVR) предлагаю зарезервировать возможность управления питанием от таймера. Потребность возможно и не велика, но в перспективе не исключено что окажется востребованой.
Есть идея, что еще можно "повесить" на контроллер. Поскольку в схему введен таймер и устройство обработки информации (AVR) предлагаю зарезервировать возможность управления питанием от таймера. Потребность возможно и не велика, но в перспективе не исключено что окажется востребованой.
точно-точно, завести туда узел управлением ATX БП
точно-точно, завести туда узел управлением ATX БП
и кнопки power/sleep на пц клаве заюзать ;)
Если хочется совсем удобно - имеет смысл оставлять рядом с разъемами площадки для пайки или ставить разъемы как под джамперы на пц.
Во, самое оно. Сами разъемы на плату можно не паять. Вставляем плату в слот (или елку), наружу цепляем выкидыши. Пеньков и разъемов для них на старых мультяхах у меня лично хватает.
С другой стороны если на плате уже будут разъемы, то никто не помешает мне их выпаять, вынести на корпус и добавить удлиннитель. Но первое имхо удобнее. По крайней мере для ZS/Kay
а как насчет скролл-колеса на мыше :)
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)
AlexCrush
05.05.2005, 19:09
а как насчет скролл-колеса на мыше :)
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)
Чисто технологически это не сложно - в протоколе обмена с мышкой вначале отсылается мышке дополнительное указание о необходимости работы колесика (хитрый порядок смены частоты передаваемых данных) и после этого она начинает слать пакетики не по 3 байта а по 4 - уже с инфой о колесе
вроде как есть и такое, когда в старших четырех битах порта кнопок сидит счетчик от этого колеса (аналогично координатным X,Y только 4-битный)
имеются ввиду порты кемпстон-мыши ессно.
в каком-то DonNews (16 или около того) была статья (и поддержка листалкой), и на paradox-е такую мышу показывали.
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?
Я конечно не Камиль, но порекомендую вот это:
http://john.ccac.rwth-aachen.de:8000/as/
Этот асм понимает туеву хучу различных процессоров: z80, 6502, pic16, pic18, avr, 68k... и ещё сотни других.
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?AVR-ская бесплатная ASTUDIO.
Очень рекомендую для этих целей Algorithm Builder.
Визуальное построение алгоритма на ассемблере - такого я еще не видел :)
Фришная версия работает прекрасно, ограничений не обнаружено :p
Yaroslav
08.07.2005, 05:21
Очень рекомендую для этих целей Algorithm Builder.
Визуальное построение алгоритма на ассемблере - такого я еще не видел :)
Фришная версия работает прекрасно, ограничений не обнаружено :p
А как же ограничение в 1Кб кода.
Камиль, скажите пожалуйста, какой софт Вы используете для разработки прошивок на AVR?
Я не Камиль, но вставлю 5 копеек :)
Лично я использую AVR-GCC. Очень удобно тем, что бесплатно, стандартно и никаких тебе "ограничений на 1Кб", кряков и прочей байды.
Вообще - если интересует работа с AVR-контроллерами - то прошу сюда:
http://www.nedopc.org/forum/
В раздел AVR.
Кстати (порекламирую немножко, да простят меня модераторы) - во втором номере журнала NedoPC, насколько мне известно, будет довольно объемный материал по железу и программированию AVR-контроллеров. Рекомендую обратится к этому изданию.
во втором номере журнала NedoPC
А, где первый искать?
А, где первый искать?
Насколько мне известно - распространением журнала занимается из здешних - CHRV. Поэтому все вопросы - к нему, я подробностей не знаю, потому врать не буду.
Господа, возможно я это где-то просмотрел - какова максимальная скорость передачи по RS-232 случае ее реализации на MAXIMовской серии? В даташит носом сувать не надо, я сам :). Со стороны спека есть какие-либо ограничения?
Можно конкретизировать вопрос? Имеется в виду макс. скорость для MAX232 или контроллера by Caro? У MAX232 по доке 115,2 КБод, но наверное и 4МБод потянет. С контроллером это только Caro поможет, так как скорость напрямую зависит от реализации. Но поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод. Поскольку в приблизительном пересчете это 10 КБ/с, сам Спектрум это не должно сильно напрягать.
Господа, возможно я это где-то просмотрел - какова максимальная скорость передачи по 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 бод.
подскажите по каким аресам доступны СОМ порт и часы
.. поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод. Поскольку в приблизительном пересчете это 10 КБ/с, сам Спектрум это не должно сильно напрягать.Да нет напрягает, надо же заниматься и обработкой этих данных.
В простейшем случае хотя бы выводить на экран, а это как сами понимаете делается не мгновенно :)
В контроллере на AT90S2313 и в ZX_Multi_Card предусмотрен буфер для данных на приеме обьемом порядка 120 байт, что даже при опросе по прерываниям от системного таймера (50 раз в секунду) дает возможность работать со скоростью до 50*120=6000 байт/секунду.
Тоесть принципиально можно работать и на скорости 57600 бод.
Но поскольку за основу была взята схема Кондратьева, базировавшаяся на PC-Multicard, то с уверенностью можно говорить только о 115,2 КБод.
Мгм... Разногласие в стане, тов. разработчики. Ладно 57600 это тоже немало, хотя 115.2 кБит было бы лучше. Если на вскидку сказать, то что в первую очередь ограничивает скорость работы порта RS-232, тов. Каримов? В ZX-MultiCard, естественно?
Мгм... Разногласие в стане, тов. разработчики. Ладно 57600 это тоже немало, хотя 115.2 кБит было бы лучше. Если на вскидку сказать, то что в первую очередь ограничивает скорость работы порта RS-232, тов. Каримов? В ZX-MultiCard, естественно?ZX-MultiCard запросто работает и со скоростью 115200 и это предусмотрено в настройках.
А вот для Спектрума скорость обработки, как я уже это отметил, будет зависить от того, что с этими данными будет делать приложение и как оно будет отслеживать прием потока данных.
В общем работайте на скорости 115200, но не забывайте о квитировании сигналами RTS/CTS :)
ZX-MultiCard запросто работает и со скоростью 115200 и это предусмотрено в настройках.
А вот для Спектрума скорость обработки, как я уже это отметил, будет зависить от того, что с этими данными будет делать приложение и как оно будет отслеживать прием потока данных.
В общем работайте на скорости 115200, но не забывайте о квитировании сигналами RTS/CTS :)
Вопрос такой - какова потенциально возможная скорость приемопередачи в данной схеме? Как можно предположить, предельная скорость будет определяться тактовой частотой AVR (Fuart=Fclk/16) и задержками на обработку инфы ядром AVR. Так вот, какова задержка на обработку инфы и потенциальная результирующая скорость по COM-порту. Про программую совместимость с кондратьевской схемой и обработкой по INT пока не говорим.
Вопрос такой - литиевой батарейки на 3.3 В разве хватит? Ага, если верить даташиту, то минимальное рабочее напряжение микросхемы 2.5 В. С учетом падения на диоде, получается 0.2 запаса. Как долго без питания часы живут? Или может быть диоды особенные?
Вопрос такой - литиевой батарейки на 3.3 В разве хватит? Ага, если верить даташиту, то минимальное рабочее напряжение микросхемы 2.5 В. С учетом падения на диоде, получается 0.2 запаса. Как долго без питания часы живут? Или может быть диоды особенные?Если внимательно посмотреть даташит, то написано: при не активном I2C, что подразумевает работу часов в режиме хранения, рабочее напряжение от 1в до 6в.
А совсем без питания часы естественно сразу останавливаются :)
Диоды обычные, например КД522.
С учетом падения на диоде, получается 0.2 запаса.
Если опасаешься прямого падением напряжения на кремниевых диодах (порядка 0.7-0.8 В), используй диоды Шотки, у них Vf=0.25-0.3 В. Наиболее широко распространен и известен 1N5817. Можно также использовать другие 1N581x.
Ага, спасибо с диодами и батарейкой разобрался :) .
Еще такой вопрос к тов. Камилю - больше доработок/наворотов (относительно схемы первого поста) в контроллер не делалось?
... больше доработок/наворотов (относительно схемы первого поста) в контроллер не делалось?Пока нет.
Камиль, разжуйте пожалуйста поподробнее что за разъемы X3, X5 и их возможное конструктивное исполнение. X2, если конечно я не ошибаюсь - слотовоелочный разъем ZX-BUS?
разжуйте пожалуйста поподробнее что за разъемы X3, X5 и их возможное конструктивное исполнение.X3 и X5 на самом деле один 40-контактный разьем типа PLD-40 (как на винчестерах).
X2, если конечно я не ошибаюсь - слотовоелочный разъем ZX-BUS?Он самый.
X3 и X5 на самом деле один 40-контактный разьем типа PLD-40 (как на винчестерах).
То есть это тоже ZX-BUS?
То есть это тоже ZX-BUS?Да, укороченный под 40-жильный шлейф.
У себя в Кворуме мне так удобно цеплять дополнительные примочки.
Yaroslav
06.09.2005, 09:53
И еще вопрос кто нить в курсах у сеги как пад подцепляется (по какому протоколу), может добить как синклер-джойстик на плату!
Боюсь уже не актуально,но всё таки.
Статья по этому поводу
Странно как-то... Никто не спрашивает "а как я могу изменить раскладку кнопок?". Прям такое очучение, что этот девайс делал только я один :(
Ну ладно, будем ждать пока кто-нибудь спросит. А сам спросить - стесняюсь... Поэтому - не буду... :rolleyes:
а как я могу изменить раскладку кнопок?.1. Если не устраивает заложенная по умолчанию - чем?
2) Изменить очень легко, каждому скан-коду IBM в таблице перекодировки назначается код Спектрума.
Исходный текст таблицы перекодировки см. ниже.
Я думаю прочтение исходника даст понятие принципа перекодировки.
В той прошивке, что лежит на форуме адрес начала таблицы = 53Eh
Это именно та таблица, что зашита в прошивке.
Никоим образом не хочется умалять достоинства оригинальной раскладки! :)
Просто я имею в распоряжении весьма необычную клавиатуру - она финская. И по месту производства, и по содержанию. Например, доп. кнопок у нее - больше, да и расположение знаков препинания далеко не всегда совпадает. Поэтому оптимизация раскладки нисколько не помешает.
Спасибо, что так оперативно откликнулись!
Возможно в схему ZX_Multi_Card встроить полнофункциональную поддержку шины I2C подкючить 24CXXx , PCF8574 - дополнительные порти ввода вывода , АЦП - Спектрум будет отображать информацию и сохранять на дисках .
Возможно в схему ZX_Multi_Card встроить полнофункциональную поддержку шины I2C подкючить 24CXXx , PCF8574 - дополнительные порти ввода вывода , АЦП - Спектрум будет отображать информацию и сохранять на дисках .Да конечно, надо только решить вопрос с адресацией этих устройств со стороны спектрума.
James DiGreze
03.11.2005, 11:45
Есть еще один чисто технологический вопрос... Камиль, каким редактором принципиальных схем пользуетесь?
... каким редактором принципиальных схем пользуетесь?Сейчас P-CAD.
James DiGreze
04.11.2005, 07:30
Плохо... Придется ручками перерисовывать схемку в Eagle. Но все равно Спасибо! Хочу развести печ. плату. Попробовать сей девайс в работе.
... Хочу развести печ. плату. Попробовать сей девайс в работе.Ради одной штуки есть ли смысл делать печатную плату.
Я для отладки собрал на макетке - отлично работает.
James DiGreze
04.11.2005, 07:56
Может быть... Тогда встает вопрос о изготовлении переходника с kay'евского слота, допустим на 40-pin "гребенку".
Yaroslav
04.11.2005, 18:10
Может быть... Тогда встает вопрос о изготовлении переходника с kay'евского слота, допустим на 40-pin "гребенку".
Я делал плату в слот,мне не понравилось.Слишком много перемычек.
С переходником должно получше получится.
Я делал плату в слот,мне не понравилось.Слишком много перемычек.
С переходником должно получше получится.
Переходник уменьшает надежность!
А что развести по нормальному не удалось?
Yaroslav
04.11.2005, 18:38
Переходник уменьшает надежность!
А что развести по нормальному не удалось?
Да я на скору руку делал,как следует разводку обсасывать времени не было.
Получил 20 плат.
Одну собрал.
Завтра буду включать.
James DiGreze
17.02.2006, 19:10
Класс!
Жду с нетерпением результатов ;)
Класс!
Жду с нетерпением результатов
А я жду 5 заказанных экземпляров :)
Получил 20 плат.
Одну собрал.
Завтра буду включать.
А сколько будет стоить? и как можно заказать ? :rolleyes:
Камиль, как насчет того чтобы дабавить в контроллер кворумовскую клавиатуру. ИМХО лучше подключать дендивский джойстик, т.к. при этом появляется возможность легко переделать однокнопочный спековский джойстик в 4-кнопочный дендивский (у спековского 6 проводов, а у дендивского 5. У других же джойстиков количесвто проводов гораздо больше, что не позволяет использовать для соединения распространенный на спеках штекер СШ-5). Во-вторых в денди-джойстике аппаратно реализованы кнопки ТУРБО. А по цене девайс вообще вне конкуренции.
ИМХО лучше подключать дендивский джойстик, т.к. при этом появляется возможность легко переделать однокнопочный спековский джойстик в 4-кнопочный дендивский (у спековского 6 проводов, а у дендивского 5. У других же джойстиков количесвто проводов гораздо больше, что не позволяет использовать для соединения распространенный на спеках штекер СШ-5). Во-вторых в денди-джойстике аппаратно реализованы кнопки ТУРБО. А по цене девайс вообще вне конкуренции.
а имхо лучше все же сеговский
разьем у него - это не менее распространенный DBF-9(вилка выламывается с материнки(com-порт) или покупается в любых радиодеталях), кнопок больше(8, вместо 4 дендивских(обычные и турбо считаю за одну, ес-но))
да и удобней он, весь такой изогнутый :cool:
дендивский "параллелепипед" по эргономике вообще никакой :rolleyes:
минус, правда, в том, что контактов на него больше уйдет, параллельный все-таки..
Да в сеговском джойстике сила... :) только контроллер похоже нужен... или нет ?
Да в сеговском джойстике сила... :) только контроллер похоже нужен... или нет ?
тока если вдруг у меги не хватит ног и придется параллельный код переделывать в последовательный
у меня, кстати, по этой схеме не заработало, подключал по схеме, где все данные передаются по основному порту(2-9 пины LPT-разьема), робит на ура. Причем +5v никуда не подключал, до сих пор не пойму, как так :)
Жду с нетерпением результатов ;)Новая плата с прошивкой, выложеной в первом посте этой темы работает без проблем.
Пока не обнаружил ни одной ошибки в трассировке.
Сейчас добавлю в прошивку поддержку RS232 и попробую подключить модем.
Новая плата с прошивкой, выложеной в первом посте этой темы работает без проблем.
Пока не обнаружил ни одной ошибки в трассировке.
Сейчас добавлю в прошивку поддержку RS232 и попробую подключить модем.
Камиль, под какую распиновку разведена плата? Судя по фотографии её просто вставляешь и всё и подозреваю, что вставляешь в Кворум, да?
Камиль, под какую распиновку разведена плата?ZX-bus, в том виде, какой используется в основных моделях Спектрумов.
Шаг контактов 2.54 мм
Судя по фотографии её просто вставляешь и всё и подозреваю, что вставляешь в Кворум, да?Системный разьем в Кворумах выполнен в виде краевого разьема ZX-bus,
так как это сделано в фирменных Спектрумах.
Тоесть слотов для подключения нет.
Но я просто соединил два слотовых разьема друг с другом.
В результате через этот переходник подключал плату и к Кворуму и
к фирменному ZX-Spectrum 2+.
А есть свободные на продажу?Если есть сколько стоит?Пока есть.
Стоимость самой платы получилась порядка 130 р.
(за изготовление 20 плат я заплатил чуть больше 2600 р.).
Пересылка по России сейчас стоит от 80 до 100р.
Кому надо пишите в личку, а лучше на e-mail: k2k(at)list.ru
немного оффтоп: а чем и как эти все поверхностные компоненты паять? я бы взял платку, но не знаю, реально ли напаять весь этот ужас ;) обычным совковым паяльником :)
немного оффтоп: а чем и как эти все поверхностные компоненты паять? я бы взял платку, но не знаю, реально ли напаять весь этот ужас обычным совковым паяльником
Ничего там ужасного нет. Шаг ножек 1,25 (1,27) мм прекрасно паяется, даже легче чем DIP с шагом ного 2,5 (2,54) мм...
... реально ли напаять весь этот ужас ;) обычным совковым паяльником :)Паяльник с тонким жалом, не более чем на 25 ватт
(желательно с регулятором температуры, но не обязательно),
и все паяется на Ура.
Тем кто заказал голые платы я их выслал сразу (пока 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-контроллеров.
В дальнейшем предполагаю сделать вариант загрузчика,
который позволит загружать прошивку и прямо на Спектруме.
Думаю это актуально для модификации раскладки клавиатуры.
А заказы ещё принимаются ?
Я бы тоже не отказался...
Можно это оформить ? и как ?
Хотелось бы собраную плату.
В результате сборки и отладки первых экземпляров 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-ки НУЛЬ-модемным кабелем.
Обновил версию начального загрузчика ZX_MCard (см. пост 1.)
Теперь его можно будет вызывать нажатием клавиш ALT+Pause не выключая компьютер.
Естественно это работает, если текущая прошивка нормально поддерживает работу клавиатуры.
Для принудительного запуска начального загрузчика как и в старой версии, необходимо
установить перемычку между 1 и 2 контактами X5 (подать землю на вывод 29 ATMega8515).
У Мультикарты появилась новая функция:
Надоело мне в процессе отладки набирать с клавиатуры тестовые процедурки
для проверки отдельных узлов мультикарты.
У нее же все равно "мозгов" достаточно, да и ресурсы не исчерпаны.
Вот и заставил я ее саму набирать эти тексты.
Теперь клавиши ALT на IBM-ской клавиатуре при нажатии с любой другой клавишей
вызывают на исполнение "клавиатурный скрипт" представляющий собой последовательность
нажатых клавиш.
Довольно забавно выглядит на экране :) .
Скрипты могут размещатся в EEPROM (обьем 512 байт)
и в свободной зоне программ (пока доступно 2 кбайта).
Кроме вызываемых по горячим клавишам скриптов, предполагается еще задавать их по:
1) включению питания;
2) по RESET
3) по NMI
Это позволит хранить в контроллере например начальный загрузчик, для работы
с карточкой SD или MMC, которую уже сейчас можно подключить к свободному пока интерфейсу SPI.
Обновил версию начального загрузчика (см. 1 пост).
James DiGreze
21.03.2006, 19:18
Это позволит хранить в контроллере например начальный загрузчик, для работы с карточкой SD или MMC, которую уже сейчас можно подключить к свободному пока интерфейсу SPI.
Для работы с SD/MMC картой требуется некий порт (со стороны z80), запись в который должно инициировать обмен по SPI, а чтение из этого порта должно отдавать полученный результат. А также потребуется еще и некий флаг окончания обмена. При обмене одной ногой AVR нужно еще делать "селекцию" низким уровнем, говоря карточке о начале обмена. Чуток позже выложу нужные диаграммы...
В общем, собственно говоря, вопрос стоит в том, а можно ли организовать этот порт и порт флага (последний можно совместить с чем-либо еще)?
..... собственно говоря, вопрос стоит в том, а можно ли организовать этот порт и порт флага (последний можно совместить с чем-либо еще)?Если внимательно посмотреть на схему карты, то видно, что ей доступны
кроме 256 клавиатурных портов (**FEh), 256 портов модемных (**EFh)
и 256 портов мышиных (**DFh).
Причем это полноценные порты ВВОДА/ВЫВОДА, тоесть могут работать
и на чтение и на запись.
Так что с портами никакого напряга нет.
Для работы часов например, выделено адресное пространство от 0E0EFh
до 0EFEFh (16 портов чтения/записи).
Судя по схеме RS232 не полный, недостает важных сигналов без которых надежные прием/передача данных на медленном железе как спектрум практически невозможна. Я говорю о сигналах DCD, DSR, CTS.
DCD -- carrier detect
DSR -- готовность модема
не особо и нужны. но при работе /именно с модемом/ нужны. потому как
модем может быть действительно не готов, и непонятно как (кроме как по строке CONNECT) определять наличие, а главное пропадание несущей.
CTS -- вот это проблема.
Для этого существуют команды установки скорости работы RS232.
А для синхронизации работы протокол XON/XOFF.
Команды установки скорости предполагают установку исключительно МАКСИМАЛЬНОЙ скорости...
XON/XOFF работает только в направлении потока данных спектрум->пц. в обратном
пц может не успеть среагировать. XON/XOFF вносит бОльшие задержки в процесс
передачи данных. XON/XOFF не может быть использован только в одном направлении
(в то время, как в другом, например, RTS/CTS) (т.е. может, но это хакерство).
XON/XOFF -- это НЕ ПОЛНОСТЬЮ 8-bit ПРОЗРАЧНЫЙ протокол. Он не позволяет,
например, использовать X-modem (а это может быть, или Y-modem, работать по-быстрей
Z-modem'а ввиду его крайней простоты).
AVR-ская бесплатная ASTUDIO.
AVRA для всего мелкого и GCC для всего большого.
... CTS -- вот это проблема.Согласен, для синхронной работы на высоких скоростях обязательно наличие режима CTS/RTS.
Такой режим в карте предусмотрен.
Вчера попробовал погонять файлы с IBM на Спектрум и наоборот по нуль-модемному кабелю.
На Спектруме работал в Melon v1.90i, на IBM - TeraTerm.
К сожалению в Melone максимальная скорость 57600 бод.
Поэтому не удалось опробовать максимальную скорость 115200.
На скорости 57600 все работает без проблем.
В результате эксперимента с подключение ZX_MCard к Скорпиону выяснилось, что совместная ее работа со SMUC невозможна.
Дело оказалось в конфликте портов, которое в принципе лечится, но доработкой либо карты, либо Скорпиона.
Так что если кто в Питере желает все таки иметь ZX_MCard, обращайтесь к Николаю Амосову, он решил, что она ему ни к чему.
--- cut -----
Ну вообщем произошло то, чего я больше всего боялся - ни один новый
девайс не работает со Скорпионом. Так было в случае с TurboSoundFM, а
вот теперь в ZXMC.
"Издеваться" над компьютером я не буду, а ZXMC попробую продать.
У меня к Вам просьба - если к Вам обратится кто-нибудь из Питера на
предмет покупки карты ZXMC отошлите его пожалуйста ко мне.
--- cut ----
В принципе это моя ошибка. Не надо было экономить на дешифрации портов.
Достаточно было добавить еще один корпус ЛИ1, что бы такого не произошло.
Для тех кто будет собирать самостоятельно, и подключать именно к Скорпиону со SMUC, кину в первый пост доработанную схему.
PS. Николай пока решил оставить у себя.
Так было в случае с TurboSoundFM
а TSFM тут причем ? там никаких новых портов нет, все стандартное AY-шное. Ну разве что дурь с теневиком какая...
а TSFM тут причем ? там никаких новых портов нет, все стандартное AY-шное. Ну разве что дурь с теневиком какая...
Вить, я об этом писал в теме по ТФМ. Смотри.
Выложил новую версию прошивки для ZXMC - версия 1.2
(см. пост 1)
Клавиатура, мышка, RS232, часы.
PS. Для самостоятельно собравших, предупреждаю о необходимости
подтягивающих резисторов на шине i2c даже при отсутствии часов.
Orionsoft
08.04.2006, 04:15
Что надо проделать для совместимости со [скорпионом&smuc&GS] ?
Что надо проделать для совместимости со [скорпионом&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:
В результате эксперимента с подключение ZX_MCard к Скорпиону выяснилось, что совместная ее работа со SMUC невозможна.
Дело оказалось в конфликте портов, которое в принципе лечится, но доработкой либо карты, либо Скорпиона.
Так что если кто в Питере желает все таки иметь ZX_MCard, обращайтесь к Николаю Амосову, он решил, что она ему ни к чему.
--- cut -----
Ну вообщем произошло то, чего я больше всего боялся - ни один новый
девайс не работает со Скорпионом. Так было в случае с TurboSoundFM, а
вот теперь в ZXMC.
"Издеваться" над компьютером я не буду, а ZXMC попробую продать.
У меня к Вам просьба - если к Вам обратится кто-нибудь из Питера на
предмет покупки карты ZXMC отошлите его пожалуйста ко мне.
--- cut ----
В принципе это моя ошибка. Не надо было экономить на дешифрации портов.
Достаточно было добавить еще один корпус ЛИ1, что бы такого не произошло.
Для тех кто будет собирать самостоятельно, и подключать именно к Скорпиону со SMUC, кину в первый пост доработанную схему.
PS. Николай пока решил оставить у себя.
Не подскажите, как связатся с Николаем Амосовым ?
Какова цена новой готовой карты ?
Версия прошивки для 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'.
Для работы с картами SD и MMC собрал небольшую "дочку" для ZXMC.
James DiGreze
22.04.2006, 11:19
Выкладываю на всеобщее обозрение небольшой мануал в формате RTF с описанием интерфейса RS232, входящего в состав ZX MultiCard.
К сожалению, пока без примеров...
Выкладываю на всеобщее обозрение небольшой мануал в формате RTF с описанием интерфейса RS232, входящего в состав ZX MultiCard.
К сожалению, пока без примеров...Примером программирования может служить исходник TinyTerm, выложенный в первом посте этой темы.
Добавил на дочернюю плату для ZXMC пару EEPROM
с интерфейсом I2C (по 64 Кбайт каждая).
Идея в том, чтоб операционку хранить в несьемном
носителе, которым и будет эта память.
Файловую систему здесь можно иметь упрощенную,
например как в CP/M.
Карточки SD/MMC играют роль сьемного устройства
с файловой системой совместимой с IBM.
Добавил на дочернюю плату для ZXMC пару EEPROM
с интерфейсом I2C (по 64 Кбайт каждая).
Идея в том, чтоб операционку хранить в несьемном
носителе, которым и будет эта память.
Файловую систему здесь можно иметь упрощенную,
например как в CP/M.
Эта ОС будет самопрошиваться в некоторую область MCU?
Какие у неё планируются функции?
Эта ОС будет самопрошиваться в некоторую область MCU?Для хранения ОС в MCU неоходимо по крайней мере 16 кбайт свободной памяти.
К сожалению на сегодняшний день у ATMEL нет контроллера, совместимого
по ножкам c ATMega8515 с обьемом памяти больше 16 кбайт (16 килобайт у ATMega162).
Маловато будет :)
Прошиваться ОС будет в дополнительные EEPROM, которые я поставил на дочернюю плату.
Какие у неё планируются функции?Для начала адаптирую ZXCPM.
Нормальная ОС со всеми функциями присущими таковым.
Добавлю поддержку FAT16 для работы с карточками SD/MMC
Прошиваться ОС будет в дополнительные EEPROM, которые я поставил на дочернюю плату.
Мне просто не понятно, как будет выполняться код подпрограмм зашитых в EEPROM, вот я и подумал, что этот код будет перебрасываться в память программ MCU. А как иначе?
Мне просто не понятно, как будет выполняться код подпрограмм зашитых в EEPROM, вот я и подумал, что этот код будет перебрасываться в память программ MCU. А как иначе?Имеется ввиду ОС для Спектрума, а не для карты :)
Ааа... понятно. А то я думал, что будет что-то аля AVR-OS от nedoPC.
"Имеется ввиду ОС для Спектрума"
когда я планировал приделать контроллер, то предполагалась
загрузка "биоса" из контроллера на zx... Но это надо глубже
лезть в схему ...
когда я планировал приделать контроллер, то предполагалась
загрузка "биоса" из контроллера на zx... Но это надо глубже
лезть в схему ...Не надо никуда лезть.
В ZXMC реализована поддержка "клавиатурных скриптов".
Довольно забавно выглядит:
1) в начале автоматически вводится Basic загрузчик;
2) автоматически выполняется команда RUN;
3) из памяти контроллера в память Спектрума перебрасывается кодовый блок;
4) выполняется запуск кодового блока.
Сейчас так по нажатию ALT+F3 происходит загрузка TinyTerm,
который в ПЗУ Меги занимает около 600 байт.
Точно также будет происходить загрузка ОС, только
читаться она будет либо из EEPROM, либо с карточки SD/MMC
"вводится Basic загрузчик" Я предполагал полный отказ от ПЗУ.
"вводится Basic загрузчик" Я предполагал полный отказ от ПЗУ.ZXMC разработана с расчетом подключения к любой Спектрум-совместимой машине.
Причем основное требование - никаких перепрошивок ПЗУ.
Отсюда и такой способ управления - через клавиатуру :)
ZXMC разработана с расчетом подключения к любой Спектрум-совместимой машине.
Причем основное требование - никаких перепрошивок ПЗУ.
Отсюда и такой способ управления - через клавиатуру :)
Все здорово!
Нужно бы подарить карточку Димке Быстрову, чтобы скорее началась программная поддержка :)
1) в начале автоматически вводится Basic загрузчик;
Как? :v2_conf2:
Ось будет грузиться в нижнее ОЗУ (ПЗУ выключается и включаются страницы ОЗУ)?
Как? :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 ;конец скрипта
Здесь скан-коды обозначены их мнемоникой.
Ось будет грузиться в нижнее ОЗУ (ПЗУ выключается и включаются страницы ОЗУ)?Если бы у всех моделей Спектрумов был стандартизован способ включения
ОЗУ вместо ПЗУ, так бы и сделал.
Но мало того, что существует несколько вариантов управления 0-ой страницей памяти,
есть модели, и таких большинство, у которых это вообще не предусмотрено.
Так что приходится ориентироваться на большинство.
Я уже представлял в форуме свою версию ОС под названием ZXCPM,
которая отличается от стандартной смещением области ОЗУ на 6000h.
Вот и хочу для начала адаптировать ее для работы с ZXMC.
Немного поправил прошивку.
1) При выходе из TinyTerm в BASIC не очищается ОЗУ.
В терминалку можно вернуться по команде RUN 9
2) Для ускорения переделан начальный загрузчик TinyTerm.
Теперь BASIC-загрузчик читает в память Спектрума только
первые 15 байт программы, которые и догружают остальной код.
Люди, может я плохо просматривал все6 сообщения в данной теме, но где ссылки на схемы и прошивки данного девайса, или их уже засекретили...
shurik-ua
05.09.2006, 13:09
Люди, может я плохо просматривал все6 сообщения в данной теме, но где ссылки на схемы и прошивки данного девайса, или их уже засекретили...
А сцылок нету, непорядок.
А сцылок нету, непорядок.
Кстати да, нет ссылок, в первом посте ничего! Или информацию уже засекретили? :v2_biggr:
В ближайшие дни выложу ссылку.
И гиде мопассан?
Evgeny Muchkin
11.10.2006, 22:45
caro, как продвигается дело с внедрением возможности регулировки скорости мышки?
AHAHACbI
12.10.2006, 15:44
Я не понял, а где схема то сей мультикарты или где посмотреть можно? или только на заказ?
Я не понял, а где схема то сей мультикарты или где посмотреть можно? или только на заказ?Смотри http://zx.pk.ru/showpost.php?p=9958&postcount=1
как продвигается дело с внедрением возможности регулировки скорости мышки?А достаточно ли будет изменять 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. Или это уже есть?
К слову, я вспомнила одну фишку, которую ещё RDC делал на контроллере ps/2 мышки для амиги, а именно, ограничение изменения счётчиков за 1 кадр, не более +-127. Или это уже есть?Пока никакого программного контроля нет, что приходит с мышки, то и выдается в порты.
За кадр, если я правильно понял, это между двумя прерываниями (если говорить о Спектруме)?
А есть ли необходимость в таком контроле?
При максимальном разрешении в 8 ед./мм получим ограничение 128/8 = 16мм за 20 мсек.
Тоесть ограничение будет равно 16*50 = 0.8 м/сек.
Это надо?
Evgeny Muchkin
13.10.2006, 10:01
Мне кажется, что этого набора варьируемых параметров будет более чем предостаточно. Чего там еще программно обрабатывать? Разгон мышки чтоли делать, по аналогии как управление курсорной стрелкой от клавиатуры в большинстве программ? :)
И, если честно, хотелось бы более удобного способа редактирования прошивок.
А вообще, девайс получился просто великолепный! Спасибо, Камиль!
Мне кажется, что этого набора варьируемых параметров будет более чем предостаточно. Чего там еще программно обрабатывать?Есть в принципе варианты, например фильтрацию быстрых перемещений.
И, если честно, хотелось бы более удобного способа редактирования прошивок.Предложи вариант, как бы хотелось.
yoko_ono
13.10.2006, 10:33
Пока никакого программного контроля нет, что приходит с мышки, то и выдается в порты.
За кадр, если я правильно понял, это между двумя прерываниями (если говорить о Спектруме)?
А есть ли необходимость в таком контроле?
При максимальном разрешении в 8 ед./мм получим ограничение 128/8 = 16мм за 20 мсек.
Тоесть ограничение будет равно 16*50 = 8 м/сек.
Это надо?
Вроде бы это легко проверить - загнать стрелочку в угол экрана и резко подвигать мышой в одну сторону, чтоб стрелочка упиралась в бордюр. Если она будет вдруг срываться с места, то - есть необходимость.
Конечно, можно оставить и так, но не стоит ли устремиться к совершенству? Всё же не пц...
caro, как продвигается дело с внедрением возможности регулировки скорости мышки?
Есть в принципе варианты, например фильтрацию быстрых перемещений.
Не нужно ничего фильтровать. Итак нормально! То, что мышка бегает быстрее, чем в других контроллерах (например, в Скорпионовском мышь "бегала" гораздо медленнее), так это не такой уж большой минус. Просто привыкнуть надо.
А вообще, я написал драйвер для мышки (используется в игре Вера и колесо еще опрашивается), у которого можно регулировать скорость перемещения курсора - как занижать скорость, так и завышать ее.
P.S. На моем Кае к мультикарте подключена оптическая мышь Logitech sbd69.
Не нужно ничего фильтровать.Может ты и прав, поскольку ZXMC в данном случае просто передает информацию от мышки в Спектрум.
Всю конечную обработку можно делать уже в Спектруме.
А вот настройку мышки со стороны Спектрума конечно придется сделать.
Может ты и прав, поскольку ZXMC в данном случае просто передает информацию от мышки в Спектрум.
Всю конечную обработку можно делать уже в Спектруме.
А вот настройку мышки со стороны Спектрума конечно придется сделать.
Все верно. Ведь в любом случае, для управления курсором от мышки пишется какой-то драйвер. Так почему бы ему и не заняться управлением скорости и прочего...
Evgeny Muchkin
13.10.2006, 11:20
Все верно. Ведь в любом случае, для управления курсором от мышки пишется какой-то драйвер. Так почему бы ему и не заняться управлением скорости и прочего...
Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.
Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.Основной вопрос был, хватит ли тех настроек, которые предусмотрены для самой мышки
что бы получить нормальный результат для уже существующих драйверов.
Если этого достаточно, то я сделаю так что выбранная настройка будет запоминатся
в EEPROM мультикарты и при включении питания мышка будет перенастроена под
выбранный режим.
Ну можно еще предусмотреть переключение по горячим клавишам - если понадобится.
При максимальном разрешении в 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 м/с
Вот и верь на слово после этого...
Скорость же действительно вполне достижимая, и вышеуказанные глюки будут иметь место.
Да потому что уже написано сто тыщь программ, в которых нерегулируемый драйвер мышки. Я вообще еще ни одной такой проги не видел.
Это чтож все придется переламывать и запихивать новый драйвер в каждую софтину старую???!
Фигня какая-то получится. Неправильно это.
На счет ста тысяч программ ты не прав. Дай Бог 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
Журналы всеразличные газеты...
Z-Player v3.0+ :D
RiffTracker 4.19
ARTIST-2
ART-Studio
Журналы всеразличные газеты...
Это все же не сотни тысяч и даже не сотни штук...
Хотя, Камиль, вроде уже согласился что-то сделать в этом направлении.
Evgeny Muchkin
16.10.2006, 15:31
не сотни тысяч
Ну я же утрировал ё-маё :)
Для разрешения экрана 256х192 курсор бегает весьма удобно, ИМХО.
Нужно ли пересчитывать битрейт - навряд ли. Но на свете 6 миллиардов мнений... :)
.. какими старыми программами поддерживающими мышку мы пользуемся?
Рекомендую зайти по ссылке:
http://velesoft.speccy.cz/kmsoft.htm
Наши чешские друзья здорово поработали, адаптирую старые программы под работу с мышью.
Рекомендую зайти по ссылке:
http://velesoft.speccy.cz/kmsoft.htm
Наши чешские друзья здорово поработали, адаптирую старые программы под работу с мышью.
Поработали они хорошо (первая часть представленного).
Практически все остальное это наши (отечественные) программы и игры:)
Ну я же утрировал ё-маё :)
Ладно, не будем ссориться :)
Evgeny Muchkin
17.10.2006, 09:21
Ладно, не будем ссориться
Разумеется :) Просто в споре рождается истина, как говорится.
Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)
Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса?Пробовал несколько разных мышек (5 типов), разницы в поведении не заметил.
В принципе так и должно быть, поскольку для всех выставляется режим принятый по умолчанию = 100/4/1:1
Разумеется :) Просто в споре рождается истина, как говорится.
Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)
У меня на контроллере от Create Soft (Kempston mouse) такой эффект и был. Это когда у меня была мышь от ПК Поиск, а потом я переделал писишную мышь под этот контроллер - она стала просто летать. После этого я и написал драйвер мышки с регулятором скорости:)
А вот на мультикарте такого наверно не будет, если все по умолчанию.
Разумеется :) Просто в споре рождается истина, как говорится.
Меня мысль посетила, а может ли быть такое, чтобы скорость перемещения мыши зависела от самого мышиного девайса? Или это дурь? ;)
Может. Мышки разлечаются на пример по dpi. Лазерные мышки с высоким dpi быстрее курсор перемещают - факт. Но обычные PS/2, COM, USB все примерно одинаковые.
Evgeny Muchkin
19.10.2006, 19:58
Мышки разлечаются на пример по dpi
Воо! Я как раз это и имел ввиду!
Может. Мышки разлечаются на пример по 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.
Просмотрел все что касается команды 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 умножили. :)
Я тут поелозил как то раз мышку на 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: И насчет настройки скоростных харектеристик мышек есть ли подвижки? ;)
А нельзя ли как-то так же несложно доделать сабж, чтобы обычная спековская клавиатура не блокировалась при подключенной 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 тоже можно, только я не помню, на какое сочетание клавиш вешаются обычно эти функции.
Заранее спасибо! :)
А можно еще в этой прошивке задействовать клавиши: .....
Сам можешь настроить клавиатуру под себя.
Сейчас положу в первый пост инструкцию.
Evgeny Muchkin
08.11.2006, 14:24
Просто я подумал, от такой работы этих клавиш никто бы отказываться не стал, а так всем придется перешивать. Ну и прошивка от разработчика всетки... :)
Просто я подумал, от такой работы этих клавиш никто бы отказываться не стал, а так всем придется перешивать. Ну и прошивка от разработчика всетки... :)В том файле что я кинул представлено два варианта раскладки клавиатуры.
Первый базовый, тот что я заложил.
Второй от Axorа, вполне вероятно он тебе больше понравится.
Evgeny Muchkin
08.11.2006, 14:33
Второй от Axorа, вполне вероятно он тебе больше понравится.
Точно :) В нем как раз вышеупомянутые клавиши так и задействованы :)
Evgeny Muchkin
27.12.2006, 10:45
caro, выложи в первый пост исходник TinyTerm плиз.
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
будут иметь соответственно большие
величины разрешения при выполнении
данных команд.
Ответы на два вопроса по 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
Ответы на два вопроса по 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
-------------------------
Вообще по стандарту:
-------------------------
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
Вообще по стандарту:
В нашем случае это ни на что не влияет абсолютно.
Второй канал - DSR/DTR желателен для работы с модемом
Вообще модем тут ни при чем. DSR говорит о том, что противоположный конец в принципе включен, в то время как CTS - что он готов принимать данные. Многие терминальные программы вообще отказываются что-либо передавать/принимать если DSR опущен.
Конечно локальное замыкание DTR и DSR позволяет это обойти: PC дабы показать что он включен поднимает DTR поднимая тем самым самому себе DSR.
Кстати говоря старая последовательная мышь использует DTR в качестве питания себя любимой. Сбросив DTR можно ее задетектить ибо при включении она о себе рассказывает. Я возился с оной на Профи.
Хотя наверное Serial mouse уже неактуальны...
Для полноты еще и сигналы DCD и RI надо бы добавить.
DCD - да, полезен для определения статуса именно модема (Offline/Online). RI же является атавизмом времен неинтеллектуальных модемов и вроде как не на всех модемах он реально есть.
локальное замыкание DTR и DSR позволяет это обойти: PC дабы показать что он включен поднимает DTR поднимая тем самым самому себе DSR.А так он не знает что включен?
Кстати говоря старая последовательная мышь использует DTR в качестве питания себя любимой. Сбросив DTR можно ее задетектить ибо при включении она о себе рассказывает.Просто выдает символ "M".
А если серьезно, то IBM PC по RS232 может работать тремя способами синхронизации:
1) аппаратная синхронизация RTS/CTS;
2) аппаратная синхронизация DTR/DSR;
3) программная синхронизация XON/XOFF
Так что вполне можно обойтись первым вариантом.
Камиль, а не могли бы вы дать исходник прошивки для платки?
2caro - я так понял у тебя в ZXMC когда спек клаву опрашивает wait используется, это не сильно тормозит при загрузки с касcеты например?
я так понял в ZXMC, когда спек клаву опрашивает wait используется, это не сильно тормозит при загрузки с касеты например?Длительность WAIT в 3 мксек практически не влияет на работу процедур чтения и записи при работе с магнитофоном.
Циклы задержек, используемые в этих процедурах составляет милисекунды, что значительно больше этих 3 мксек.
В прошивку версии 1.7, которая лежала на форуме, как оказалось я забыл вставить терминалку.
Прошу меня извинить, и скачать исправленную версию.
В прошивку версии 1.7, которая лежала на форуме, как оказалось я забыл вставить терминалку.
Прошу меня извинить, и скачать исправленную версию.
а 1А из конца убрал?
а 1А из конца убрал?Во-первых символ 1Ah (Ctrl-Z) - признак конца файла, при загрузке его через RS232 не мешает.
Во-вторых я его удалил :)
Уважаемый Камилл!
Вы писали в ветке про Пентагон 1024 что через вашу плату можно будет подключить порт магнитофонный и был затронут вопрос о программной поддержке.. это подразумевает перепрошивку ?
Мне бы поподробнее..... в плане технической документации ..
Вы писали в ветке про Пентагон 1024 что через вашу плату можно будет подключить порт магнитофонный и был затронут вопрос о программной поддержке.. это подразумевает перепрошивку ?
Мне бы поподробнее..... в плане технической документации ..В текущей прошивке этого нет, так что придется ее перешить.
Соберу компаратор и попробую ввести в новую прошивку эту функцию.
Если будет возможность перешить вашу микросхему то перешью, а если нет, то закажу еще платку с компаратором, если вы не против!
falanger
26.01.2007, 17:57
Я бы был тоже непротив заказать вашу Мультикарту с шагом 2,54 для контактов для своего собираемого сейчас Пентагона-1024.
В текущей прошивке этого нет, так что придется ее перешить.Склероз, оказывается я еще в версии 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, сейчас просто пригляделся.
...что-то у меня не получается скорость мыши поменять. Тыкаю все варианты, а скорость как была сверхзвуковой, так и остается... хм... Этот эффект я заметил еще сразу после выхода версии 1.7, сейчас просто пригляделся.Я проверял на простой мышке с DPI = 200/дюйм.
Получается 4 градации разрешения: 25, 50, 100 и 200 DPI.
По умолчанию устанавливается 100DPI.
А у тебя какая?
Evgeny Muchkin
29.01.2007, 14:02
У меня Гениус оптическая; не самая старая. А вот про DPI я не знаю у неё совсем. :( Но весьма чувствительная.
У меня Гениус оптическая; не самая старая. А вот про DPI я не знаю у неё совсем. :( Но весьма чувствительная.Типичное разрешение для современных оптических мышей 800DPI.
Получишь 4 уровня разрешения: 100, 200, 400 и 800DPI.
Тоесть даже при минимальном значении, разрешение получается
как для простой механической мышки по умолчанию = 100DPI.
Камиль, я тут получил ваш девайс и ткнул его в свой скорп (жёлтый, 256, турбо), но возникла некоторая путаница с разъёмом (наш советский), в результате которой я воткнул карту со смещением на один пин, в сторону от AY. Потом, пропилив в советском разъёме прорезь, вставил его как положено, но так и не смог запустить систему. Без контроллера и с родным скорповским всё работает, с ZX-MCARD система не стартует, на экране полоски. Не сжёг ли я карту таким действием ? Слышал так же, что были несовместимости с турбироваными скорпионами.
Камиль, я тут получил ваш девайс и ткнул его в свой скорп (жёлтый, 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 на шине процессора специально выведена именно так,
что бы все устройства на шине можно было подключить к ней
по схеме проводного ИЛИ.
На выходе плиски надо вставить диод, катодом к плиске,
анодом к 24 ноге Z80. А вывод 24 Z80 притянуть резистором 2 КОм к +5V.
Я так понял - вот оно ? Диод любой высокочастотный ?
Я так понял - вот оно ? Диод любой высокочастотный ?Любой импульсный, например: КД520 или КД522.
Любой импульсный, например: КД520 или КД522.
Спасибо Камиль ! :)
... возникла некоторая путаница с разъёмом (наш советский),Учти, что у "советского" разьема шаг контактов 2.5, а у ZXMC 2.54.
Надо внимательно вставлять карту в разьем, что бы попасть
контакт в контакт (и то с некоторым сдвигом на краях).
А лучше заменить его на импортный SLOT60.
А лучше заменить его на импортный SLOT60.
Да, это понятно...
MegaMyth
02.02.2007, 11:49
Должен отметить что проект мне понравился, но нельзя ли раскрыть некоторые технические нюансы, касатально длительности сигналов WIAT при обращении к девайсам таким как:Клавиатура, Мышь, Часы, RS-232?
P.S. Так держать! Малаца!:v2_clapp:
... нельзя ли раскрыть некоторые технические нюансы, касательно длительности сигналов WIAT при обращении к девайсам таким как:Клавиатура, Мышь, Часы, RS-232?Сейчас в карты я ставлю кварцы на 11.0592 Мгц,
хотя в принципе можно ставить и 14.7456 и даже 16.384 Мгц
(используется ATMega8515-16P)
Такие кварцы ставятся только из-за того, что удалось их приобрести в
низкопрофильных корпусах (HC-49/S).
Кварцы в корпусах HC-49/U высоковаты и будут мешать установке на ZXMC дочерней платки.
Так вот, при такой тактовой частоте, длительность WAIT при работе с клавиатурой и мышью составляет порядка 3 мксек.
С остальными устройствами не измерял, поскольку длительность зависит от тех регистров,
которые при этом опрашиваються, но, судя по программному коду,
задержка по WAIT не превышает 5 мксек.
.....судя по программному коду,
задержка по WAIT не должна превышать 5 мксек.....
Камиль!
Выложил бы ты монтажку к схеме еще. А то вот перепутает народ,и воткнет два разхема в один,скажем мышь и клаву в RS232.... :v2_clapp: :v2_biggr:
а компорт оденет на мышь... Да и дырочки внешнего программатора непонятны.... :v2_conf2: :v2_smile:
Выложил бы ты монтажку к схеме еще. В первом посте выложил файл ZXMC_sch.zip - схема, монтажка и перечень элементов.
Камиль, а если хочется использовать одну только AT-клаву, какие сигналы на системном слоту не нужны будут? Остальные фичи пока особо не нужны, просто хочется подрубить Вашу разработку к компу не оснащённому системным слотом! Вообще в качестве реверс-инжиниринга можно Вашу карту использовать или нет?
.. если хочется использовать одну только AT-клаву, какие сигналы на системном слоту не нужны будут?Этот контроллер сделан именно под ZX_BUS, поэтому убрать некоторые сигналы не получится.
Остальные фичи пока особо не нужны, просто хочется подрубить Вашу разработку к компу не оснащённому системным слотом!Так может лучше тогда подключить контроллер клавиатуры на AT90S2313 (ATTiny2313).
Он подключается взамен стандартной Спектрумовской клавиатуры и требует дополнительно к шине адреса и данных только несколько дополнительных линий.
Вообще в качестве реверс-инжиниринга можно Вашу карту использовать или нет?Да пожалуйста.
В первом посте выложил файл ZXMC_sch.zip - схема, монтажка и перечень элементов.
+1
Спасибо! :v2_clapp: :v2_clapp: :v2_clapp: :v2_clapp:
Сообщение от caro:
Так может лучше тогда подключить контроллер клавиатуры на AT90S2313 (ATTiny2313).
Он подключается взамен стандартной Спектрумовской клавиатуры и требует дополнительно к шине адреса и данных только несколько дополнительных линий.
..... Получается просто, воткнул в разъем клавиатуры спека эту платку , а к платке AT-шную?
мне бы тоже схемку такую, вот валяется еще Пентагон 128 там стояла типа такого, платка ,пять микросхем и XT клава подключалась...
В первом посте темы выложена новая версия прошивки
и файл описания работы с часами реального времени.
Измения:
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
А все со старыми просьбами... Может кто еще поддержит.
Может все-таки стоит ввести порт для получения скан-кодов? ;)
Было бы очень удобно использовать всю прелесть полной клавиатуры для тех же текстовых редакторов...
А все со старыми просьбами... Может кто еще поддержит.
Может все-таки стоит ввести порт для получения скан-кодов? ;)
Было бы очень удобно использовать всю прелесть полной клавиатуры для тех же текстовых редакторов...
ИМХО раз на то пошло, лучше сделать совместимо с уже имеющимися вариантами.
Мне таковых известно два: полная русская клавиатура "Байта" и дополнительные биты на Profi, которые поддерживались профишным контроллером клавиатуры. В СP/M это все хозяйство работало. Про поддержку для Байта мне ничего неизвестно посему ИМХО предпочтительнее второй вариант.
... дополнительные биты на Profi, которые поддерживались профишным контроллером клавиатуры.Да это хороший вариант, только почему то нигде нет описания,
каким образом эти биты используются.
вчера заметил, что вместо MOVE на 6-ой клавише CIRCLE, а MOVE и все остальное ([E]+SS) сдвинуто вправо.
вчера заметил, что вместо 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-ской клавиатуре знаком и его кодом в Спектруме.
Если кому то это покажется непривычным или неудобным,
читайте файл описания раскладки, которую можно перелопатить как угодно.
еще что заметил. тестировал мышку, что интересно, мышка видна в mr gluk только после ресета (т.е. включаем питание, мышки нет, жмем ресет, мышка появляется). если загрузить c неработающей в глюке мышкой прогу поддерживающую мышь, то она там работает. может кто-то сталкивался?
да, речь идет про Pentagon 1024 SL 2.2
еще что заметил. тестировал мышку, что интересно, мышка видна в 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 секунд,
лично у меня на Кворуме, экран представляет собой цветную
мозаику.
Я к стати тоже это предполагал, а если проще в начале подать питание на карту, допустим там через ключик помимо слотов, ну резкой проводников чтобы не питалось одновременно и компьютер и периферийные устройства, а после через пол секунды подать питание на плату, думаю что будет работать нормально все...
может конечно что то я не учел.....
А еще проще чтобы не мучаться с питанием нужно блокировать проц на пол секунды... в момент включения платы причем сделать это с приоритетностью, мало ли ZXVga конвертер тоже что то подобное делать будет .
Я к стати тоже это предполагал, а если проще в начале подать питание на карту, допустим там через ключик помимо слотов, ну резкой проводников чтобы не питалось одновременно и компьютер и периферийные устройства, а после через пол секунды подать питание на плату, думаю что будет работать нормально все...
может конечно что то я не учел.....
А еще проще чтобы не мучаться с питанием нужно блокировать проц на пол секунды... в момент включения платы причем сделать это с приоритетностью, мало ли ZXVga конвертер тоже что то подобное делать будет .Да нет, резать провода это уж слишком, проще всего сразу после инициализации устройств,
принудительно выдавать дополнительный короткий импульс /RESET.
Т.е. иммитировать нажатие клавиши PrtSCreen.
Тогда в прошивке zxmc нужно это зафиксить и дело в шляпе.:)
Да нет, резать провода это уж слишком, проще всего сразу после инициализации устройств,
принудительно выдавать дополнительный короткий импульс /RESET.
Т.е. иммитировать нажатие клавиши PrtSCreen.
угу, ну или как вверху писал, продлить ресет сигнал. 1.5 секунды, это не так и много.
В первом посте выложена прошивка для ZXMC ver. 2.1
1) Полностью переделана работа с часами.
Оптимизирована в процессе разработки INTIME -> http://zx.pk.ru/showthread.php?t=5043.
Подробности будут в описании часов ZXMC.
2) /RESET при включении питания снимается
с шины компьютера после определения
наличия мышки. Нужно для работы в ПЗУ
GLUK-сервиса, иначе он мышку не видел.
а я опять с проблемой. :-) прошил 2.1 версию, с мышой все ОК! Спасибо еще раз! :-)
вчера притащил домой компактную клаву (87 кнопок), она USB с переходником на PS/2. Некоторые кнопки не верно работают, т.е. все буквы, цифры, ввод, пробел, Shift (SS), Tab (Edit), Backspace работают верно. Caps Lock и Ctrl поменялись функциями: Caps Lock -> Caps Shift, Ctrl -> Caps Lock. Все остальные клавиши функционируют не верно.
При нажатии на некотороые клавиши (например, курсорные) моргает либо вклюбчается индикатор Scroll Lock.
Caps Lock и Ctrl поменялись функциями: Caps Lock -> Caps Shift, Ctrl -> Caps Lock. Все остальные клавиши функционируют не верно.
Судя по всему ты прошил версию с раскладкой клавиатуры от Axorа ZXMC21ba.hex
Перешей файлом ZXMC21bt.hex - здесь раскладка базовая, которую я обычно зашиваю.
И еще, назначение клавиш на таких клавиатурах меняется в зависимости от состояния NumLock.
Судя по всему ты прошил версию с раскладкой клавиатуры от Axorа ZXMC21ba.hex
нет, шил твою версию раскладки, если подрубаю клаву другую (с PS/2 разъемом, полноразмерная), там все нормально с раскладкой.
И еще, назначение клавиш на таких клавиатурах меняется в зависимости от состояния NumLock.
Да, это я знаю, но у этой клавы нет NumLock-ка вообще. Я вот что подозреваю, ведь контроллер врубает NumLock при старте, может это у клавы так башню сносит? Ты не мог бы мне для теста откомпилить прошивку, где не включается при старте NumLock?
Да, это я знаю, но у этой клавы нет NumLock-ка вообще. Я вот что подозреваю, ведь контроллер врубает NumLock при старте, может это у клавы так башню сносит? Ты не мог бы мне для теста откомпилить прошивку, где не включается при старте NumLock?Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера, так что можно подрубив
нормальную клавиатуру переключить Num Lock в 0, затем попробовать
подключить уразанную клаву.
Я себе тоже купил ноутбучную клаву, проблем не было, видимо потому,что Num Lock на ней есть.
Но именно по причине того, что при включенном Num Lock правая часть клавиатуры выполняла
роль цифрового поля, пришлось сделать возможным оперативно менять состояние Lock-индикаторов.
Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера
Это в предыдущих версиях прошивки есть?
А какая у тебя клавиатура (фирма/модель)? она PS/2 или USB с переходником?
Это в предыдущих версиях прошивки есть?Начиная с версии 1.7, это написано в тексте прилагаемом к прошивке.
А какая у тебя клавиатура (фирма/модель)? она PS/2 или USB с переходником?Mitsumi. Проверил, с переходником на USB не работает. Тоесть простая PS/2 клава.
Последнее перед выключением питания состояние Num Lock и Scroll Lock
запоминается в EEPROM микроконтроллера
Чего-то не запоминается его состояние (всегда вкл при старте) или что-то нажать надо для запоминаия перед выключением? Кстати, в описании к версии 1.7 про запоминание ничего нет.
Прошивка с выключенным NumLock не помогла, все равно глючит и глюки такие же. Может сделать какую-нибудь тестовую процедуру в прошивку, которая могла бы на экран или в rs-232 порт отсылать скан код нажатой клавиши? Кстати, было бы не плохо иметь возможность в спеке читать скан код. Можно писать тогда проги с нормальной поддержкой клавы.
Перепрошивка вызвала трудности. Когда переходил на версию 2.1 (до нее была версия, которую еще ты прошивал в МК), то переход в режим прошивания по WinMenu+Pause прошло успешно. А вот на прошивке 2.1 и 2.2 уже при нажатии на WinMenu приводит к блокировке, т.е. компьютер не реагирует на клавиши, но и программатор не видит плату. При нажатии на PrtScr происходит сброс компьютера и контроллер начинает работать. Пришлось втыкать перемычку.
Чего-то не запоминается его состояние (всегда вкл при старте)Оказалось сделал, но с ошибкой. Исправленная версия 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 может стать стандартом де-факто.
А у меня все работает без перемычки, специально сейчас проверил.
протестирую еще раз, когда буду шить 2.2 версию.
Сделать могу без проблем, но сомневаюсь в необходимости этого,
разве что для таких вот случаев, для проверки скан-кодов.
Такая поддержка клавиатуры будет работать только с ZXMC, а что делать остальным?
лишь бы при этом оставалась возможность опроса клавы через #xxFE.
Именно, можно и zx и pc клавиатуры в программах поддерживать. :-)
А как называется модель твоей Mitsumi. Что-то поглядел в некоторых магазинах в Москве, не нашел. Сложилось впечатление, что как-то напряжно с маленькими клавиатурами.
Добавлено через 19 часов 30 минут
бред какой-то, вчера прошил новую версию 2.2 (которая официальная), все равно не хочет входить в режим программирования по WinMenu+Pause. Слушай, а там не могло что-нибудь в EEPROM прописаться (когда клавиатуру укороченную тестировал) и что может дейтвовать на реакцию на эту клавишу. При нажатии уже на WinMenu происходит, кроме блокирования клавиатуры (которое не блокирует reset по PrtScr), моргание экрана. Иногда экран так и остается черным пока компер не выключить и при этом уже не помогает reset по PrtScr.
Слушай, а там не могло что-нибудь в 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
Камиль, а для работы со spi из спека, что-то реализовано?
... а для работы со spi из спека, что-то реализовано?Да, скоро выложу версию с возможностью посекторного доступа к SD/MMC картам,
подключенным к SPI-интерфейсу ATMega8515.
Размер сектора 256 байт - ограничен обьемом ОЗУ Mega8515 (512 байт на все провсе).
Если заменить Mega8515 на ATMega162 с обьемом ОЗУ 1024 байт,
можно будет работать с секторами по 512 байт.
Но это будет следующий этап :)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot