WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
FlowCode, только придется выбрать какой-нибудь другой чип. На выходе этой программы текст на С и бинарник для загрузки.
Вложение 430975
Последний раз редактировалось Wladimir_TS; 17.02.2023 в 12:07.
Ну вот, 6-я страница пошла, стало быть, в силу сложившихся традиций уже можно обсуждать и голых бап. Поэтому спрошу: а чем родной-то процессор не угодил? Почему было решено переделать схему (а естественно, что после этого ещё и программу!) с мото на авр? Не проще ли было бы сохранить мото?, благо их сейчас уже есть.
Всего доброго.
Евгений.
Когда начинал делать - а это был 2015 (или 2016 год) HC908GP32 был недоступен от слова никак. Тогда-же была разведена первая плата. Во вторых цель не повторить - а научиться писать программы и подразобратся с AVR
Сейчас уже пришло понимание, что можно было, верно сделать проще. Выкинуть некоторые большие таблицы и взять более дешевый процессор. Но ATMEGA32 уже была куплена, у неё есть JTAG (а у лежащих в коробочке 10ти АТ90S8515 - его нема) - можно отлаживаться внутрисхемно, а не угадывать (что оно как-то не так работает - где "косяк").
Да и смысл внутреннего счета времени теряется - если освоить I2C (сложный контролер однако в ATMEGA - куча вариантов ошибок и на каждый надо определенным образом реагировать).
А еще тема помогает как-то двигаться дальше, хотя это сложно.
ЗЫ - вопрос - как корректно перевести фразу "It returns 50 microseconds before the display time is done. Entered with the display either on or blanked. Exits with the display unblanked after delaying SegTime-6."
SegTime - ячейка памяти отражающая время вывода каждого сегмента (тупо сколько луч будет елозить по одному месту, но не в числе елозений, а просто некая задержка)
Последний раз редактировалось Wladimir_TS; 17.02.2023 в 16:32.
Да уж , вне контекста выглядит довольно туманно ... "Он ( она , оно ) возвращается за 50 мкс до окончания дисплейного времени . Вход одновременно с дисплеем ( включенным или выключенным ( затемнённым )) . Выход с включением ( растемнением ) дисплея после задержки SegTime-6" . Что бы это значило - чёрт его знает ... возможно , речь идёт о какой-то функции , или скорее процедуре ...
Полный текст :
; DoSeg displays one segment using the RAM copy of segment parameters.
; It returns 50 microseconds before the display time is done.
;
; Entered with the display either on or blanked.
; Exits with the display unblanked after delaying SegTime-6.
;
; HIGHLY OPTIMIZED CODE - DON*T CHANGE WTHOUT KNOWING WHAT YOU*RE DOING!
;
; There is overlap possible when loading the DACs, since they are
; double-buffered. We queue up the next segment*s X,Y stuff while the
; previous segment is still displaying.
;
; The above requires us to subtract a fudge factor of 6 from SegTime since
; the overlapped DAC load takes about that long (50 microseconds).
; An extra delay is added to the last segment in a string to compensate
; for this little cheat. But it does remove 50 microseconds of dead time
; per segment! That*s a lot with the small scale=1 font size.
;
; The code calculates SegTime from size, shape
;
; This uses an approximation for the length of a line:
; if X>=Y, then len ~= X+Y/4. This is 12% low when X=Y.
; Circles are twice as slow as lines since lines double up the stroke.
;
; The code is optimized to keep the SPI serial bus busy for 90% of the time
; while it calculates the next things to send out. To do this, the
; SPI writes are interleaved with the calculations. The nop*s allow the
; SPI writes to complete - the code will break if they are removed!
Где : DoSeg - имя подпрограммы выполняющей последние вычисления и загружающей данные в SPI
SegTime - переменная отражающая время вывода каждого сегмента (тупо сколько луч будет елозить по одному месту, но не в числе елозений, а просто некая задержка) от 3 до 255, задержка до вывода следующего сегмента после полной загрузки ЦАПа 5 микросекунд * SegTime
Я её пока сам полностью не перевел, но SPI отконфигурировал и он передает. Не факт, что то, но что-то это точно
Всего доброго.
Евгений.
Тоже это делал на 564-й серии микросхем. АЛУ, регистры и т.п. Только я это делал в 1980-м году. Сейчас то это зачем?
И этим занимался - на серии 1804 были реализованы контроллеры ГМД-70 - флоппи-дисковод на восьмидюймовых дисках. Приходилось его перепрограммировать на двойную плотность записи. Серия - жутко убогая. Но это было в 1982-м году. Сорок лет назад!
Не было в то время КМОП-микропроцессора отечественного с приемкой 5. Вообще - не было. А импорт - исключался в принципе. Поэтому - пришлось. Кстати, следом появилась серия 587-я - тоже жуткое убожество. Вот когда "Интеграл" выдал 588-ю серию, вот тогда мы просто расцвели от счастья.
А с ГМД-70 - да, навороты с 1804 - были совершенно не уместны. Но - в составе ВУМСа никаких других тогда не было.
Нет, конечно, я никогда и ни в чем не разбирался полностью - но что-то понял и счем-то разобрался - вопросы есть - но они :
а) Непринципиальны
б) Подождут
в) имеют возможность саморазрешиться при должной выдержке.
По схеме тоже есть вопросы и я из тоже решаю. Просто тут тема вроде как про программную часть, точнее про её перенос. А по аппаратной - будут вопросы когда фильтры отмакетирую. Пока есть несколько топологий фильтров и надо смотреть, какой лучше - а для того надо их все собрать. После этого только ПП ЦАП разводить. Потом изобретать, как это все питать от одного источника. Еслиб-по -12 были-б милиамперы - то ничего - а так на нем весь ток силовых каскадов УВО и УГО кабы там не 0,3-0,5 А небыло-б.
Далее надо запитывать ЭЛТ - принято решение отлаживаться на работе на микромониторе с 7Ло55И (подогнали, правда состояние ????) Но зато -1200/+800 А не -1900/+10000
Есть , правде, невеликая надежда что мне перепадет осциллоскоп (точнее узел таково) от импортного оборудования -1/+1В полного отклонения по осям 0-1 - регулировка яркости. Полоса правда неширокая - до 1 МГц. Зато буржуинский о паспортом и комплектом схем. С ним будет проще. Но он будет нескоро (и если будет).
В общем схемотехника питания на 7ЛО55 отрисована - использует трансформатор от систем питания подсветки мониторов и 2 удвоителя на + и на - (+/-1000). Стабилизация по отрицательной ветке.
Схемотехника на 13Ло16 А в процессе из-за некоторых странностей с включением её в С1-74
Высокое предполагаю получать от ВВ блока от С1-65А -1900/+8500 потеря яркости из-за недопитки 3го анода несущественна из-за малых скоростей развертки.
Пока смотрю схемотехнику - как питают ЭЛТ, как управляют яркостью для ЭЛТ без бланкирующих пластин. Тут более менее, а программирование я совсем не помню,а и процессор новый. Но уже разобрался с большей частью системы команд. И м мотороллой более - менее - он тоже интересный, хоть и 2 регистра супротив 32х
Вот по скорости - автор пишет чтио за время передачи 8бит по SPI у него отрабатывала часть программы - а у меня пауза эквивалентая 5 битам (при 5МГц SCK). то-ли у автора тактовая SPI меньше, то-и процессор быстрее при меньшей тактовой - но куда ??? Не смотрел пока такты на команду.
---------- Сообщение добавлено 00:38 ---------- Предыдущее сообщение было 00:33 ----------
Познание - как это работает.
На 1804 можно что- угодно реализовать - это-ж отдельные компоненты процессора - 4х разрядное АЛУ и ВС1 и ВУ1 - она управляет микропрограмной памятью - а в ней можно любую систему команд организовать (не уверен что ВУ1-каскадируется, а так до 16 микрошагов).
---------- Сообщение добавлено 00:52 ---------- Предыдущее сообщение было 00:38 ----------
А К1801ВМ2 и ВМ3 с преффиксом КН
Оно и видно.
1801 - это n-МОП. КМОП -1806, и он появился позже и был страшным дефицитом. И медленные они все из-за шины Q-bus и бездарной внутренней структуры. По факту банальная 8031 в реальном применении работала быстрее и не в пример компактнее по обвеске. От 16 бит на практике никакой пользы не было, один вред в плане громоздкости. КМОП 8085, Нива-1, кстати, появился в СССР ЕМНИС, даже раньше, чем 1806, и тоже на реальных задачах часто работал быстрее, несмотря на восьмибитность.
Хорошо для своего времени был сделан советский "интегральный VAX", именно свой, не клон, серия 1839, но готов он был гораздо позже, когда оно уже нахрен никому не упало - 386 крыл его как бык овцу. Даже SX
Клон микровакса, кстати, тоже был, но он неинтересный, 1807.
Последний раз редактировалось sia_2; 18.02.2023 в 13:25.
Версии КМОП появились много лет позже, когда наши изделия уже снимались с серийного производства. Там уже подоспели однокристаллки. Но это уже совсем другая история.
Да, было прикольно заново изобретать, например, аппаратную часть условного перехода. Было придумано мною абсолютно новое решение. Уже потом я разобрался, что именно так был сделан условный переход в 8080. Но это было через несколько лет, уже после внедрения на заводе.
Не менее прикольно было сочинять свою собственную систему команд. Для моих задач была крайне нужна команда "сложение по модулю N", где N-произвольное 16-ти разрядное число. И такая команда была таки реализована.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
Социальные закладки