В предыдущей статье мы начали осваивать построение шинно-ориентированных систем на базе среды Litex (которая всё делает на Питоне) с внедрением собственных модулей на Верилоге. Статья так разрослась, что практические опыты мы оставили на потом. Пришла пора провести их. Сегодня мы подключимся к VGA-монитору и поуправляем изображением, которое выдаёт модуль gpu, описанный в файле gpu.v, то есть, реализованный на языке Verilog. Управлять мы им будем через регистр команд, расположенный в блоке CSR, спроецированном на шину Wishbone. Все эти сущности, в свою очередь относятся к среде Litex. Инструменты для опытов мы тоже будем использовать штатные, Litex-овские. Приступаем!
Программирование микроконтроллеров *
Учимся программировать микроконтроллеры
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Новости
Самоделка — полная…: ПХМ-1 из пластика и кремния
ПХМ-1 — вымышленный прибор из лаборатории Доктора Дью. Он предназначен для измерения качества присланных «самоделок» по линейной шкале. Очевидно, что это реквизит для съемок, тем не менее, устройство можно использовать в качестве шутки во многих областях, в том числе в IT.
Пошаговых инструкций по созданию ПХМ-1 не нашлось — пришлось писать самому.
Интеллектуальный поиск отечественных аналогов для импортных микросхем. Поучаствуй в beta тестировании
Наша компания занимается разработкой микросхем и само собой мы делаем все возможное что бы они были как можно больше представлены на рынке. Да мы знаем, "что импорт дешевле и документация у них лучше". Но мы работаем над нашими проблемами, особенно в текущих условиях, когда дефицит микросхем и различные государственные меры поддержки дают шанс увеличить долю отечественной продукции. Что бы максимально облегчить жизнь и сберечь свое и самое главное время наших потенциальных потребителей мы разработали специальный сервис по поиску отечественных аналогов импортных микросхем.
К созданию сервиса нас подтолкнул вал писем с экселевскими таблицами с перечислением сотен и тысяч наименований микросхем, просто ВОМ-ы или Ведомости Покупных Изделий, с просьбой подсказать возможные аналоги. Это очень муторный и тяжелый и зачастую неэффективный труд. Приходится просматривать множество спецификаций, додумывать, для чего может использоваться та или иная микросхема и предлагать какие либо отечественные аналоги. В общем замена импортных микросхем на отечественные требует некоторого приложения фантазии и патриотизма. Поэтому для облечения всю монотонную и формальную работу должен делать компьютер, а не человек. Обычно на стороне потребителя за вопрос поиска аналогов отвечает не разработчик, а сотрудник отдела закупки, которые в большинстве случаев не понимают функций, выполняемой данной микросхемой в изделии, и тем самым отсекаются возможные варианты. Наши же специалисты так же стараются честно подойти к сравнению и например, пишут что аналога нет, если по их мнению какой либо важный параметр сильно отличается, хотя на самом деле разработчик просто перезаложился. Срабатывает как минимум два больших субъективных фильтра. Поэтому наш сервис в первую очередь ориентирован именно на разработчика и должен быть понятен и удобен именно для разработчика с привычным ему форматом, что бы он не скидывал это на "закупку".
15с, 16c или 41c – вам какой? Собираем собственный эмулятор калькулятора HP
Я всю свою жизнь пользовался калькуляторами HP RPN, и мне жаль, что RPN-версии больше не производят. Они были упразднены в угоду стандартным инфиксным калькуляторам. Тем не менее я всегда хотел иметь HP15c, но вот никак не подворачивался случай его купить. Так что это моя первая попытка создать его самостоятельно.
Вычитываем прошивку STM32
Почти в каждом микроконтроллере с интегрированной флэш памятью есть защита от вычитывания прошивки. Это делается чтобы защитить интеллектуальную собственность, криптографические ключи и алгоритмы от злоумышленников. Микроконтроллеры серии STM32, получившие широкое распространение в последнее время, особенно часто подвергаются атакам, однако нет практического опыта или информации касательно защищенности STM32 от подобных атак доступной публично. В этой статье рассмотрим системы защиты прошивки на примере STM32f0 серии и способы их взлома.
Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.
Авторы статьи пришли к выводу, что серия мк STM32F0 содержит ряд уязвимостей позволяющих в лаборатории с базовым оборудованием создать установку для вычитывания прошивки. Методы могут комбинироваться для достижения наилучшего результата или позволить работать в RDP level 2.
Хакаем CAN шину авто. VAG диагностический бортовой компьютер
С огромным увлечением исследую протоколы CAN шины и разрабатываю устройства взаимодействующие с автомобилем. У меня уже есть голосовое управление центральным замком, виртуальная панель приборов и даже мобильное приложение для моей Skoda Octavia A5.
Теперь я решил разработать диагностический бортовой компьютер для автомобилей группы VAG (VW, Audi, Skoda, Seat). Моими техническими требованиями было: OLED дисплей, лёгкая установка и подключение, множество диагностических параметров. В качестве компонентной базы выбрал:
Мини-куб из 3456 светодиодов
Не знаю почему, но мне очень нравятся светодиоды, и видеть их можно почти во всех моих проектах. Буквально недавно меня вдохновил Грег Дэвилл своим проектом миниатюрного LED-куба с 3456 светодиодами. Немного поразмышляв на эту тему, я решил собрать такой же чудесный куб сам, о чем и поделюсь с вами в данной статье.
Проектировщик процессоров Zilog расскажет про Z80 в космосе и про свое новое RISC-V ядро
Что общего между популярным у хоббистов компьютером Синклер ZX Spectrum и космической станцией Juno, которая сейчас вращается вокруг Юпитера? И на одном, и на другом стоит процессор с архитектурой Zilog. На Синклере просто Z80, а на Juno - радиационно стойкий Y180-S. Y180-S спроектировал Монте Далримпл (Monte J. Dalrymple), выпускник Беркли, который проработал 16 лет в Zilog, после чего сделал собственный бизнес, компанию под названием Systemide.
Мы связались с Монте и он согласился выступить перед российскими слушателями, рассказать о всяких занятных ситуациях при проектировании процессоров.
Создаём простейший проект для ПЛИС Lattice в среде Litex
В предыдущей паре статей я рассуждал про ПЛИС Lattice. Давайте сегодня поговорим об эффективной разработке под них. Один наш крупный руководитель уверяет, что из разговоров с иностранными Заказчиками, он выяснил, что российских разработчиков считают пишущими классные вещи, но делающими это крайне медленно. Ну, разумеется, по сравнению с разработчиками из других стран. И разумеется, «классные» идёт на первом месте.
Один из методов обхода проблемы скорости разработки – использование готовой инфраструктуры для проектов. Я делал цикл статей про комплекс Redd, где продвигал использование готовой шинной инфраструктуры в среде разработки Quartus. Сначала это была честная процессорная система, потом – процессор мы изъяли, а шины – оставили.
Затем я делал пару циклов, где активно использовал данный подход. Мне приходилось дописывать только проблемно-ориентированные модули, остальное — среда разработки создавала за меня.
Есть ли что-то подобное для Lattice в частности и сцепки Yosys/NextPNR в целом? Вы не поверите! Решение не просто есть, но оно ещё и настолько кроссплатформенное, что подойдёт и для Yosys/NextPNR, и для Quartus, и для Vivado! И называется оно Litex. Итак, давайте попробуем поэкспериментировать с ним для подхода, который я уже давно продвигаю: «делаем штатную основу, а на неё нанизываем свои целевые блоки».
Открытый проект индуктивного абсолютного энкодера
Без энкодеров не обходится ни один промышленный робот, принтер, лифт, гимбал и проч. Но и в более простых вещах энкодеры тоже нужны. При этом индустриальный энкодер на 1024 точки может обойтись дороже самого мотора. Здесь представлен проект индуктивного энкодера способного упростить жизнь создателям мехатроники.
Модернизация настольной лампы лупы радиолюбителя-электронщика
Сегодня я расскажу про то, как я переделал свою старую настольную лампу-лупу в современный аксессуар радиолюбителя электронщика.
Могу предположить, что большинство из читающих эту статью, имеют похожий светильник и я по своему опыту могу сказать, что без него как без рук, тем более если зрение не 100%.
SIM800L + STM32 Bluepill + Rust. Как оно?
Несколько лет назад сделал себе на Arduino блок мониторинга питания дачного котла от UPS. Как показала практика, связка Arduino MEGA + шилд на SIM900 со стандартными библиотеками работает очень нестабильно. Периодически всё зависает, само перегружается и т.д. Отладить это невозможно, поэтому стал искать другие варианты. В результате решил всё переделать на современных технологиях: взял за основу STM32 Bluepill, приобрел на али модуль SIM800L, но самое главное – весь код решил написать на Rust, купился на обещания его высокой надёжности. Что из этого получилось читайте дальше.
Как разработать микросхему, от идеи до результата. Часть 4. DRC/LVS/PEX
В этой части мы:
- Запустим Design Rule Check, чтобы проверить возможность произвести нашу схему
- Запустим Device Extraction для сравнения нашего Layout с целевой схемой.
- Произведём сравнение наших компонентов из Layout и нашей схемы, которую мы нарисовали в XSCHEM.
- Сгенерируем netlist с паразитными конденсаторами и резисторами (PEX).
- Просимулируем netlist с паразитными конденсаторами и резисторами.
- Сгенерируем LEF файл.
- Подведём итоги этой серии статей.
AK4452 запуск бюджетного HiFi DAC
В прошлом году заказал AK4452 от компании AKM. Компания Asahi Kasei Microdevices (AKM) известна своими высококачественными Аудио ЦАП. Вельветовое звучание. Sampling Rate: 768kHz. DR, S/N: 115dB. Встроенные фильтры. Все это можно посмотреть в материалах по ссылке внизу. Кстати совсем недавно его устанавливали в бытовые домашние центры в которых из заменили AK4459 и другие. Сейчас AK4452 используется в переносимых плеерах и USB свистках
Стало интересно запустить и посмотреть как работает чип. AK4452 рассчитан на работу 3.3V. Для полноценного раскрытия потенциала необходимо 5V для аналоговой части. Хотя и на 3.3V так же работает в штатном режиме. Характеристик чипа снято не было. минимальные тесты. Прогон в основных режимах.
Не обошлось без перерезания дорожек и прочих ошибок, все в лучших традициях прототипирования устройства. С размышлениями. Исследованиями программной и хардварной части. Тот кто впервые знакомится с построением HI-Fi аудио плееров статья пригодится. Вылилось в длинный журнал действий, который не закончен
Как разработать микросхему, от идеи до результата. Часть 3. Схемотехническое представление и Layout
В этой части мы:
- Будем рисовать схему, используя XSCHEM
- Произведём симуляцию нашей схемы, используя NGSPICE
- Поймём цикл производства микросхемы
- Нарисуем Layout, используя KLayout
Предполагается, что вы уже прочитали предыдущие материалы. Если мне удалось вас заинтересовать, прошу под кат!
Что делать, когда мигать лампочками уже скучно, а проектировать процессор еще сложно
ПЛИС и Verilog - естественная платформа для обучения будущего проектировщика процессоров, так же как Си и микроконтроллеры - естественная платформа для обучения будущего программиста встроенных систем.
И один, и другой путь начинается с мигания огоньками на недорогой плате, но дальше пути расходятся. Встроенный программист смотрит в сторону самоуправляющихся авто, с задачами на RTOS и распознаванием ситуации с помощью AI в GPU. Проектировщик микросхем на уровне регистровых передач смотрит в сторону групп, разрабатывающих CPU, GPU, NPU и сетевые чипы, но какие упражнения он может делать между миганием огоньками и трудоустройством в Интел?
Hello NXP JN5169 Zigbee: OTA обновление прошивки
Всем привет!
Если у устройства есть микроконтроллер, рано или поздно возникает вопрос обновления прошивки. Вам очень повезло, если у устройства есть какой-нибудь удобный интерфейс для обновления прошивок, вроде USB или SD карты. Тоже неплохим вариантом является наличие программатора и возможности подключить этот программатор. А что делать если устройство нельзя легко демонтировать или к нему нельзя подключить программатор?
Но нам повезло: разработчики Zigbee продумали и стандартизировали способ обновления прошивок по воздуху (OTA), а в микроконтроллере NXP JN5169 достаточно флеш памяти для реализации OTA. Этот подход с минимальными правками также должен заработать и на более новых микроконтроллерах (JN5179, JN5189). Ну а общие принципы диктуются спецификацией ZigBee и будут применимы и для микроконтроллеров других производителей.
Как разработать микросхему, от идеи до результата. Часть 2. Установка программного обеспечения
Напоминаю, что я продолжаю идти к цели — сделать свой собственный Отечественный Процессор (TM). Продолжение процесса разработки можно посмотреть под катом.
Синтезируем SystemVerilog код в OpenSource среде Yosys/NextPNR
В предыдущей статье я поделился опытом работы с ПЛИС фирмы Lattice через инструменты с открытым исходным кодом Yosys и NextPNR. Как я отмечал, освоить их меня заставило не столько любопытство, сколько требования Заказчика. В том проекте у меня просто не было выбора. И та статья, скорее, была написана в помощь для быстрого старта тем, кого тоже заставят. А можно ли использовать эту сцепку для дома, для семьи? Для этого она должна быть удобной.
Как мы обсудили в комментариях к прошлой статье, в минусы этой сцепке можно записать отсутствие такого полезного инструмента, как SignalTap (Altera) или ChipScope (Xilinx). Замену этой парочке пока что удалось найти только в виде физического анализатора. Так себе замена, но хоть что-то.
Более серьёзная трудность заключалась в том, что все примеры, которые я находил, были реализованы на чистом Верилоге. А я уже не могу писать автоматы, не используя такой механизм, как enum. Меня каждый раз злит необходимость перенумеровывать состояния, если я правлю автомат по ходу разработки. Но чтобы был enum, надо пользоваться более прогрессивным стандартом языка, который уже называется SystemVerilog.
На странице Yosys YosysHQ/yosys: Yosys Open SYnthesis Suite (github.com) описано, что данный язык ограниченно поддерживается синтезатором, и даже указана опция для его использования. А именно сказано, что команде read_verilog надо добавить ключ –sv. Но попытки найти в сети готовую инструкцию для новичков, как её активировать, я не нашёл, потому что если кто-то и пользуется этой командой, то для одного файла, а не для списка.
Наконец, я разобрался, поэтому делаю такую инструкцию, чтобы любой желающий смог быстро найти готовое решение.