Интрига вечера :)
Вложение 64992
Вид для печати
Интрига вечера :)
Вложение 64992
Спец?
Конечно понимаю, что не по теме, но все же - по Специалисту. Делаю клавиатуру и возникла проблема - когда перекодировать русские буквы. У РК86 есть индикатор Рус/Лат, у Специалиста нет ? Или я плохо искал ?
Если у кого есть идеи - как сделать удобно - жду комментариев.
Наверное, никак.
В контроллерах PS/2-клавиатур на микроконтроллерах для ретросоветских ПК перекодировка вообще не делается. Принимается как данное, что раскладка у большинства - ЯВЕРТ, а не ЙЦУКЕН.
Ведь софт совсем не обязан был реагировать на нажатие кнопки РУС/ЛАТ. Особенно, во времена "ножек Буша", когда было модно делать всё необычно, а не по-стандарту.
И вот еще что. Нужно учитывать, что чтение клавиатуры может происходить (если склероз мне не изменяет) минимум двумя способами на Специалисте и Орионе. Смотря что будет опрашиваться - столбцы или строки.
Ох, времени ну вообще нету :(
К тому же столкнулся с проблемой. Что-то не разберусь с клавиатурой. Монитор почему-то не перебирает строки, т.е. он выставляет строку, я отдаю столбец с нажатой кнопкой, а он после не перебирает строки, чтобы понять что нажато. Соответственно, работает как-то очень криво. В отладчике сидеть пока нет времени, если кто-то скинет дизассемлированный код считывания кнопки из монитора Специалиста - это сильно ускорит процесс.
ROM-ы уже читаются, экран рисуется, затык пока только с клавой. Будет рабочая клава - будет и версия !
Вообще-то Специалист можно без клавиатуры запустить. Важно же отладить вывод изображения, чтение из ОЗУ и ПЗУ. Ну наконец-то увидеть заветную надпись МОНИТОР.
Он работает своеобразно, а не криво.
Клавиатура может опрашиваться по строкам, по столбцам, или вся сразу (нажатие ЛЮБОЙ клавиши). Вероятно, ты как раз на третий способ и наткнулся. Все линии опроса разом ставятся в ноль и опросом порта ввода смотрят, FF или что другое прилетает. Такое, кстати, может быть и на 86РК.
- - - Добавлено - - -
Корпусятко из вспененного ПВХ, спёр у рекламщиков -
https://c.radikal.ru/c26/1804/12/8b026b090ac5.jpg
Красить или не красить, вот в чем вопрос... (С) Шекспир.
В общем готова первая версия Специалиста для этого железа. Все криво-косо, но как-то работает. Загрузки с магнитофона пока нет, зато можно грузить любые файлы в область ПЗУ или ОЗУ через WiFi. Переключение в режим WiFi по кнопке "Pause/Break". На web-страничке внизу будет группа "Образы ПЗУ". Туда можно класть файлы с названием XXXX, где XXXX - 16-ричный адрес загрузки в ПЗУ или ОЗУ.
Образ загрузчика уже есть в эмуляторе, но его можно поменять создав файл C000.
Я пробовал использовать Монитор+Бейсик с сайта specialist-mx.ru, но что-то как-то криво все работает. Выход в монитор из загрузчика по F7+Enter. В мониторе клава вроде более-менее адекватно реагирует (перекодировки русского пока нет). А вот при выходе в Бейсик по команде 'J', клава работает странновато. Не работает Пробел, ЗБ, ну и много чего еще. Плюс еще в листинге мусор, возможно так и должно быть при первом включении ? Может я всетаки образы кривые скачал ?
Ну вот и сами пошивки (первая для программатора, вторая - для WiFi):
http://klad.me/spec8266/0/0x00000.bin
http://klad.me/spec8266/0/fota.bin
Только вот автор никак не описал процесс прошивки с нуля и желательно в первой посту темы. Или нужно всю тему штудировать для понимания?
Сделаем FAQ в первой теме. А пока для простоты - заливается бинарник 0x00000.bin с нулевого адреса. Используется программа ESPflasher. Лучше ее брать с гитхаба, но пока можно дернуть и эту, с яндекс-диска.
Прошивается модуль ESP с применением USB-UART конвертера, любого, лишь бы скорость 115200 держал. Можно хоть с ардуины использовать.
Файлы прошивки, именуемые FOTA.BIN - предназначены для обновления прошивки без использования программатора, но для этого в ESP уже должна быть залита прошивка компьютера любой конфигурации. Тогда в меню появится пункт "обновление" по-воздуху, то есть посредством вай-фая.
При работе по вай-фаю, сам микрокомп ESP играет роль сервера со страничкой конфигурации и выбора программ. Вход на эту страничку производится с браузера компа, находящегося в той же домашней сети, что и ESP. Свой IP-адрес для входа микрокомп выдает на экран в момент подключения к сети. После выполнения манипуляций в сети, комп отключается от вай-фая и уходит в режим эмулятора.
Могу добавить, что про процесс прошивки можно почитать здесь. Не указаны две кнопки, которые добавляются перед прошивкой. Про такие мелочи нужно упоминать.
Кнопки? о_О Что за кнопки?
При прошивании, когда RX-TX уже подключены к платке с ESP, нужно при подаче напряжения питания держать прижатой к "земле" лапу GPIO_0, чтобы инициировать режим загрузки. Отпускаем лапу от земли и можно запускать прошиватор. В программе-прошиваторе нужно выбрать скорость 115200, порт, где висит адаптер UART, объем памяти 512к. ну и назначить сам файл 0x00000.bin на адрес 000000.
После нажатия кнопки прошивания, начнет мерцать синий светодиодик на плате ESP. На экране флешера появятся назначенные МАК-адреса (нам они пофигу) и начнет заполняться полоса загрузки.
П.С. Не забываем притянуть к +пит лапу chip_en платки.
Я не буду закарачивать "лапу" пинцетом к земле, ещё что-нибудь закарачу. Ввод кнопки намного надёжней.
Это - дело личное. Но это требуется на один раз, далее прошивается через вай-фай, без закорачиваний.
- - - Добавлено - - -
Почему-то не работает кнопка ПРОБЕЛ в бейсике. Использую ту же связку Монитор+Бейсик с сайта fifan'а. Надо бы в эмуляторе проверить, что ли...
- - - Добавлено - - -
В эмуляторе тоже нифига пробел не работает в бейсике, и на элементарные команды дает ошибку...
- - - Добавлено - - -
Положу файлик ПЗУ Монитор+Бейсик здесь, готовый, для удобства.
- - - Добавлено - - -
Тест Рюмика показывает"мерцание" кнопки "пробел". К чему бы это?
fifan, да, как буд-то нажатия.
Тут интересней другое, есть ли нормальный бейсик для ПЗУ?
- - - Добавлено - - -
https://b.radikal.ru/b07/1805/77/33c7aaa0d317t.jpg
- - - Добавлено - - -
загрузил Бейсик Практик.
https://c.radikal.ru/c43/1805/01/b5cfe5753ec9.png
Оно уже работает.
Но неправильное поведение пробела видно и здесь.
При нажатии его выводится токен MLOAD. Где-то там пробел с чем-то "искрит".
Для ввода пробела в команде PRINT воспользовался стрелкой вправо.
- - - Добавлено - - -
Игра Down to Earth.
Запускается, но ожидает нажатия М или ПРОБЕЛ.
На этом месте застреваем, ибо ни того, ни другого сделать не получается.
Вероятно, программа использует второй способ опроса клавиатуры, по столбцам.
Нда... я когда-то тоже долго ковырялся с "контроллером клавиатуры" на ПЛИС.
Нужно отслеживать, в какой именно порт клавиатурного ППА идет запись предустановки опроса, и соответственно менять логику эмуляции клавы.
- - - Добавлено - - -
У fifan'a на его сайте есть хорошая схема клавиатуры, с разблюдовкой по кнопкам. Стырил откуда-то... :)
http://www.spetsialist-mx.ru/schemes/SpetsialistM_6.png
Здесь сигналы 1..8 - порт А, 9..14 - порт В, 15..18 - порт С клавиатурного ППА.
Мое скромное ИМХО - нужно убрать любую перекодировку клавиш на ПЦ-клаве. Смотрю на цифровые кнопы - там несовпадение дополнительных символов, лучше оставить дефолтные. Т.е. шифт+8 должно быть ( а не *, как на ПЦ.
Далее, если порт А ППА настроен на вход, то автоматом запускаем одну процедуру обработки чтения кнопок по столбцам.
Если порт В на чтение, то соответственно другая процедура будет читать строки.
С портом С тоже все понятно, он работает синхронно вместе с портом А.
Ну и на закуску - опрос Эни Кея. В порты А и С пишутся нули, и опросом порта В ждут, пока оттуда прочитается не 0xFF, а что либо другое.
Вот ещё клавиатура. На светодиод не обращайте внимания.
http://www.spetsialist-mx.ru/schemes/KeyBoard.png
Во время посещения кружка лично рисовал на бейсике на самом Спеце схемку для Экспресса (в кружках - точки подключения разъема на плате). Рисовались 4 листа и потом клеились (из-за чего немного не сошлись, но было пофигу).
тыц
HardWareMan, круто, без шуток! :)
Спасибо за перенос темы. Выходные, как всегда, себе не принадлежат :(
По клавиатуре посмотрел, видимой проблемы с кнопкой "Пробел" не нашел. Дайте, пожалуйста, тест клавиатуры и как его правильно запустить. Думаю, разберусь быстро и будем двигаться дальше !
heavy, не существует полноценного теста клавиатуры для Спеца...
Тот, что есть в тесте Рюмика - проверяет лишь один из способов опроса клавиатуры, да и то - тот, который применяют стандартные вектора Монитора.
Жаль, что мне никак не поставить среду разработки, которую применяешь ты... Некий опыт программирования МК на С у меня есть, возможно я и отловил бы что-нибудь.
Проект заброшен ? До конца довели ?
Да, хотелось бы продолжить. У меня на подходе платка для этого проекта. Хотелось бы взглянуть на работающий эмулятор.
Все , идея похоронена ????
Автор, ау!
heavy, Куда пропал ? Как продвигается Специалист ?
У меня печатная плата на подходе. Буду паять, прошивать. Процесс запуска буду писать здесь.
Прошил я новую плату с модулем. Но потом никакой сети Wi-Fi не нашёл. Как модуль переключается в генерацию Wi-Fi соединения?
Кстати и изображения на выходе нет. Или тут особенные параметры видеосигнала?
Ответа нет. Может необходимо контакт Chip_en подключить напрямую к +3.3в, а то сейчас он подключен к плюсу через резистор в 22 кОм?
Контакт модуля по даташиту. У автора эмулятора он подключен к плюсу через резистор. Как понять шить в программаторе? К модулю подключается адаптер UART/USB. Эта связка и есть программатор. Как переключиться в QSPI?
Вот моя плата в сборе, подключается к адаптеру UART/USB от ZXkit. И объясните мне функции этого меню, в тексте упоминалась только скорость.
https://image.ibb.co/jXRZHq/W2.png
Прошивал чётко по этой схеме, сигнал GPIO0 подключал через кнопку. Сам процесс записи идёт нормально. При вставке модуля в схему на пол секунды горит синий светодиод и всё, нет никакого выхода сигнала.
https://cs8.pikabu.ru/post_img/big/2...7160612384.png
кстати какая флеха запаяна на модуле ? из собственного опыта могу утверждать что работают только Winbond W25Q32(16,8)
ни Mix, ни Feon , ни Sanyo , ни ST не завелись, вели себя точно так же пол секунды горит синий светодиод и тухнет
на Winbond е посте старта эмуляции он горит
- - - Добавлено - - -
выпаять флеху и пролить конфу например на СH341(доработаном) прогой "AsProgrammer CH341" и включить в конфиге флехи SREG2-02h