• Ускорение проектирования РЧ-, СВЧ-устройств (4/5)

    • Tutorial

    РЧ-, СВЧ-платы являются одним из самых быстрорастущих секторов в производстве печатных плат. С увеличением количества датчиков IoT, беспроводной электроники и смартфонов легко понять, почему. Но как узнать, работаете ли вы с РЧ или СВЧ-платой? Индустрия печатных плат считает, что любая плата, работающая на частоте выше 100 МГц, является РЧ-платой. Все, что приближается к 2 ГГц, является СВЧ.
    Читать дальше →
  • Создание часов из обычных микросхем на макетной плате

    • Перевод
    • Tutorial
    В этом материале речь пойдёт о том, как собрать часы из обычных микросхем.

    Схема часов (оригинал)
    Как собрать часы?
  • SB181: логический вычислитель на базе АЛУ 74LS181

    • Перевод


    Уже какое-то время в моей мастерской дожидаются своего проекта пара микросхем АЛУ 74LS181. Но так как мысль о создании на их базе целого процессора была несколько пугающей, я решил задействовать эти чипы в роли «логического вычислителя»: своеобразного 8-битного калькулятора, который получает шестнадцатеричные входные данные и отображает результаты различных логических операций в двоичном и hex-форматах. Будучи собранным исключительно на базе логики микросхем 74-й серии без какого-либо микроконтроллера или ЦПУ, такое устройство оказывается удобным помощником в 8-битном программировании.
    Читать дальше →
  • Гибкая печатная плата своими руками

      Туторов по созданию обыкновенных печатных плат на просторах интернета более чем достаточно, а вездесущие китайцы упростили этот процесс до заводского качества. Однако, когда речь заходит о создании гибких плат, тут приходиться изгаляться в меру своей смекалки. Хотя, справедливости ради, надо сказать, что и такие вещи китайцы тоже делают, хоть и не дёшево. Но мы будем говорить о ситуации, когда надо вот прямо сейчас и из подручных материалов. Собственно, я непосредственно и столкнулся с такой проблемой и одним из способов ее решения хочу поделиться.

      Для начала пару слов что же это такое и в каких случая используется. В этом случае Википедия справедливо утверждает, что гибкая печатная плата (далее ГПП), это такая штука, которая может свободно изгибаться. Не поспоришь. В наиболее распространенном случае ГПП используется в виде соединительных шлейфов, как например на картинке ниже:



      В более продвинутом варианте, на нем же распаивают некоторые компоненты. Те, кто разбирал старые сидюки, видел, что весь обвес головки выполнен как раз-таки на такой ГПП. Вот типичнейший пример:
       

      Читать дальше →
    • Лаги, джиттер и потеря пакетов: откуда берутся проблемы с неткодом и как их решать

      • Перевод

      Если вы когда-либо играли в онлайн-игры, то наверняка знаете о лагах не понаслышке. Пропущенный выстрел, который должен был попасть в цель; мяч, резко меняющий направление прямо в воздухе; вы вдруг снова оказываетесь на несколько шагов назад в том месте, где находились секундой ранее. В этом нет ничего сверхъестественного: это обычные артефакты систем, обеспечивающих совместную игру с людьми из других стран почти так же эффективно, как и с соседом по комнате. По крайней мере, большую часть времени.

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

      Читать далее
    • Интеграция собственных шрифтов в ПЗУ VGA-карты

      • Перевод
      • Tutorial

      История об изысканиях возможных путей использования в видеокарте собственных шрифтов, которая увенчалась их полной интеграцией в ПЗУ VGA. На этом пути рассматривались различные варианты, возникали определенные сложности, но в конечном итоге старое доброе отображение шрифта было получено!
      Читать дальше →
    • Гексагональные тайловые миры

      • Tutorial

      Тайловость в играх – очень распространенное явление, особенно в играх инди сегмента. Чаще всего используют квадратные тайлы – в них проще всего задать необходимые данные, будь то карта уровня или инвентарь. Однако на квадратных и прямоугольных формах возможности подобной системы не ограничиваются.

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

      Читать далее
    • USB на регистрах: isochronous endpoint на примере Audio device

        image<картинка с платой и наушниками>
        Еще более низкий уровень (avr-vusb): habr.com/ru/post/460815
        USB на регистрах: STM32L1 / STM32F1
        USB на регистрах: bulk endpoint на примере Mass Storage
        USB на регистрах: interrupt endpoint на примере HID

        Сегодня рассмотрим последний тип конечных точек, изохронный. Он предназначен для передачи данных, критичных к времени доставки, однако не гарантирует ее успешность. Самый классический пример — аудиоустройства: колонки, микрофоны.

        Как ни странно, этот тип конечной точки оказался самым мозговыносящим (и это после всего, что я успел повидать с stm'ками!). Тем не менее, сегодня мы сделаем аудиоустройство и заодно чуть-чуть допилим ядро библиотеки USB. Как обычно, исходные коды доступны:
        github.com/COKPOWEHEU/usb/tree/main/4.Audio_L1
        github.com/COKPOWEHEU/usb/tree/main/4.Audio_F1
        Читать дальше →
        • +12
        • 2,5k
        • 9
      • Восстановление погибших дискет с осциллографом


          Плата Greaseweazle F7 Plus выступает в роли флоппи-контроллера, источник

          Есть много хороших современных решений для чтения данных со старых дискет и жёстких дисков. Пожалуй, одно из лучших — Greaseweazle: очень функциональная система с открытым железом, исходным кодом, недорогая. На форумах вам с радостью помогут дружелюбные фанаты. Плата подключается напрямую к дисководу, заменяя собой флоппи-контроллер — и считывает данные в малейших деталях. Работает на дискетах с любой защитой от чтения.

          Но что делать, если Greaseweazle не может прочитать биты на магнитной поверхности — и сообщает о повреждённых данных? Что, если на дискете материал исторической важности, исходный код в единственном экземпляре или культовая игра? Неужели всё потеряно?

          Совсем нет. Известный хакер Крис Эванс с инженером Филом Пембертоном протестировали новый способ восстановления данных с флоппи-дискет, используя осциллограф. В частности, они вернули к жизни игру «Ферма старого Макдональда» для BBC Micro. Подробнее см. в блоге Криса Эванса, здесь краткий пересказ, как это было сделано.
          Читать дальше →
        • Строим твёрдотельный лазер без регистрации и смс

          • Tutorial


          Лазер. Как много в этом слове… Ну и так далее. Помню, с каким интересом я открывал один из школьных учебников по физике и рассматривал картинки устройства рубинового лазера. Сделать такое было бы сродни получить мощь гиперболоида инженера Гарина. Как всё было просто на картинке учебника! Но повторить такое школьнику в 90-е это было бы что-то из области фантастики. Прошло много лет, окончена кафедра квантовой электроники ЛЭТИ, но мечта осталась. Пора её реализовать! Итак, вперёд.
          Читать дальше →
        • Особенности разработки на мейнфреймах

            Этапы разработки большинства приложений в современных реалиях выглядят примерно одинаково, независимо от того, пишите ли вы прошивку для пульта от кондиционера или запускаете дрона на Марсе. Однако, проблемы, возникающие из-за особенностей платформы или приоритета конкретных приложений, очень разнообразны.

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

            Читать далее
          • История о том, как мы разработали собственную БС

              5. Тестирование

              Неоценимую поддержку нам оказал давний партнер в лице ПАО «МТС». Разумеется в процессе разработки мы проводили тестирование на доступных ядрах, например, NextEPC [13], предсказать как наша БС поведет себя в «полевых» условиях не мог никто.

              Само тестирование проходило в несколько этапов, сначала коллеги из МТС  подключили БС к тестовому ядру, чтобы убедиться, что она корректно взаимодействует с корой, затем провели лабораторное (настольное) тестирование необходимого функционала. Только после того как все убедились, что: а) нашу БС безопасно подключать к коммерческой коре; б) она соответствует функциональным требованиям, предъявляемым БС LTE — мы перешли к полевым испытаниям [14,15].

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

              Позднее, совместно с компанией НТЦ «Протей» [16], мы провели успешное тестирование на разработанном ими ядре.

              Читать далее
            • Делаем бесконечную карту памяти для PS1


                PS1 (она же PSX, она же PS One) это первое поколение игровых консолей PlayStation от Sony и относится к пятому поколению игровых консолей вообще. Она использует 2х скоростной привод для чтения CD. Такой большой объём данных по меркам актуального для приставки времени позволял игроделам особо не оглядываться на ограничения при создании контента для игр, что делало последние более качественными, по сравнению с играми предыдущего поколения приставок. А ещё, игры теперь могут быть длинными. И если любая игра, за редким исключением, на консолях предыдущих поколений вполне себе могла быть пройдена за одну игровую сессию, то с играми PS1 всё обстояло иначе. Для сохранения прогресса у PlayStation предусмотрены карты памяти: маленькие сменные модули энергонезависимой памяти.

                Если вам интересно, как именно устроена карта памяти PlayStation 1, как она работает и как можно создать свою — добро пожаловать под кат.
                Читать дальше →
              • Временные ограничения и статический временной анализ FPGA на примере Microsemi SmartTime

                Ещё во время обучения в ВУЗе, проектируя различные тестовые безделушки и выполняя лабораторные работы по цифровой схемотехнике, я попадал в ситуации, когда вроде бы корректный несколько раз перепроверенный проект отказывается работать «в железе». В то время, на заре изучения программируемой логики, мне как-то очень редко доводилось добираться до последних пунктов Design Flow, в чем, вероятно, и крылась беда. Если я нечаянным щелчком мыши открывал Timing Analyzer, то после нескольких секунд беглого просмотра становилось скучно, и я возвращался к издевательствам над отладочной платой и сочинял новые безумства на VHDL.

                Когда подошло время более-менее адекватных и серьёзных проектов, проблем стало больше, соответственно, я начал интенсивнее использовать гугл и искать ответы на свои вопросы. Тут мне всё чаще стали попадаться такие страшные словосочетания, как “timing analysis” и “design constraints”, когда я почитал и немного вникнул, пришло осознание того, что я упустил что-то очень важное. Сначала я панически боялся этих неведомых констрейнов, и ведь без них успешно работали первые проекты, благо частота там была не больше пары десятков МГц. Но когда речь зашла о более высоких частотах и более сложных проектах, здесь уже не обойтись без тщательного временного анализа и оптимизации.
                Читать дальше →
                • +22
                • 29,6k
                • 7
              • Использование UDB в микроконтроллерах PSOC 4 и 5LP Infineon (Cypress) для управления светодиодами WS2812

                • Tutorial

                Светодиоды типа WS2812 очень популярны, ими удобно управлять, передавая по одному проводу команды для сотен светодиодов. Они имеют, с одной стороны, очень простой протокол, а с другой стороны, в микроконтроллерах нет аппаратных интерфейсов для этого протокола и его приходится формировать программно управляя выводом микроконтроллера. В этом посте я расскажу, как с помощью UDB микроконтроллеров серии PSOC 4 и PSOC 5LP компании Infineon сделать периферийный модуль для управления этими светодиодами.

                Очень длинный пост, много картинок→
              • Как разработать микросхему. Собственный процессор (почти)

                  Как же разработать свою микросхему. Задался я этим вопросом, когда я захотел создать собственный процессор. Пошёл я гуглить и ничего годного не нашёл. Ответы в основном два։ "Ты не сделаешь свой процессор, потому что слишком сложно" и "Забей и собери компьютер из комплектующих".

                  Очевидно что это меня не устаивает, поэтому я решил изучить вопрос серьезнее. Оказалось можно сделать свой процессор описав его с помощью Verilog и FPGA. Купил плату в Китае, 3 года спокойным темпами написал свой процессор, оттестировал, скомпилировал и залил на FPGA. Но мне этого не достаточно.

                  Читать далее
                • Пишем плагин отладки для SNES игр в IDA v7

                  • Tutorial


                  Приветствую,


                  Моя очень старая мечта сбылась — я написал модуль-отладчик, с помощью которого можно отлаживать SNES (Super Nintendo) игры прямо в IDA! Если интересно узнать, как я это сделал, "прошу под кат" (как тут принято говорить).

                  Читать дальше →
                  • +28
                  • 2,3k
                  • 5
                • Декомпиляция node.js в Ghidra


                    Приветствую,


                    Вам когда-нибудь хотелось узнать, как же именно работает программа, которой вы так активно пользуетесь, игра, в которую часто играете, прошивка какого-нибудь устройства, которое что-то делает по расписанию? Если да, то для этого вам потребуется дизассемблер. А лучше — декомпилятор. И если с x86-x64, Java, Python ситуация известная: этих ваших дизассемблеров и декомпиляторов полным-полно, то с другими языками всё обстоит немного сложнее: поисковые машины уверенно утверждают — «It's impossible».



                    Что ж, мы решили оспорить данное утверждение и произвести декомпиляцию NodeJS, а именно выхлоп, который выдаёт npm-пакет bytenode. Об этом подробнее мы и расскажем по ходу статьи. Заметим, что это уже вторая статья в серии о нашем плагине для Ghidra (первый материал был также опубликован в нашем блоге на Хабре). Поехали.

                    Читать дальше →
                    • +16
                    • 2,7k
                    • 2
                  • Считывание контроллера nes (dendy) на ассемблере

                      В предыдущей статье Я рассказывал вам о основах ассемблера 6502 о некоторых участках памяти и как с ними работать, до сегодняшнего дня у меня стояли следующий ряд задач: считывание контроллера, анимация, таймер. Ниже под катом Я расскажу как научился читать контроллер.

                      Читать далее
                    • Planet X3 — новая игра для старых компьютеров

                        Planet X3 игрушка не самая известная, но и нельзя сказать, чтобы совсем уж неизвестная в соответствующих кругах. Но русскоязычных обзоров на неё не встречал, потому решил написать свой. Из упоминаний об игре в рунете нашел только несколько сообщений на форумах да пост на Хабре про музыку на РС-спикере.

                        Чтобы считать игру «ретро», сегодня считается достаточным в ней пикселизировать графику, добавить неона и VHS — и всё, уже «ретро», «8 bit» и т.п. Но не все с этим согласны.

                        Ютубер David Murray (The 8-Bit Guy) решил, что ретро-игра должна запускаться на ретро-компьютерах. И написал такую игру. Предыдущую часть (Planet X2) он писал для Commodore 64, а эту решил написать для DOS.



                        Жанр игры — стратегия в реальном времени.
                        Читать дальше →