Обзор SPI Flash памяти MX25L6433F

В этом тексте я произвел обзор микросхемы SPI-NOR FLASH памяти MX25L6433F.
Показан код, который позволит запустить на микросхеме файловую систему LittleFS.

Arduino, DYI и как собрать Электроника

В этом тексте я произвел обзор микросхемы SPI-NOR FLASH памяти MX25L6433F.
Показан код, который позволит запустить на микросхеме файловую систему LittleFS.

В тексте я написал про особенности настройки SPI трансивера в режиме DMA в случае использования микроконтроллеров STM32 и про способы модульного тестирования SPI трансивера.
SPI это цифровой, последовательный, относительно высокоскоростной, полнодуплексный, синхронный физический интерфейс передачи данных в пределах одной электронной платы PCB.
Этот интерфейс служит для обмена данными между микросхемами в пределах одной электронной платы.

После успешной отладки на плате с Cyclone IV пришла пора перенести наработки на плату Zynq Mini c XC7Z020. В этой статье я опишу, каким образом можно организовать вывод нужной нам информации из PS‑части Zynq на дисплей который подключен к EMIO на выводах PL. Сделаем обновленный модуль i2c_master_axi который добавляет сверху к уже разработанному ядру поддержку AXI4-Lite Slave, сделаем сборку проекта, подключим их к PS и проверим в bare‑metal сценарии. После того как это будет все работать — переходить к Linux уже будет гораздо проще.
Всем заинтересованным добро пожаловать под кат!
Не так давно у меня на руках появилась плата RK-ZYNQ7020-F REV 1.1.
В данной статье я хочу поделиться своим опытом, связанным с подготовкой buildroot для данной платы. Здесь мы разберем этапы от формирования xsa файла до запуска платы и первых логов, с объяснением что происходит в железе на каждом этапе.
Также в рамках этой статьи я не буду использовать FSBL, мы попробуем обойтись U-Boot SPL.
Итак, приступим к рассмотрению!
Описание отладочной платы
Базовый набор периферии на данной плате, заявленный в документации:

Привет! Кто не любит прикольные интерьерные штуки? Я, например, всегда любил вид неоновых вывесок. В какой-то момент мне пришла в голову мысль: а почему бы не сделать свою собственную? Правда, не неоновую, а светодиодную. Да ещё и с кучей эффектов и управлением со смартфона. Так появилась идея для очередного «проекта на лето», реализация которого у меня растянулась на полгода. С виду простая задумка таила в себе кучу технических сложностей и мелочей, которые нельзя было упускать из виду. Добро пожаловать в невероятно интересную историю создания, которую я вам сейчас поведаю…

Представьте синюю светодиодную лампочку из строительного магазина за 100 ₽, и NVIDIA H100 за три миллиона. Внутри у обоих работает один и тот же физический принцип: PN-переход.
Меня это в свое время сильно удивило. Так вот эта статья примерно про то, как лампочка и видеокарта оказались родственниками.

Как обследовать шину MODBUS RTU к которой подключено промышленное оборудование не разрывая соединения и немного про диагностику MODBUS RTU

По учебникам цифровой логики легко представить, что ALU — это аккуратная схема из понятных вентилей. Но внутри реального TTL-чипа всё интереснее: странные многоэмиттерные транзисторы, компактные XOR-каскады, упреждающий перенос и топология кристалла, где каждый резистор занимает драгоценное место.
В этой статье разбираем 74181 — культовый 4-битный ALU-чип 1970-х — по фотографиям кристалла и смотрим, как инженерные компромиссы превращаются в работающий процессорный блок.

ЛУТовый текстолит, паяльная паста Mechanic, настольная печь Puhui и, опционально, руки из плеч – базовый набор начинающего контрактного монтажника/производителя микросерий. Если быть точным, Puhui Electric Technology CO., LTD. Их модели, такие как T-960, T962, T-937 и разнообразные модификации – друзья радиолюбителей в России и по всему миру, где, благодаря интернет коммерции, с ними знакомы уже очень давно.

