Comments 63
1. Взвести счетчик попыток (СП) на 90;
2. Выставить CS в лог.1 и отправить 10 раз FF;
Насколько мне известно, там несколько сложнее:
При посылке команды некоторые карты не готовы получать команды одну за другой и пропускают первую посылку по spi (что ломает команду). Уж не знаю, я так неправильно сделал или это штатная особенность карт, но сейчас я перед командой шлю 0xff.
+2
Весь алгоритм, который Вы привели в блок схеме реализован. Именно, почти 1:1, единственное отличие, я выкинул 3ю ветку (CMD1). То есть SD карты поддерживаются любые, и ver.1 и ver.2 c байтным адресом (SDSC), и ver.2 с блочным адресом (SDHC). Единственная неподдерживаемая карта — MMC. Кстати при работе с картами, автоматически определяется тип адресации, и подпрограмма сама транслирует адрес, методом умножения на 0x200. Пользовательским программам и OS об этом думать не надо.
0
А ещё, можно поставить минимальную EPM7032 и тогда на плате останутся только 3 корпуса: ОЗУ, ПЗУ и CPLD. И внутри CPLD сделать уже аппаратный SPI, что дополнительно ускорит и упростит/сократит программу.
+1
Афтор же хотел делать на православных советских DIP, о чем особо подчеркнул вначале.
+4
Ну DIP так DIP.
Зачем останавливаться на полумерах то? Хотя, о чём это я, там не такие объёмы, чтобы было оправдано делать аппаратный SPI, программный ногодрыг вполне оправдан.
+2
О, давно это было, ностальгия. Где то в гараже еще валяются несколько штук, но гараж в Грузии, давно туда не ездил. Сгнило наверное всё.
Тогда других микросхем и не найти было. Сегодня ведь проблем нет?
Даже тогда этот девайс я переделал полностью, в том числе переписал БИОС на 4К: ОЗУ 48К, ПЗУ 4К, внешнее ОЗУ 128К, 5 дюймовый диск, операционка СРМ, программатор ПЗУ.
Принтер уже не доделал, т.к. перешел на Х86 платформу.
ПО я писал в ассемблере для данного проца. Зачем автор статьи это делает в ручную?
Правда пришлось ОЗУ до 48К увеличить, иначе с исходником БИОС памяти уже не хватало!
Тогда других микросхем и не найти было. Сегодня ведь проблем нет?
Даже тогда этот девайс я переделал полностью, в том числе переписал БИОС на 4К: ОЗУ 48К, ПЗУ 4К, внешнее ОЗУ 128К, 5 дюймовый диск, операционка СРМ, программатор ПЗУ.
Принтер уже не доделал, т.к. перешел на Х86 платформу.
ПО я писал в ассемблере для данного проца. Зачем автор статьи это делает в ручную?
Правда пришлось ОЗУ до 48К увеличить, иначе с исходником БИОС памяти уже не хватало!
0
ПО я писал в ассемблере для данного проца. Зачем автор статьи это делает в ручную?Это я еще не освоился. Поэтому забуксовал именно на этом этапе. Сейчас уже набил руку, использую и онлайн ассемблер, и уже свои инструменты. Через 3-4 дня будет новая «глава», статья.
Потом дело будет за операционкой.
0
Согласен, можно сделать. Как вариант. Но я делал из того, что у меня было. И возможно еще буду не раз переделывать, а этот макет нужен прежде всего для отработки алгоритмов и написания OS.
Ну и если посмотреть на цены, то обычная логика выходит дешевле, и ее шить не надо.
В CPLD только аппаратный SPI привлекает, но не знаю нужен ли он.
Ну и если посмотреть на цены, то обычная логика выходит дешевле, и ее шить не надо.
В CPLD только аппаратный SPI привлекает, но не знаю нужен ли он.
0
А так ли нужна эта плата стабилитронов? Для передачи сигнала на выводы SD можно использовать микросхемы с выходами ОК, подтянутыми 10к к +3,3В.
+1
Это пока временный вариант, и поэтому он вынесен как внешняя платка.
0
Вариант со стабилитронами вполне нормальный для преобразования сигналов 5в в 3.3в. В обратную сторону, кстати, совершенно законно подавать сигнал с лог.1 в 3.3 вольта на вход ТТЛ-микросхемы и никаких компараторов не нужно. Пороговый уровень для лог.1 у ТТЛ-микросхемы составляет 2.4в, что меньше, чем выдаваемые карточкой 3.3 вольта.
0
А чего не использовали родной интерфейс SDIO?
По сравнению с ним, SPI тормозит ужасно…
По сравнению с ним, SPI тормозит ужасно…
+1
Теперь просыпаемся и видим, что речь здесь идет про Радио-86РК с процом ВМ80 на частоте 1,77 МГц с 32 Килобайтами оперативы. И понимает, что хорошо, если данная конфигурация умеет хотя-бы раз в секунду текст на экране обновлять. И объемы «прокачки» данных с SD-карты редко когда превышают 32 килобайта.
Поэтому, несомненно, здесь все упирается в тормозной SPI, и надо делать обязательно SDIO.
Поэтому, несомненно, здесь все упирается в тормозной SPI, и надо делать обязательно SDIO.
+6
Для SDIO надо считать CRC, 1533 серией уже не обойтись.
0
ПЭВМ была замечательная, но вместе с тем и заставила меня пострадать, из-за почти-несовместимости с Радио-86РК. Еще помню поразило, что в составе было 4 грамма золота…
+2
Сочувствую Вашим страданиям :)
Но на самом деле программы весьма легко адаптировались. Для этого в комплекте были редактор, ассемблер и дисассемблер. Там надо было поправлять адреса обращения к периферии. Я писал на бейсике автоматические «адаптаторы» в то время.
Но на самом деле программы весьма легко адаптировались. Для этого в комплекте были редактор, ассемблер и дисассемблер. Там надо было поправлять адреса обращения к периферии. Я писал на бейсике автоматические «адаптаторы» в то время.
+1
На самом деле разница между ними мизерная, с аппаратной точки зрения.
Я 3 года выпускал и тот и другой. В сумме больше 600 штук! давал год гарантии.
Я 3 года выпускал и тот и другой. В сумме больше 600 штук! давал год гарантии.
0
а ассемблела под ВМ80 нет?
а то в кодах это жеж не удобно совсем…
ps: огромная работа, спасибо за статью )
ждём продолжения, особенно когда поднимется MicrOS =)
а то в кодах это жеж не удобно совсем…
ps: огромная работа, спасибо за статью )
ждём продолжения, особенно когда поднимется MicrOS =)
0
а ассемблела под ВМ80 нет?Вообще есть. Но я уже буду выбирать, чем пользоваться, когда прошью ПЗУ. Сейчас заказал брату, заехать ко мне на работу и взять ноутбук IBM ThinkPad 760. На нем есть LPT. Но, пока не знаю, работает ли этот бук…
ждём продолжения, особенно когда поднимется MicrOS =)
Спасибо! Еще много запланировано.
0
Вот тут и ассемблер и дизассемблер и даже поиграть можно )
+1
Спасибо! Пригодится.
0
Нашел баг в ассемблере. Можно написать STAX H. И он не будет ругаться, а установит код 0x22…
0
Попробуйте воспользоваться прекрасным ассемблером. Обязательно нажмите на рыбку.
0
рекомендую облегчить себе жизнь на этапе отладки. В свое время я использовал микросхему статической памяти 537РУ2(если не изменяет склероз!30 лет прошло), которая по ногам абсолютно совпадает с РФ2, надо только напряжения программирования отключить, чтобы не сжечь его. Сделал небольшой переходник, с 2-мя часовыми батарейками на борту. Не надо тратить время на стирание УФ микросхемы. Я его пихал в программатор для РФ, загружал код и пробовал.
0
Когда охота пуще неволи называется. Посмотрел на количество проводков… респект и уважение Вам и Вашему терпению.
Жаль только, что сколько бы не пытался, из шестерки Жигулей Мерседес не сделаешь. Просто, и у меня это есть, то что в детстве не доделано, какие-то детские мечты, мозг требует их воплотить. Сделаешь и можешь жить дальше.
Сам вот вчера плёнку для лазерника купил, буду печатать на фольге трафареты, переносить на текстолит, травить, в общем ЛУТ… лет пять с этим в голове жил, теперь сдвинул с мертвой точки мечты.
Жаль только, что сколько бы не пытался, из шестерки Жигулей Мерседес не сделаешь. Просто, и у меня это есть, то что в детстве не доделано, какие-то детские мечты, мозг требует их воплотить. Сделаешь и можешь жить дальше.
Сам вот вчера плёнку для лазерника купил, буду печатать на фольге трафареты, переносить на текстолит, травить, в общем ЛУТ… лет пять с этим в голове жил, теперь сдвинул с мертвой точки мечты.
0
Просто, и у меня это есть, то что в детстве не доделано, какие-то детские мечты, мозг требует их воплотить. Сделаешь и можешь жить дальше.Cогласен. И это очень приятно.
Сам вот вчера плёнку для лазерника купил, буду печатать на фольге трафареты, переносить на текстолит, травить, в общем ЛУТ… лет пять с этим в голове жил, теперь сдвинул с мертвой точки мечты.Я ЛУТить не могу, да и не хочу. Вообще все подобные работы перенес давно на работу, там есть возможность подобное делать. Но сейчас другие условия. Делаю из того, что есть и тем, что есть.
Конечно я планирую потом все переделать, и плату человеческую с зеленкой заказать, и корпус на 3d принтере сделать, но это все потом. Пока концепция.
0
Так же на карантине не выдержал и впервые в жизни вместо того, что бы разводить,
распаял МГТФ =) просто куча удовольствия, особенно когда всё запустилось )
распаял МГТФ =) просто куча удовольствия, особенно когда всё запустилось )
ПЗУшка для Апогея топчек
ПЗУшка для Апогея батомчек
Апогеюшка с ПЗУшкой =)
+3
Схемкой не поделитесь? Это под загрузку командой монитора?
0
…просто куча удовольствия, особенно когда всё запустилось )
Согласен! Ради этого удовольствия все и делается.
0
Змейка форева! В клубе напротив ЛЭМЗ.
0
Какой-нибудь бы аппаратный SPI прикрутить, так программно долго его колупать ВМ80 будет
0
Все 32кБ, заливаются за 11 сек. Средняя игра весит 8кБ.
С «магнитофона» в 7 раз дольше.
Можно сделать аппаратный SPI, но надо ли?
С «магнитофона» в 7 раз дольше.
Можно сделать аппаратный SPI, но надо ли?
+2
На родной скорости ввода/вывода на ленту получается примерно 150 байт/с (около 1200 бит/c). 32768 байт будут перегоняться примерно 219 секунд (без учёта ракорда и имени), это 3 минуты 39 секунд. Если у вас 32КБ сливаются за 11 секунд (это примерно 2978 байт/c или 23831 кбит/c), то ускорение будет 219/11=19,9 раз, т.е. почти 20х.
11 секунд для 32КБ это очень и очень жирно! Мы на кружке для ускорения грузили в один Специалист большую игру (около 4-5 минут для почти 48 КБ), а потом специальным кросс кабелем на коаксиальных проводах через тот же магнитофонный интерфейс выгружали на другие компьютеры на константе в 4х от номинальной, быстрее уже не тянуло и были ошибки. А когда появился большой ROM-диск, так и еще 5 минут экономили. Если действительно получилась такая скорость, то нет смысла в аппаратном SPI.
11 секунд для 32КБ это очень и очень жирно! Мы на кружке для ускорения грузили в один Специалист большую игру (около 4-5 минут для почти 48 КБ), а потом специальным кросс кабелем на коаксиальных проводах через тот же магнитофонный интерфейс выгружали на другие компьютеры на константе в 4х от номинальной, быстрее уже не тянуло и были ошибки. А когда появился большой ROM-диск, так и еще 5 минут экономили. Если действительно получилась такая скорость, то нет смысла в аппаратном SPI.
0
Сегодня вечером постараюсь точные бенчмарки сделать.
0
Итак, по утилите castool 32кБ, получается wav файл с длительностью звучания 4:24, или 264 сек. Это с учетом пилот тона вначале.
Далее я запустил программу, которая в цикле считывает один и тот-же сектор (0) в одну и ту-же область ОЗУ (0000-01FF), но делает это 64 раза. Время по секундомеру, 12,3 сек. Это с учетом моей реакции для остановки секундомера.
Так, что я не сильно наврал, когда говорил про 11 сек. :)
И кроме того, даже если бы работало в 3 раза медленнее, все равно этого всего достаточно. Ведь во-первых чтение должно проходить без ошибок, в отличие от магнитофона, а во вторых экран не гаснет во время загрузки, и можно даже прогрессбар замутить.
Кстати, если ПДП погасить на время загрузки, то скорость еще должна вырасти, но пока это мне не нужно.
Далее я запустил программу, которая в цикле считывает один и тот-же сектор (0) в одну и ту-же область ОЗУ (0000-01FF), но делает это 64 раза. Время по секундомеру, 12,3 сек. Это с учетом моей реакции для остановки секундомера.
Так, что я не сильно наврал, когда говорил про 11 сек. :)
И кроме того, даже если бы работало в 3 раза медленнее, все равно этого всего достаточно. Ведь во-первых чтение должно проходить без ошибок, в отличие от магнитофона, а во вторых экран не гаснет во время загрузки, и можно даже прогрессбар замутить.
Кстати, если ПДП погасить на время загрузки, то скорость еще должна вырасти, но пока это мне не нужно.
0
Всё, что быстрее 30 секунд — годно. Так что результат отпадный. Есть желание поделиться кодом с общественностью?
0
Есть желание поделиться кодом с общественностью?
Конечно!
Сейчас довылизываю и выложу. Весь проект открытый. Все будет опубликовано.
0
И, вот еще есть вопрос, который меня мучает.
В образе ПЗУ из 2кБ у меня осталось 600 байт свободного места. И вот, никак не могу определиться, что с ним делать. Оставить так? Запихнуть еще функций? Развернуть некоторые циклы — для увеличения скорости? Напихать побольше выводимых сообщений?
В образе ПЗУ из 2кБ у меня осталось 600 байт свободного места. И вот, никак не могу определиться, что с ним делать. Оставить так? Запихнуть еще функций? Развернуть некоторые циклы — для увеличения скорости? Напихать побольше выводимых сообщений?
0
Не, пока лучше не трогать. Придёт время и идея для более интересного использования, нужно просто чтобы текущее состояние аффекта прошло. :)
0
FORTH засунуть…
0
Честно говоря, я в Forth не в зуб…
Можно загружать с SD. И вообще можно с SD загружать что угодно.
Можно загружать с SD. И вообще можно с SD загружать что угодно.
0
Вот именно. При наличии SD ничего добавлять в ПЗУ не надо. Например, в ЛК Специалист, в варианте Экспресс, там под ПЗУ отведено 12КБ. 4 из них это загрузчик и монитор, а 8 — свободные. И 30 лет назад туда пихали редакторы, бейсики и прочее. А сейчас лучше доработать дешифрацию так, чтобы под этими 8КБ открылось ОЗУ, которое там всегда было (банк ОЗУ 64КБ из 8шт К565РУ5) и это при поддержке SD расширяет возможности гораздо лучше. Собственно, в варианте Специалист_МХ так и сделали (помимо добавления ещё 64КБ ОЗУ).
0
Так, что Вы правы аппаратный SPI не нужен.
0
Видел подобное устройство для "Апогея", но не помню, с какой картой: SD, или тогда ещё CF. Там был файловый менеджер и демка с названием на греческом языке. Но то устройство было на микроконтроллере, а вы сумели без него обойтись: единственный современный компонент — сама карта.
+1
единственный современный компонент — сама карта.
Да, это такое правило я себе придумал. :)
Можно было-бы еще прицепить SD карту к имеющейся внутри микросхеме КР580ВВ55, но мне захотелось сделать PnP ;)
0
0
Ребяты, я прочитал статью, аж прослезился.
Решил внести свою лепту в рассказ про этот теплый олдскульный компьютер:
Мой компьютер Микроша: продолжаем неделю ностальгии
Решил внести свою лепту в рассказ про этот теплый олдскульный компьютер:
Мой компьютер Микроша: продолжаем неделю ностальгии
0
Хотел узнать, а каким образом Микроша подключен к монитору? Напрямую к VGA разъему без всякого преобразователя?
0
Это, скорее всего, телевизор. Можно прямо по RCA подключать.
0
Хотел узнать, а каким образом Микроша подключен к монитору?
У телевизоров есть вход AV. Это низкогчастотный вход сигнала стандарта NTSC или PAL. И NTSC и PAL это системы кодирования цвета, с помощью квадратурной модуляции поднесущих частот. 3.58 или 4.48 МГц соответственно. Микроша черно-белая и ее сигнал воспринимается как Ч/Б PAL… Уже не во всех телевизорах есть AV, но на некоторых есть и можно подключать напрямую, у тех где нет, то нужно либо модулятор ВЧ, либо скарт (тоже если есть), либо «скандаблер» чтобы получить VGA…
0
мне не нравилось наличие в них микроконтроллеровЕсли я правильно помню, карты памяти работают на встроенном 8051 контроллере.
0
А не приходилось познакомиться со страничной организацией памяти в Орион-128? Там выставлялся байт в нужный регистр и основная страница оперы отключалась, а подключалась другая. Всего было до 4 страниц. Естественно, функции BIOS по обращению к страницам были прописаны в ПЗУ.
0
Супер! Спасибо! Моя, Микроша, увы, приказала долго жить (выкинул зачем-то, а теперь жалею… был бы повод повторить Ваш проект), но осталась программа wayp.rkm с моим голосом 1988 года. Иногда ностальгирую…
0
Написал следующую часть.
0
Sign up to leave a comment.
Микроша. Глава первая. Контроллер SD карты