Pull to refresh
61
0.7
Александр Козлов @alcotel

Инженер-электронщик

Send message

Только это работает в разы медленней, чем мне надо.

Из прерываний уарта я использую только RXIDLE - по приëму пакета. Всë остальное - аппаратно. Выше мегабита/с по-другому не очень получается.

ТЕ и UE - я имел в виду биты управления, а не состояния.

Они у ST и у GD слегка по-разному называются) Хотя суть скопирована почти 1:1

Поставил я таки в старую систему релиз 24.3.2 из исходников. Прекрасно работает.

Ngspice с моделированием переходных процессов действительно справляется гораздо лучше, чем Qucsator. Но если, например, конденсатор висит в воздухе (при отладке схемы где-нибудь разрыв делаю), Ngspice сразу говорит - сингулярность. Qucsator как-то умел это обходить.

Скомпилилось не сразу. Но по подсказкам компилятора внёс изменения, и всё заработало.

Правки
diff --git a/qucs/components/libcomp.cpp b/qucs/components/libcomp.cpp
index eab40cd5..20c835b7 100644
--- a/qucs/components/libcomp.cpp
+++ b/qucs/components/libcomp.cpp
@@ -27,6 +27,7 @@
 #include <QDir>
 #include <QRegularExpression>
 #include <QDebug>