Дело идёт к жаркому лету, и становятся актуальными различные способы охлаждения продуктов, приборов да и воздуха в комнате. Конечно, можно использовать обычные компрессионные холодильники и кондиционеры, работающие от сети. Но есть ли другие способы получить холод?
Оставим в стороне охлаждение бутылок в проточной воде, обёртывание их мокрым полотенцем с выставлением на ветер, а также заблуждение насчет охлаждения молока при помощи лягушек. Что если нужно охладить банку напитка прямо на рабочем столе? Или, наоборот, микрокомпьютер, мощный транзистор выходного каскада усилителя? Обычные компрессионные холодильники использовать можно, но из-за размеров на рабочий стол их не поставить.
Вооружившись элементом Пельтье с радиаторами и вентиляторами, я за полчаса сделал за настольный холодильник из теплоизоляционной плиты, купленной в строительном магазине. Примерно за час-два он смог охладить содержимое до 11 ⁰C.

Так как в первой статье я сосредоточился на схемотехнике, в этой хотелось бы пройтись по разработке ПО и прошивки.
Напомню, я решил, что вместо прошивки мне подойдёт и нейрослоп - в конце концов это не серийное устройство, а поделка для себя. И тут, как обычно, в процессе работы пошли фейерверки.
ESP32-S3 имеет два USB выхода - обычный через микросхему CH340, которая конвертирует USB в UART, и второй USB OTG, который подключен к чипу напрямую. То есть чип может управлять тем, какое "устройство" он предоставит хостовой ОС! Более того, он может предоставлять несколько устройств одновременно. Это было как раз то, что надо: одним устройством будет USB HID клавиатура для "сырого" ввода в консоль, например, а вторым - USB RAW устройство, которое будет слушать софт бекенда - запускать приложения по ярлыкам, регулировать громкость, отправлять в устройство настройки. И всё это минуя тормознутый UART. Сказка. Но, как оказалось, для взрослых.
Казалось бы, полный интернет примеров того, как это настраивать. Даже в самом фреймворке esp-idf есть пример композитного устройства, значит, информация уж точно легкодоступная, бери да пользуйся. Я попросил ИИ добавить это в прошивку и... Оно не смогло. То есть вообще. Два дня и токенов примерно на 30 баксов - и я взял дело в свои руки, потому что ИИ выдумывал всё более и более изобретательные причины того, почему прошивка не компилируется, но вот выдумать компилирующуся прошивку не мог никак.

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

Производство типовых печатных плат — само по себе сложный высокотехнологичный процесс. Но когда заказчик приходит с нестандартной задачей, нам, как производителям, часто приходится этот процесс изобретать заново. Сложность усугубляется тем, что отрасль печатных плат в России — это узкий рынок производителей, к тому же несколько изолированных от зарубежной производственной базы. Если говорить откровенно: никто толком не знает, как это делать. А если и знает — держит технологию в секрете.
В этой статье мы расскажем, как на нашем заводе «ЭЛЕКТРОконнект» делали первые гибко-жёсткие платы, с какими трудностями столкнулись и как в итоге научились их выпускать на серийном уровне.

Как я уже писал в своей прошлой статье, дурная голова рукам покоя не даёт. Так что не прошло и месяца после завершения работы над звонком, как руки уже начали чесаться. И занятие им нашлось достаточно быстро...
Я пользуюсь MAD CATZ S.T.R.I.K.E. 7, которая всем чудо как хороша, кроме того, что вышла больше 10 лет назад, её производитель обанкротился в 2014 и её софт на Win 11 уже надо ставить с бубном. Все мы смертны, клавиатуры - тем более, так что я стал задумываться над заменой. Но проблема в том, что я привык к россыпи макроклавиш, которые позволяют одним нажатием, не задействуя мозг, переключать ветки гита, исправлять криво введённые команды или вбивать пароли в окошки по 15 раз за день (о боги хаоса, как я "люблю" параноиков-безопасников). А современные клавы имеют в лучшем случае 4-5 макроклавиш (что вдвое меньше, чем нужно), а некоторые ещё и стоят как приватный остров. И тут в унынии я наткнулся на это...
В данной статье рассматривается процесс настройки vscode для разработки встроенного ПО на базе ядер cortex-M и процессе превращения редактора в полноценную IDE. При этом большинство представленных расширений являются универсальными и применимы в широком спектре задач программирования.
В отличии от проприетарных решений, таких как Keil, подход использования редактора vscode + компилятор gcc позволяет гибко настроить каждый пункт от начала разработки до релиза продукта. За время своей работы мною было опробованы разные решения: от классического keil до связки sublime и CodeSourcery. В последние годы я перешел на vscode + msys2: практически все ПО Open Source, не требует лицензий, не ограничено 32 Кб кода и может работать без сети интернет.

