Jump to content

    

AVI-crak

Участник
  • Content Count

    233
  • Joined

  • Last visited

Everything posted by AVI-crak


  1. Ультразвуковая мойка! до пятнадцати вольт без нагрузки с ёмкости 10uF. Но есно киловольты могут появиться только там - где на плату приклеивают пьезокерамику пищалку.
  2. STM32MP1 - bare metal

    Это-же свихнуться можно, если все регистры самостоятельно лопатить.
  3. Ну это как считать, вдоль или поперёк. Если использовать несколько FFT отчётов: то получится динамика (уровень колебаний амплитуды), и средняя относительная энергия не превышающая единицы для каждого отчёта. В звуке энергия не зависит от средств измерения, хотя есть зависимость от рабочего диапазона. Любое колебание можно усилить/ослабить и получить желаемую мощность на выходе. Это как батарейка, без нагрузки мощность в цепи нулевая.
  4. Может я чего путаю... В моём представлении энергетический спектр не зависит от амплитуды сигнала и от фазы - это показатель приближения синуса к меандру на выбранной частоте. То-есть количество и точность совпадения чётных гармоник к выбранной частоте. Частоты гармоник могут (обязаны) складываться в общем FFT спектре. По этой причине посчитать энергию за один проход невозможно. Получается уравнение с бешеным количеством переменных. Проще всего выполнить приближение, когда коэффициенты будут плавно расти. Выбираем частоту, находим все её гармоники, сортируем их по минимальному значению от рассчитанной амплитуды, используем это значение как эталон для пересчёта всех гармоник по амплитуде, и вычитания их значения из основного FFT сектора - с дополнительным коэффициентом приближения примерно 1/10 . Если в процессе вычитания будут получаться отрицательные числа - то весь цикл сбрасывается, и по новой с меньшим коэффициентом приближения. В результате FFT сектор будет иметь минимальные значения на уровне ошибок, энергетический спектр будет содержать коэффициенты наличия гармоник для каждой частоты в отдельности. В результате получается индикация грязного сигнала - буквально. Использовать на музыкальном аналоге совершенно бесполезно - там уже давно ггг... В связи с чем вопрос - где внезапно понадобился подобный инструмент?
  5. Все будут перемножены, но по порядку. Для каждой новой частоты будут свои четные гармоники. Есть готовые решения - голосовые вокодеры.
  6. Перемножать уровень чётных гармоник, уже после бпф. БПФБПФ
  7. STM32H743 + SDRAM MT48LC32M16A2-75

    Без настроек mpu - оно вообще читаться не должно.
  8. STLINK-V3MINI Появился на алиэкспресс... Тот самый, который продать не могут.
  9. Я вот жду когда компания st изготовит STLINK-V3MINI в количестве больше чем 4 штуки ...
  10. STM32CubeIDE

    Для экономии времени нужно иногда сохранять старые проекты отдельно, в виде стартовой точки. Хотя лучшим выходом будет использование контроля версий, например черепахи.
  11. AllWinner H3 - нет тактового сигнала

    Ну а документацию кто будет читать? У этого чипа нет внутреннего генератора, всё зависит от внешнего. И jtag неверно разведён, он на pf0-pf5 в дефолте висит. Тестовая линия (насколько мне помнится), должна иметь подтяжку на землю... И с питанием там заморочки, чип сам должен командовать внешним питанием. В том случае если ему насильно его включить - он может обидится и сдохнуть.
  12. stm32 i2c

    Да кстати, к 2019 году можно было сделать полностью аппаратную физику i2c. Без этих вот дополнительных шестнадцати флагов переменной важности.
  13. FatFS и прерывания

    У всех современных sd карт есть дополнительные уникальные команды управления, которые делятся на базовые по стандарту, и то что придумал производитель. Базовые определяются переключением стандарта, это требует полной смены алгоритма общения с картой. То-есть недостаточно просто повысить скорость интерфейса и использовать те-же функции - нужно читать поддержку стандарта конкретной sd, и перенаправлять функции чтения/записи/проверки. Стандартный драйвер от st - использует базовые команды 1,0 , и выше прыгнуть чисто физически не может. Уникальные команды от производителя доступны с версии 2,0. Там конечно бардак и полный хаос, но общий принцип описания команд достаточно простой - в виде hml. Место где расположено описание, у каждого производителя уникальное. По этому нужно читать id карты и использовать свои таблицы. Уникальные команды позволяют достичь максимальной скорости общения с картой. Ради экспериментов можно распотрошить драйвер от современного кардридера, там это почти в текстовом варианте записано.
  14. STMF407 + SD

    Управление количеством транзакций дма со стороны sd, грубо говоря можно корректно обработать массив в 66кб (больше счётчика дма).
  15. Новые STM32H7 - два ядра (M7+M4), 480 МГц

    sdram, ddr, ddr2-3-4-5 - это все внешний интерфейс динамической памяти, и кстати самое узкое место. Если память уже на кристалле - то посредники там нафиг не нужны.
  16. инструкция BX

    http://badembed.ru/assembler-pereklyuchenie-konteksta/ Так будет проще
  17. инструкция BX

    Отображение этого бита зависит от используемой ID. У некоторых id этот бит автоматом прибавляется/удаляется, чтобы не мозолить глаза и не путать пользователя. Интересно другое - в какой такой хитрой задаче потребовалось менять адрес возврата, там-же за всегда каша получается.
  18. счетчик DWT - аритмия

    Адресация в sdram не кратна внешним данным, младший адрес равен всей ширине данных на интерфейсе чипа. А там может быть 2-4-8-16-32 бита. Чтение всегда выполняется в полном физическом варианте, и уже на мк обрезается лишнее. Для записи есть внешние сигналы nbl1-nbl4, которые "выключают" неиспользуемые данные - чтобы не изменить чего лишнего. С большой вероятностью они у вас не используются. Пакетное чтение включено по умолчанию, для выключения нужна магия из доков на чип памяти. Некоторые производители чипов инопланетяне, у них не так как у всех. Вся настройка производится через линию адреса, которая должна быть распаяна полностью, не смотря на якобы "лишние" линии. Потом их можно освободить если очень хочется. И да, первое обращение к произвольному адресу - самое длительное. Но потом оно ограничено только тактовой частотой чипа (в пределах одной страницы).
  19. Ну тогда и мыслить нужно иначе. Для аналоговых схем сдвиг фазы очень легко фиксировать. Он там может быть в долях градуса, и аналог может его усилить. Но у вас цифра и измерить это время просто так не получится - это буквально 1-5 единиц таймера + дребезг. А вот управлять аналоговым коммутатором через таймер - значит выкинуть много корпусов жёсткой логики из аналоговой схемы. Без усилителя один фиг не получится. Есть вариант измерять затухание в катушке, ну или её нагрузку. Без сдвига фаз, без колебательных контуров - жёсткий меандр с контролем тока по тому-же таймеру. Если сдвинуть входной диапазон ацп на рабочую область захвата напряжений - то 12 бит должно хватить с лихвой. Там естественно всё будет в попугаях, но важно не напряжение - а скорость его изменения. И да, без акселя и гироскопа это будет очередная 100500 версия металлодетектора с али.
  20. Кхм, вч закалка что-ли? Сдвиг фазы можно контролировать миллионом прямых и косвенных вариантов. Вот только зачем? Проще сразу толкать колебательный контур в нужном направлении, а не насиловать его внешней частотой. И это делается аппаратно на двух транзисторах.
  21. Разница появляется на сборке usb. Точнее на перестановке местами функций во флеш памяти, и как следствие - изменение расстояния до переменных и констант. В некоторых случаях адрес получается коротким. Смена даты создания (не изменения!!!) файла влияет на порядок обработки компилятором в случае раздельной компиляции. Сначала самое старое, оно возможно не требует обработки и может быть кэшировано. Эта функция пришла из мира больших машин, и порядком поднасрала во многих местах.
  22. STM32F103 Timer + DMA + GPIO

    В дма есть своё FIFO, использовать порог 1/2 и 4 удара на чтение из памяти для 16 бит данных, или 8 ударов на 8бит данных. Память при этом будет читаться два раза по 32бита. Арбитр шины допускает работу дма в режиме последовательного чтения без пропусков 2 или 4 полных такта. Два полных такта предпочтительнее, fifo в любом случае заполняется под крышку, порог - это когда количество данных уменьшилось. В этом случае есть ещё два запасных такта на борьбу с арбитром памяти. Можно поиграться с порогом 3/4, но это очень специфично. И да, дма не может читать данные из памяти быстрее 1/2 частоты шины, чисто физически. Но может стабильно писать на той-же частоте в периферию.
  23. st32f767 QSPI

    Ну да, именно так. Хотя возможно они как-то иначе называются, не суть - главное что удобно. Двухсторонняя пайка только на стадии проектирования выглядит заманчивой, потом начинаются проблемы. Мало того что после установки модуля теряется доступ к нижней стороне платы, так оно ещё будет жить собственной жизнью - без возможности отладки. Физику можно и нужно ставить на модуль, если она конечно вообще нужна. Просто для использования проводного подключения - ваш девайс должен иметь увесистые габариты, или иметь крепление к более массивному девайсу/железу. Иначе хвост начнёт вилять собакой. Выводить линии физики до трансформатора через краевой разъём можно, там вообще длинна ничем не ограничена. Вот только до трансформатора должно идти 4 линии - две сигнальных, и две питания - с подключением на фильтрующую керамику возле физики. Без объединения линий питания на трансе - то-есть он должен иметь раздельные обмотки. Это дело нужно отдельно искать, у них там беда с контактами. И ещё насчёт физики - имеет смысл поиграться на готовой отладке. Там алгоритм обработки протокола достаточно ощутимо жрёт процессорное время. В случае хорошей нагрузки - почти только этим и занимается. Если нет жёстких требований к внешним интерфейсам связи, то лучше использовать esp8266/esp32 - пусть отдельно потеет. Насчёт бга - эти чипы дешевле, и занимают меньшую площадь. У вас не получится сделать красиво в домашних условиях двухслойную плату для lqfp чипа - там ноги разбросаны в режиме пьяного индуса. То-есть переходные отверстия будут, и их будет много. К тому-же для двухслойки все быстрые линии должны иметь барьер из линии земли или питания. Земля при этом приобретает вид сетки - горизонт на одной стороне и вертикаль на обратной, с огромным количеством контактов пересечения. Площадь ПП при этом растёт в квадратичной последовательности. Сделать можно - но это адский труд, ну его нафиг. 4 слоя разводятся в режиме обезьяны, и всегда в рабочем состоянии. И ещё насчёт s25fl128/256s - эти чипы реально быстрее винборда, да и всего остального тоже. Дело в том что тактовая частота - это только внешняя реклама серии. Собака зарыта в таймингах доступа. Они там ощутимо меньше всего что я раньше видел. В режиме работы Memory-mapped - arm чип может напрямую обращаться к внешней памяти, без программных прослоек. По любым доступным адресам - с максимальной скоростью в последовательном чтении данных. А вот когда адрес новый - arm ядро ждёт ответа в режиме стоп. Буквально останавливается. То-есть в случае с дешевой внешней qsp флешкой - от мегагерцев процессора мало чего остаётся.
  24. st32f767 QSPI

    После sdram памяти, qspi, кварцев, и полного выхлопа на экран - остаётся очень мало ног. Причём занятые ноги почти всегда имеют один вариант. Если sdram 32 бита - то остаток вообще мал. Для TFT есть альтернатива где нет дополнительных альт функций. Всё что осталось прекрасно помещается на краевые полигоны для пайки. Так можно сэкономить на площади 4-х слойки. А если сразу брать чип и память в бга корпусе - то в принципе можно будет торговать ПП, с неплохим выхлопом. Линии на периферию не требовательны к скорости, и им достаточно двухслойной платы. А если это будет макетка - то ещё дешевле.
  25. st32f767 QSPI

    S25FL256S qspi ddr 54мгц, наверное самый быстрый чип получается. Это чтобы графику хранить и использовать без предварительного копирования в память. А чтобы просто иметь размер - достаточно микро сд карту на пузико припаять, она выдержит - проверял.