+#include <memory>
 
 LibComp::LibComp()
 {
diff --git a/qucs/diagrams/diagramdialog.h b/qucs/diagrams/diagramdialog.h
index 1114463d..73561741 100644
--- a/qucs/diagrams/diagramdialog.h
+++ b/qucs/diagrams/diagramdialog.h
@@ -26,6 +26,7 @@
 #include <QDialog>
 #include <QRegularExpression>
 #include <QRegularExpressionValidator>
+#include <memory>
 #include <vector>
 
 class QVBoxLayout;
diff --git a/qucs/extsimkernels/spicelibcompdialog.cpp b/qucs/extsimkernels/spicelibcompdialog.cpp
index 18f46e94..955c304c 100644
--- a/qucs/extsimkernels/spicelibcompdialog.cpp
+++ b/qucs/extsimkernels/spicelibcompdialog.cpp
@@ -281,7 +281,7 @@ int SpiceLibCompDialog::parseLibFile(const QString &filename)
       subcir_start = true;
       subcir_body.clear();
       QStringList pin_names;
-      QStringList tokens = line.split(QRegularExpression("[ \\t]"),Qt::SkipEmptyParts);
+      QStringList tokens = line.split(QRegularExpression("[ \\t]"),qucs::SkipEmptyParts);
       if (tokens.count() > 3) {
         subname = tokens.at(1);
       } else continue;

Было у меня 2 задачи:

простая - сформировать таймером сигнал направления передачи для RS485, +-1 бит,
и сложная - сымитировать дифф.сигнал для обмена с MAX17843. +- 1/4 бита.

Мк из разных семейств, но я думаю, всё похоже должно быть и у остальных. Везде UART работал через DMA - один раз запустил вместе со стробом, и забыл до следующей передачи. Синхростарт, естественно, делается с запретом прерываний.

У ST (F105) передатчик UART стартует с задержкой +-1/2 бита, если не отключать UE. Если отключать, то не хуже +-1/16 бита. Отключение TE приводит к фиксированной доп.задержке в 11 бит.

У GD (F405) 11-битная задержка появляется полностью рандомно, независимо от TE и UE. Точная повторяемость получилась, только если UART перед каждой передачей сбрасывать через RCC. И, соответственно, инициализировать заново.

Помню же, не так давно тут читал про подобную установку. Нашёл.

https://habr.com/ru/articles/800827/

Всё похоже - выпрямитель (правда, с удвоением), тиристор и обратный диод. Без трансформатора, просто катушка. И какие-никакие расчёты есть.

Поймал в 400й серии проблему, не описанную в errata - задержка от включения UART до физической передачи плавала случайно от 0 до 11 бит. Пришлось костылить хардкорный сброс UART (вместе с приёмником) перед каждым пакетом.

Но вообще основное отличие GD от остальных флеш-мк в том, что он не флеш-мк. Внутри корпуса 2 кристалла - мк и SPI-флеш. По-моему @BarsMonster его вскрывал, или ещё кто-то, не помню точно. Прошивка из SPI-флеши при старте кэшируется в теневое ОЗУ, и оттуда уже выполняется.

Из-за этого появляется несколько нюансов:

  • Время старта прошивки увеличивается, т.к. прошивку ещё надо скопировать.

    Это в даташите для F103xC
    Это в даташите для F103xC
  • Кэшируется не вся флеш, а только часть, которая влазит в теневое ОЗУ. Его объём одинаковый у каждой серии, независимо от объёма флеши. Хотя и довольно большой.

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

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

Интересный экземпляр. Но для блока питания я бы не стал такой ставить. Бывает, нужно выставить, например, точно 15,0 В, а до 15,5 уже нельзя крутить. Классика "грубо" + "точно" универсальнее.

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

Похоже на эту

Но не эта. Эта просто многооборотная. Именно двойные ручки на один резистор. Или я что-то путаю?

Для чего зазор?

Да вроде как на основе своих RF-чипов Микран много чего делает. Чуть ли не базовые станции, не то что модемы.

Я не про тональный набор, а про модем. Там и FSK, и BPSK, и QPSK и гораздо более страшные сигнальные созвездия были.

Ампер-витки в первичке и вторичке трансформатора одинаковые. И объëм, в котором вы создаëте поле, у них, судя по фоткам, примерно одинаковый. Индуктивность первички без сердечника по идее будет такая же, как сейчас под нагрузкой. А потерь поменьше выйдет.

А изменится ли что-то, если убрать трансформатор, и намагничивать с помощью его первичной обмотки?

От сети она будет не изолирована, это да. Может быть придëтся еë залить компаундом, чтоб не разлетелась. Но поле, вроде, такое же будет, и потерь меньше. Или нет?

Я как-то давно подзабил на все эти "хардваре абстракшын". Тем более, что у разных процов инициализация функций GPIO разная. И один фиг вся эта инициализация по факту - просто запись пачки констант в пачку регистров.

Поэтому давно пользуюсь табличкой типа такой. Изначально я для FPGA такие "кодогенераторы" делал, где ног немеряно. Потом прикрутил к микроконтроллерам.

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

Интересно, а как концентрация поля работает? Какой-то специальный материал сердечника? Ведь чтобы концентрация работала при 5-10 Тл, материал должен иметь магнитную проницаемость больше 1. А обычная трансформаторная сталь при 2 Тл уже насыщается.

Ясен палец, Интелов и АМД в автоэлектронике не будет. Интел делает процессоры для десктопов, серверов, суперкомпьютеров.

С чего бы ему там взяться? Интел массово делает микроконтроллеры? Нет. Хотя 8051 когда-то там и придумали. Интел делает интерфейсы кан, ацп, DCDC, силовые полупроводники? Нет, и никогда не делал. В мультимедиа сейчас царит ARM, а процы с армовским ядром делают все, кроме Интела и АМД. Единственный чип интела в авто я видел только на плате БМС Теслы под маркой Altera. Какого хабра он там нужен - не понял)

Инфинеон - да, царь и бог автоэлектроники, подтверждаю. Bosch уже не бог)

А вот в оставшиеся 50% others могут входить все. И Китайцы в том числе. И даже российский завод Ангстрем, на сколько я знаю, для других брендов несложные полупроводники производит (производил).

Ностальгия, прям... Тёплый ламповый звук телефонного модема... "Только не дисконнект!"

Или не телефон? IP-камеры обычно хорошо ИК видят. Если их отвёрткой предварительно "настроить", заблокировав ИК-фильтр

Да, это я ошибся, поэтому и непонятки. Я бегло посмотрел в подпись под новой картинокой, текст не перечитывал. Решил, что это LED. Сам пользуюсь смартфоном для визуализации ИК.

Сфоткать пятна - вот это действительно круто для телефона.

https://aliexpress.ru/item/32818443302.html

Ну и не только на али, а в принципе так давно делают. Твёрдотельный флюгер-анемометыр) Скорость и направление измеряютъ. По температуру компенсируютъ. От давления и влажности скорость звука слабо зависит.

Information

Rating
1,948-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Разработчик электроники
Lead
From 280,000 ₽
Electronics Development
Development of printed circuit board
FPGA
Programming microcontrollers
Sound processing