В далеком 2011 году автором была опубликована статья «Реализация CORDIC‑алгоритма на ПЛИС» [1]. В той статье приводится сначала математическое описание алгоритма, его суть. Показан пример расчета поворота вектора на плоскости сначала «на бумажке» согласно алгоритму, а затем сравнение результатов с расчетом «по калькулятору». Затем, показано создание структурной схемы проекта с rtl‑описанием CORDIC‑алгоритма и приведены листинги каждого модуля. Помимо этого были приведены основы создания проекта в среде ModelSim.
Автор считает, что эта статья оказалась полезной для новичков в области программирования ПЛИС, так как на протяжении долгого периода времени, после публикации статьи приходили письма с вопросами и уточнениями на данную тему. Даже сейчас я часто встречаю на различных форумах на тему ПЛИС ссылки на данную работу. Но! Если математическая часть алгоритма однозначно является полезной, а также основы создания и структурированного ведения проекта для новичка, то использовать данное rtl‑описание в различных проектах, адаптируя модули проекта по свои нужды крайне неудобно и неуклюже. По крайней мере, автор, когда заглядывает в это свое создание в прошлом, морщится и чувствует себя неловко.
Поэтому появилось желание представить тот модуль CORDICа (для генерации гармонического сигнала в сфере радиолокации и связи), который автор использует в данный момент в различных проектах. Весь алгоритм реализован в одном sv‑модуле, а, значит, его намного легче переносить из проекта в проект. Также он более прост в восприятии.

Сколько себя помню, я любил играть в LEGO. Больше всего меня восхищало то, что из одного и того же набора типов блоков можно построить что угодно: главными были не блоки, а воображение или план, показывающий, в каком порядке их соединять. Мой проект работает аналогичным образом: один набор исходников, хороший план и множество различных способов собирать и тестировать его.
В этой части я расскажу об окружениях и их взаимосвязи.
Главный принцип этого фреймворка заключается в том, что единственный набор файлов исходников на Verilog можно без изменений использовать в различных средах сборки:
ModelSim для потактово точной симуляции HDL с волновым выводом
Verilator для быстрой симуляции на C++, с тестовой обвязкой (calctest) и другими инструментами
Десктопное приложение на Qt для интерактивной работы с интегрированным отладчиком на уровне исходников
Qt WebAssembly для запуска калькулятора в браузере с попиксельной точностью
Quartus для синтеза и записи на физическую плату FPGA
Каждое из окружений позволило выявлять свой класс багов. ModelSim отлавливает проблемы таймингов на уровне сигналов. Verilator обладает достаточной скоростью для проверки тысяч тестовых векторов. Симулятор на Qt позволяет удобно пользоваться интерактивной отладкой. WebAssembly доказывает работоспособность кода в совершенно иной среде исполнения, в которой видением приложения можно поделиться со всем миром. Целевая платформа FPGA, реальная плата — это то, что можно потрогать, окончательная реализация идеи.

По следам моей публикации "Программируем SFP-модули на программаторе CH341A". Программа SFP-master была портирована c Qt5 на Qt6. Модуль "общения" с интерфейсом I2C был полностью переписан, стал значительно проще, короче и надежней. Сейчас доступна версия v1.1.1. Русскоязычное описание программы я выложил здесь. Поэтому повторять его здесь смысла нет.

В предыдущем посте мы ответили на вопрос о реализуемости проекта: да, tan, ln, exp и sqrt можно при помощи различных трюков вычислить из сложения, вычитания и умножения. В этом посте мы поговорим о том, как делать это корректно с точностью до 16 десятичных разрядов при помощи проверенной эталонной реализации, относительно которой мы будем в дальнейшем тестировать оборудование.
Когда я начинал этот проект в 2021 году, мне нужен был код на C++, который бы реализовывал алгоритмы на основе примитивов BCD и проверял результаты. Этот код превратился в подпроект Methods. Он заработал, но в нём возникли небольшие баги с шириной мантиссы, из-за которых тестовые результаты оказались ненадёжными в пределах одного-двух последних разрядов. Вместо того, чтобы патчить его, я в 2025 году переписал всё с нуля в рамках подпроекта Proto: более чистой архитектуры, правильного эталона и генератора тестовых векторов оборудования, относительно которого можно валидировать микрокод FPGA.

Привет! Это карманный брелок-приставка с игрой Doom на Arduino nano! Из данного гайда вы узнаете как собрать карманную приставку с легендарной игрой Doom, с возможностью перепрошивки на что-нибудь другое! Также вы сможете получить опыт в 3D-печати, сборке и пайке электроники Arduino, и, разумеется, новые впечатления от создания таких компактных устройств.