STM32 видеоплеер AVI с OSD меню. Оптимизация jpeg декодера на ассемблере
VadRov
778
подписчиков
Программирование, C, ASM, микроконтроллеры: stm32, esp32. Распаковки, обзоры, тесты. Скучно точно не будет. 😉
Закреплено автором
Драйвер контроллера тачскрина XPT2046 для микроконтроллеров серии STM32G0
Драйвер контроллера XPT2046 (совместим с HR2046 и другими аналогами) поддерживает весь функционал контроллера: работа с сенсорным резистивным экраном, измерение температуры встроенным датчиком, измерение напряжения на входах VBAT и AUX. Драйвер реализован на CMSIS и может быть использован в программах пользователя независимо от уровней абстракции (HAL, LL) иных участков кода. Функции и особенности: #include "xpt2046.h" 2. Добавьте в обработчик прерывания SysTick_Handler вызов: XPT2046_TIMCallback(touch); 3...
Всех приветствую. Компания STMicroelectronics около недели назад обновила среду разработки программ STM32CubeIDE для stm32 до версии 1.12. Я так думаю, это первоапрельский выпуск, который призван делать "кирпичи" из некоторых ранее работающих проектов, которые кто-то решит мигрировать в новую версию. Прямо сходу, после обновления, выловил "кирпичеобразующую основу" в инициализации для проектов на базе библиотеки LL. Ребята из ST в очередной раз попытались укротить бит VOSRDY регистра CSR контроллера PWR. Результатом стала "нежизнеспособная конструкция замкнутого цикла" в функции SystemClock_Config: void SystemClock_Config(void) { LL_FLASH_SetLatency(LL_FLASH_LATENCY_2); while(LL_FLASH_GetLatency()!= LL_FLASH_LATENCY_2) { } LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE2); while (LL_PWR_IsActiveFlag_VOS() == 0 ) { } LL_RCC_HSE_Enable(); ... и только где-то ниже... еще ниже... а вот... LL_RCC_PLL_Enable(); while(LL_RCC_PLL_IsReady() != 1) { } ... } Так, при выключенном PLL происходит управление напряжением, что соответствует спецификации (RM). Однако потом происходит ожидание, когда применится новое значение напряжения, путем опроса в цикле ("не имеющем конца") бита VOSRDY. Но в спецификации на МК указано о том, что "записывай, что хочешь в VOS при выключенном PLL, но в итоге напряжение будет соответствовать SCALE3". А применится новое напряжение только после включения PLL. Понятно к чему приведет вышеуказанная конструкция? Правильно, как отметил выше, к полному "окирпичиванию" программы/устройства в самом начале, при инициализации в цикле: while (LL_PWR_IsActiveFlag_VOS() == 0 ) { } если он будет до включения PLL: LL_RCC_PLL_Enable(); Вот такие дела. А где-то плачет начинающий программист, у которого перестал моргать светодиод после обновления STM32CubeIDE... Да, проверил пока обновление для stm32401xx для остальных из f4 и f7 линейки МК не смотрел.
Применение электронного блока управления двигателем в различных проектах Есть подопытные образцы блоков управления двигателями в количестве 3 штук - Микас 7.1 на базе микроконтроллера SAF-509C-LM. Для конца 80-хх и начала 90-хх такие микроконтроллеры настоящий прорыв. Основан микроконтроллер на популярной архитектуре 8051. Максимальная частота ядра С-500 составляет 16 МГц и определяется внешним кварцевым резонатором, установленном на плате ЭБУ. 64 из 111 команд ядра выполняется за 1 такт, арифметический блок для операций деления, умножения, сдвига и нормализации. Встроенная память: 256 байт RAM, 3 кБ XRAM, 512 байт загрузочного (boot) ROM; внешняя память: до 64 кБ RAM, до 64 кБ ROM; 15 канальный 10 битный АЦП со встроенной автокалибровкой; до 29 каналов ШИМ; 5 таймеров/счетчиков; 19 каналов запроса прерываний с 4 уровнями приоритета; 10 портов ввода-вывода, с выбираемым режимом работы; 2 последовательных интерфейса со встроенными генераторами скорости передачи данных; 3 режима энергосбережения... Температура эксплуатации от -40 до +85 °C. Такие блоки купить можно на разборке. Самый дешевый вариант от карбюраторной версии. Теоретически конструировать на них можно различные системы управления: от управления светодиодом до управления газовой колонкой, инкубатором, теплицей, стиральной машиной, ... На плате уже установлены необходимые элементы, например, для преобразования температуры в цифру и т.п... Программы можно писать в Keil 5 С51, а заливать прошивку через KLine адаптер.
Все ли плохо в России с производством и разработкой микроэлектроники? В свете известных событий крупнейшие производители чипов заявили о том, что остановили поставку своей продукции в Россию. Среди таких производителей тайваньская компания TSMC, доля которой на рынке чипов превышает 55%. Спрос на микроэлектронику и полупроводники в стратегически важных областях, например, ВПК, Россия удовлетворяет за счет разработки и производства на своей территории. Говоря о развитии микроэлектроники, отмечу, что за последние годы Россия сократила отставание от лидеров отрасли. Однако это отставание все равно значительное, особенно в области производства. Так, TSMC к концу 2021 года запустила опытный выпуск чипов по 3 нм техпроцессу, а российское самое продвинутое производство в "Микроне" в настоящее время может производить чипы по 65 нм техпроцессу. В России планировалась постройка завода для производства чипов по 90-28 нм техпроцессу. Кроме того, на заводе "Микрон" планировалось и производство чипов по 45 нм техпроцессу. Значительно лучше обстоят дела с разработкой собственных чипсетов и процессоров, в т.ч., для мобильных устройств. Однако, производить их на территории России к настоящему времени не представляется возможным (недостижимый в производстве техпроцесс). Производство можно переориентировать на Китай, но там к настоящему времени освоен только 14 нм техпроцесс. Остальные свои чипы китайские компании производят на мощностях TSMC и Samsung. России нужны технологии и оборудование.
Какой флюс и припой применить для пайки домашнему мастеру-самодельщику У меня в арсенале много разных флюсов и припоев для пайки. Каждый флюс хорош по-своему, и применять следует тот флюс, который подходит для конкретного вида работ. Классическая канифоль хороша там, где паять надо много меди и там, где кусочек канифоли можно легко доставить к месту пайки. Практически бессильна против алюминия, неэффективна при пайке черных металлов. Часто канифоль можно не смывать, но лучше все-таки смыть. На основе канифоли выпускают много разных флюсов, в т.ч. активных, на спирте и воде, с добавлением ПАВ и пр.. Флюсы на основе канифоли, например, паяльные жиры, выгодно отличаются удобством доставления в место пайки. Вам надо спаять медные провода - канифоль и растворы на ее основе ваш выбор. Паяльная кислота идеальна для пайки металлов, но требует обязательной смывки щелочью (содой). Вам надо запаять металлическое ведро или бак, радиатор авто - это ваш выбор. Нейтральный паяльный жир удобен в нанесении и не требует обязательной смывки, способствует лучшей растекаемости припоя. Хороший выбор для пайки радиокомпонентов. Активный паяльный жир имеет ряд преимуществ нейтрального жира, эффективен для пайки сильно окисленных деталей. Смывать обязательно. Для радиоэлектроники не применять. Оловянно-свинцовые трубки припоя, наполненные канифолью, хороший выбор при пайке радиодеталей на плате, а если надо больше припоя, то выгоднее покупать припой в катушках или прутках (пайка радиатора).
Восстановление нерабочего электродвигателя вентилятора отопителя салона автомобиля. Разборка электродвигателя простая. Крышка заднего подшипника на двух винтах. В крышке одновременно находится и щеточный узел, и втулка подшипника. Сняв крышку, стало понятно, что смазка, которая была нанесена на втулку подшипника почти 20 лет назад, высохла. Из-за этого вращение электродвигателя было затруднено до невозможного. Осмотр пластин коллектора показал, что им необходима шлифовка. Шкуркой справиться не удалось, поэтому взял наждачный камень. Закрепил ротор в шуруповерте, как в токарном станке, приложил к коллектору наждачный камень и вперед... шлифовать. Быстро выровнял плоскость коллектора наждаком, а затем прошелся по коллектору мелкой шкуркой, придавая поверхности гладкость. Все. Шуруповерт в сторону. Теперь необходимо исключить замыкание между соседними коллекторными пластинами, т.е. необходимо прочистить "канавки" между ними. Далее последовала промывка деталей от старой смазки, нанесение новой смазки (втулки подшипников смазывал смазкой mannol) и сборка электродвигателя вентилятора в обратной последовательности. Щеток новых не было. Старые еще полностью не выработали свой ресурс. Как-нибудь заменю при случае. В идеале, конечно, необходимо притереть щетки к коллектору. Пробное включение... и... Ура! Электродвигатель заработал. Ну, кто бы сомневался 🙂 В ЗИПе теперь есть вполне себе рабочий электровентилятор отопителя. Мелочь, а приятно. Процесс восстановления снимал на видео.
Больше 10 дней прошло со дня замены дисплея с тачскрином на смартфоне Xiaomi Poco X3 NFC. Все это время гаджет активно использовался сыном в приложениях и играх. Пока все отлично. Смартфону сегодня год и у сына сформировалось мнение о нем: "Производительность в играх нормальная для своего бюджета. В сравнении с pro версией троттлинг не такой ощутимый, и при нагреве процессора производительность практически не падает. Аккумулятор за год емкости не потерял, хотя, смартфон заряжался каждый день в течение этого года эксплуатации. 120 Гц матрица отличная. C NFC проблем не было. Сенсор не глючит, хотя устройство активно используется в играх". Один недостаток. Плохо, что смартфон не в противоударном корпусе :) Гаджет несколько раз падал. Сначала треснул сенсор по диагонали. После очередного падения на пол, разбился дисплей (от него откололся угол). Смартфон превратился в кирпич на месяц. Снял на видео, как выглядел дисплей после повреждения: zen.yandex.ru/...8f0 Оригинальный дисплей с тачскрином не нашли. Приобрели аналог на Яндекс.Маркете. Менял самостоятельно. После замены все хорошо: "фантомных" срабатываний нет, фронтальная камера не засвечивается, автонастройка яркости дисплея работает корректно, передача цвета, как у оригинала, битых пикселей нет. Снял на видео процесс восстановления этого смартфона: zen.yandex.ru/...5b7 Так что, кто разбил дисплей, не расстраиваетесь. Все поправимо. После замены дисплея сын купил чехол посерьезней. Я наклеил на дисплей защитную пленку.
Проверка заданной и реальной температуры на жале паяльника Element 878D Друзья, я вас приветствую. Вчера опубликовал ролик "Паяльная станция из Китая: испытываем на заявленные характеристики паяльный фен". Возможно, вы его посмотрели. Если нет, то кратко о чем там. Проверен заявленный температурный диапазон, о котором указано в инструкции по эксплуатации. А заявлено от 100 до 480 гр. Заявленный температурный диапазон подтвержден. Кроме того, максимальная температура фена составила около 600 гр. Температура измерялась внешней термопарой на расстоянии 8-20 мм от края сопла насадки термофена. Разница между заданной и фактической на выходе из сопла температурами составила (плюс-минус): - 100 5-12 гр. - 200 2-5 гр. - 300 2-5 гр. - 400 2-10 гр. - 480 10-50 гр. Максимальная точность выявлена на диапазоне 200-450 гр. (часто это именно рабочий диапазон). При 480 гр заводская калибровка уже не обеспечивает высокой точности регулирования. Чтобы не плодить видео, провел аналогичные испытания для паяльника от станции. Провел сверку температур по шкале регулятора на блоке управления и фактической на жале паяльника. Измерения производились той же термопарой. Первая цифра - температура по шкале станции, а вторая - температура жала по термопаре: 200 -> 110, 250 -> 210, 300 -> 280, 350 -> 335, 400 -> 389. Т.е. фактическая температура ниже реальной. Для припоя ПОС-61 ручка регулятора должна быть ближе к 300 градусам (по крайней мере на моем экземпляре). Вот такая информация. Удачи вам.
Программируемая светомузыка (цветомузыка) в стиле 80-хх и "мультимедийный комбайн" на дешевом микроконтроллере Для платы на микроконтроллере написал драйвер для управления экранами на адресных светодиодных лентах. То есть теперь это не только мультимедийный плеер, но и контроллер для управления адресными светодиодными лентами. То есть воспроизводит музыку в форматах WAV, MP3, AAC через внешний ЦАП и отображает различные световые эффекты. Первым эффектом будет светомузыка в стиле 80-хх :) На фотках заготовки, пробные наброски светомузыки, "прожекторы". Остается взять данные из прямого преобразования Фурье, которое уже реализовано, и по некоторому алгоритму изменять яркость и диаметр "прожекторов". Ясность есть. Остается написать код. Согласно википедии, светомузыка (также цветомузыка) — исполнение музыки с сопровождением динамического цветного освещения. Вид искусства, основанный на способности человека, ассоциировать звуковые ощущения со световыми восприятиями. Частотный диапазон звука разделялся в светомузыках 80-х, как правило, на 3-4 полосы, каждой из которых соответствовали 3-4 канала с лампами определенного цвета: красные лампы — низкие частоты (диапазон до 200 Гц), жёлтые — средне-низкие (диапазон от 200 до 800 Гц), зелёные — средние (от 800 до 3500 Гц), синие — выше 3500 Гц. У меня пока три канала - три "прожектора". По классике, конечно, сделаю четыре. А можно и больше. Размер матрицы светодиодного экрана 60х20 диодов, 100х40 см.
Наметилась замена дисплея с тачскрином на телефоне Xiaomi Poco X3 NFC Старший сын разбил дисплей с тачскрином на телефоне Xiaomi Poco X3 NFC. Телефон грохнулся углом об пол, и последствия предсказуемы. Трещина на экране по диагонали и отсутствие угла дисплея. Естественно, полосы, артефакты и невозможность использовать телефон. Надо ремонтировать. Решил делать сам. Опыт с планшетом есть. Самому делать дешевле в 2 раза, как минимум. 99% сложности ремонта, как думал я, разобрать телефон, а 1% собрать обратно. В этой схеме отсутствует одна важная составляющая, которую я не учел. Догадались или нет? Правильно, я не учел тот факт, что найти оригинальный дисплей будет непросто. На Али - аналоги с непонятным результатом после установки. Не удивляйтесь засветам, полосам, невозможности корректно использовать фронтальную камеру, фантомным срабатываниям сенсора и прочим фокусам. Но продают в 90% случаев, конечно, под видом оригинальных. На нашем рынке такая же штука. "Походил" по онлайн магазинам. Где-то честно пишут, что аналог. Причем, по картинкам вижу "след" Али, но ценники выше. Где-то пишут, что оригинал, цена в полтора раза выше "честного" аналога, но в отзывах пишут, что аналог. В общем, пока "СТОП, РЕМОНТ". Сын хочет оригинал, и мне лишний раз неохота заниматься сборкой/разборкой. Вопрос интернет аудитории. Возможно, кто-нибудь знает, где купить настоящий оригинал дисплея с тачем, а не аналог на телефон Xiaomi Poco X3 NFC. Пишите адреса и явки, если знаете. Буду благодарен.
Сумасшедший эксперимент по ремонту видеокарты компьютера своими руками
С 2011 года без дела пылилась компьютерная видеокарта NVIDIA GeForce 9800 GT. Хорошая карта была, но славилась отвалом кристалла от платы-подложки. Кристалл и плата-подложка образуют сам чип. "Прожаривать" бесполезно В интернете много советов по восстановлению работоспособности графических карт. Все они предлагают "прожарку". Под воздействием высокой температуры должны восстанавливаться соединения контактов кристалла, чипа и платы. Моя практика показала, что такой метод если и работает, то недолго...
Китайская плата разработки на микроконтроллере STM32F401CCU6 Продолжаю разбираться с китайской отладочной платой на микроконтроллере STM32F401CCU6. Видеоотчет скоро будет. К настоящему времени подключил к микроконтроллеру microSD карту по интерфейсу SPI. Скорость чтения карты составляет ~ 1.2 МБайт/с. Сам интерфейс SPI после инициализации карты на низкой частоте обмена (порядка 300 Кбит/с) работает на скорости 10.5 Мбит/с. Возможно, потянет и больше, но 30 сантиметровые провода все решают)) Должен отметить, что на такой длине проводов - это достойная скорость, которая позволяет легко выводить картинки на дисплей и, тем более, музыку, например, в формате mp3 (там, кстати, вполне достаточно и скорости чтения 40 КБайт/с). То есть большой запас имеется по ресурсам. Да, кстати, дисплей IPS 240x240 тоже уже подключил. Подсветку дисплея реализовал на ШИМе с частотой 400 Гц. Да, яркость подсветки можно менять от 0 до 100%, изменяя скважность импульсов ШИМ. ШИМ, естественно, аппаратный. Скорость заливки дисплея с применением DMA составляет 47 кадров в секунду, а сам дисплей подключен по SPI на скорости 42 Мбит/с. Причем, провода интерфейса порядка 30 см, но дисплей не подвисает, если его не трогать руками))) Провода высокоскоростных интерфейсов должны иметь минимальную длину. А вот самым грамотным решением будет разводка печатной платы с закреплением на ней мест для внешних устройств: SD карты, дисплея, ЦАП (I2S) и др. Подписывайтесь на канал, будет интересно!