Перейти к содержанию
    

Лидеры

Популярный контент

Показан контент с высокой репутацией за 19.06.2024 во всех областях

  1. Плавали в таком, знаем ) На прошлой работе досталась в наследство линейка приборов, разработанная за 20 лет тремя поколениями разработчиков. Я, как последний оставшийся супер-стар, выдвинул предложения по комплексному рефакторингу, подкрепленные расчетом трудоемкости и описанием ближних и дальних выгод. По результатам полного игнора со стороны руководства написал заявление в день рождения начальника ) (случайно совпало) Прошу прощения за злостный оффтоп, больше не буду.
    3 балла
  2. Если "дёшево и сердито" и надёжно при этом (с защитой от бабаха), то: Поставьте возле батареи большой разъём. "Маму". 8 контактов. Подключите к его контактам 1...6 ваши 6 концов батарей. И сделайте два замыкателя "папы". У одного замыкателя соедините: 2-4; 3-5; 6-7; 1-8. У другого замыкателя соедините: 1-4-5-8; 2-3-6-7. Дальше просто воткнули один замыкатель или воткнули другой. Два одновременно воткнуть невозможно. Разъёмы можно взять любые на большой ток. Нагрузка подключается к 7:8. Без всяких дидов Шоттки, хитрых реле и пр. тряхомудрии. Кондово и надёжно.
    3 балла
  3. Разобрался с 10G линком для Titan 2. Может будет полезно. Проверено на плате Alinx AXP-390 для одного канала. https://github.com/boikovaleksandr/axp390-pangomicro-titan2-raw-10g-link
    3 балла
  4. Практически любые современные пылесосы на 1200-1800 ватт имеют регулятор скорости, который по совместительству выполняет функцию плавного старта. Движок современного пылесоса при прямом включении в сеть без регулятора тоже с большой вероятностью выносит 16а автомат. Только маломощные пылесосы до 1 квт мощи имеют включение по кнопке. Пытались применять турбины от мощных пылесосов в технологическом оборудовании и нахлебались с этим стартом по самое нехочу.
    2 балла
  5. Удобно, но часто. Аж каждые 10 минут CR2032: диапазон напряжений 2000-3300 мВ, ёмкость 200+ мА/ч. LIR2032: диапазон напряжений 3300-4200 мВ, ёмкость 35 — 45 мА/ч.
    2 балла
  6. Ничего лучше я сегодня на форумах уже не прочту :)))
    2 балла
  7. Лишние позиции в BOM, лишние затраты, когда достаточно простого резистора, который стоит в серии практически ноль рублей. Везение может изменить в определённых температурных условиях. Поэтому резистор в вышеприведённой схеме нужен. Мы с коллегами тоже так делали, но людям почему-то больше нравится видеть зелёный, который показывает, что ПЛИС сконфигурировалась. Некоторые к этому так привыкли, что другого и видеть не хотят в принципе.
    2 балла
  8. Как поставить Xilinx ISE 14.7 под windows 11. - 0 - Установить все Visual C++ Redistributable Package & Runtime Pack. - 1 - Заранее прописать системные переменные окружения: XILINXD_LICENSE_FILE C:\Xilinx\xilinx_ise.lic Xilinx C:\Xilinx\14.7\ISE_DS\ISE XIL_PAR_ENABLE_LEGALIZER 1 XILINX_VC_CHECK_NOOP 1 - 2 - Скопировать лицензию xilinx_ise.lic в папку C:\Xilinx\ - 3 - Установщик использовать 64-битный отсюда: <extracted_directory>\bin\nt64\xsetup.exe, запуск от администратора. - 4 - Примерно на 84% установщик зависнет. Над полосой прогресса будет написано что то про Web Talk. Надо запустить Диспетчер Задач, найти дерево процессов Установщика, прибить процесс этого WebTalk. Он будет выглядеть как то так: webtalk.exe или Xwebtalk.exe. После уничтожения этого процесса Установщик поедет дальше. Примечание: снятие галки с пункта "Web Talk" в диалоге начала установки не помогает. - 5 - В появившейся папке C:\Xilinx\14.7\ найти все файлы nt64\libPortability.dll и заменить их на аналогичные файлы xilinx-ise-win10-hang-hotfix\nt64\libPortability.dll - 6 - Также в папке C:\Xilinx\14.7\ найти все файлы nt64\sdk\libPortability.dll и заменить их на аналогичные файлы xilinx-ise-win10-hang-hotfix\nt64\libPortability.dll - 7 - Также в папке C:\Xilinx\14.7\ найти все файлы nt\libPortability.dll и заменить их на аналогичные файлы xilinx-ise-win10-hang-hotfix\nt\libPortability.dll - 8 - Если стоит отдельно LabTools, то последнии 3 операции проделать для него так же. - 9 - Для запуска Impact использовать бат-файлы Impact_Start_Bat.7z. Impact_Start_Bat.7z xilinx-ise-win10-hang-hotfix.zip
    2 балла
  9. Эх, только площадь заняли змейками)) Я бы память под процессором разместил) С кварцами тоже не стоит мудрить - все эти гуард ринги никакой реальной полезности не несут.
    2 балла
  10. лучше в редакторе слоев
    2 балла
  11. Это изначально ложное утверждения - для равных свобода не может заканчиваться там где она начинается. Отсюда более корректное утверждение "свобода человека заканчивается там, где начинается свобода власти".
    2 балла
  12. О, манагер пожаловал. Конечно оно так... ровно до момента когда требуется создать изделие с жесткими ограничениями хотя бы по одному критерию: стоимость, энергопотребление, производительность, отсутствие или "китайскость" документации на ключевой компонент например cpu... Тогда оказывается что толпа обезьянок совершенно бесполезна и все-таки нужен гуру.
    2 балла
  13. I. Стандартный подход отделить мух от котлет через имплементарный заголовок с реализацией в файле myTemplate.h template <typename T> void f(T value); #include "myTemplateImpl.h" // Включаем реализацию здесь Файл myTemplateImpl.h template <typename T> void f(T value) { // Реализация функции } В этом случае мы отделяем объявление и определение шаблонной функции в разные файлы, но включаем файл с реализацией myTemplateImpl в конце файла с объявлением myTemplate.h. II. альтернативный подход Сделать инстанцировку в исходном файле. Файл myTemplate.h template <typename T> void f(T value); Файл myTemplate.cpp #include "myTemplate.h" template <typename T> void f(T value) { // Реализация функции } // Явная инстанцировка для нужных типов template void f<int>(int); template void f<double>(double); Использование #include "myTemplate.h" int main() { float a = 1.0f; double b = 3.14; f<float>(a); //для варианта II ошибка, т.к. нЭт его (нет инстанцировки для float в cpp) f<double>(b); //будет работать для обоих вариантов return 0; }
    2 балла
  14. Да не надо там оптронов, потенциал земли один и тот же, источник питания тоже один, обычная защита по цепи входа и все, землю просто разводить нужно правильно и хороший стабилизатор питания...
    2 балла
  15. вроде как в C++ нет прямого способа передать список инициализации {1, 2} в функцию, без std::initializer_list (может ошыбаюсь). Можно использовать перегрузку шаблонной функции или макрос создающий массив template<int N> void f1(int (&arr)[N]) { for (int i = 0; i < N; ++i) { printf("%d ", arr[i]); } std::cout << std::endl; } // Вспомогательная функция template<int... Args> void f2(Args... args) { int arr[] = { args... }; func(arr); } int main() { f2(1, 2); // вызов f2 развернется в вызов f1 с массивом из двух элементов f2(3, 4, 5); // вызов f2 развернется в вызов f1 с массивом из трех элементов //можно без прокладки f2, но кто-то должен создать массив, например макрос #define F3(...) { int temp[] = { __VA_ARGS__ }; f1(temp); } F3(1, 2); F3(3, 4, 5); return 0; }
    2 балла
  16. Подтяните BOOT0 вверх, включите процессор и программатором сделайте Erase All
    2 балла
  17. 1 балл
  18. Эти ссылки пишут неправильно. char - это отдельный тип, который может быть как знаковым, так и беззнаковым в зависимости от ключей командной строки при вызове компилятора. Поэтому в правильно написанной программе он должен использоваться исключительно для хранения символов. Для чисел должен использоваться signed char или unsigned char (а лучше - их псевдонимы из stdint.h - int8_t и uint8_t). Поэтому ваш пример написан криворуким программистом и массив input_bytes должен быть объявлен как uint8_t input_bytes[ENCODED_FRAME_SIZE] .
    1 балл
  19. Вы отстали от жизни ГОСТ 29322-2014 Uп = Eя + I*Rя В момент пуска якорь неподвижен, поэтому противоэдэс (Ея) не вырабатывается. Ток якоря равен напряжению питания, деленному на сопротивление якоря. Последнее очень мало, поэтому пусковой ток велик.
    1 балл
  20. 1 балл
  21. Повторения в обоих банках памяти? Скинул бы их сюда поглядеть... Повторялось местами и на китайском клоне V11 на проце LPC4337... В банке ROM_1B000000_80000... Там много мусора накидано... Вот это плохо... Возможно китайцы что-то натворили в своем альтернативном загрузчике... У меня на оригинальном железе V10.1 поднятом программно до V12, на самой последней FW - всё удачно и с чтением, и с тестом эксплоита: JLinkTool by UniSoft, v1.01 (Compiled Mar 5 2023 05:52:51) Connecting to J-Link via USB... INFO: Firmware: J-Link V12 compiled Jul 3 2024 16:56:02 INFO: Hardware version: v12.00 INFO: S/N: 20127510 INFO: Feature(s): FlashBP, GDB, JFlash, FlashDL, RDI INFO: Built-in license(s): FlashBP,GDB,FlashDL,JFlash,RDI INFO: Signature Verification OK! [5BBC7AE2] INFO: SN CheckSum Verification OK! [935B2F01] INFO: MaxMemBlock: 23856 Bytes Launch Test Exploit... INFO: Select target interface FINE. INFO: Select TIF... OK! (0) INFO: Exploit Found at address 0x100842E8... OK INFO: Launch Exploit... OK (00000000) INFO: Launch Test Exploit... OK INFO: Now LEDs should blink (around 30 seconds)... RED-GREEN-RED-GREEN... INFO: To exit from test restart your J-Link...
    1 балл
  22. LPC4370 + 2 x ADG732 = 64 канала x 12бит x 1.25МГц LPC4370 + 3 x ADG732 = 96 каналов x 12бит x 800кГц у тексаса же есть мелкие армы MSPM0C1103, с более быстрым АЦП внутри, только стоят на порядок дешевле. в 2х2мм копрусе и их пожалуй ещё можно по паре штук daisy-chainить, последовательно в один "сдвиговый регистр".
    1 балл
  23. @k.karel есть к меня точно такой-же, но прошивка v11. Можете поделиться полным дампом прошивки v12?
    1 балл
  24. Не кормите тролля Стогова. Так - понятно?
    1 балл
  25. Георадар как был в качестве примера. В первой статье сказано, что использовалась внешняя "радарная система", а как она построена можно только догадываться, скорее по "типовой" схеме приёма радаров (как у упомянутых гео) и потом ЦОС или как во второй статье. Во второй ссылка на [31] где дано описание "приёмника" Добавлю - поищите как на роутере делалают приемник ADS-B, там помнится "сырые" данные получают, только роутер с линуксом нужен.
    1 балл
  26. Если трансивер WiFi поддерживает протокол PTP, то он умеет измерять round-trip задержку между отправленным и полученным пакетами PTP.
    1 балл
  27. TOG, если длина 19 см, то возможно это не четверть волны, а 5/8L c компенсирующей реактивность индуктивностью. Можете такую попробовать сделать из рулеточной ленты.
    1 балл
  28. У альтиума при нажатии на ЛКМ над областью где есть и компонент и пад первым будет выбран пад, вторым кликом компонент, но если компонент состоит из одного только пада то выбрать компонент таким образом почему-то не получается. Помогает отключение Pads в Selection Filter.
    1 балл
  29. https://www.st.com/resource/en/application_note/an4899-stm32-microcontroller-gpio-hardware-settings-and-lowpower-consumption-stmicroelectronics.pdf Вот этот документ. Но, к сожалению, написан этот документ так, что в нем самом вагон противоречий Там, например, заявляется При этом там же дальше пишут в табличках, что для TT пинов токи инжекций допустимы +5мА в том числе. 1. Внутри МК есть отдельная шина VDD_FT. К ней подключены верхние защитные диоды всех FT-пинов. VDD_FT подключен к ограничителю (о наличии которого приходится только догадываться по наличию верхних рабочих пределов VIN на этих пинах - иначе эти параметры не ограничивались бы на 5.5В). 2. У всех пинов есть Absolute Maximum Ratings по напряжению и току. Никто не должен быть превышен. Ток инжекции начинает проявляться, когда входное напряжение уходит за пределы допустимой максимальной рабочей границы (для FT это 5.5В). Однако ST хитрые - они в описании пишут, что положительный ток FT-пинов не существует (потенциально не возможен), подразумевая, что туда подаются станадртные уровни 3.3В с их максимальным допуском (по максимально допустимым значениям это 4В). Это очень хитрый ход. Разумеется, имея в даташите явное ограничение на максимальное рабочее входное напряжение FT-пина в 5.5В, понятно, что подавая выше этого уровня, "что-то будет просходить". Это что-то - потребление тока. Кем - внутренним ограничителем с VDD_FT. Однако, абсолютный максимум входного напряжения на FT-пинах VDD + 4В, т.е. при 3.3В-питании это 7.3В. До этого уровня МК не будет хана. Но какой максимальный ток инжекций при 7.3 - 5.5 = 1.8В превышения над максимальный рабочим уровнем - даташит не говорит. Для сравнения, вот та же табличка для STM32F4 Как видно, они уже пишут не 0мА, а NA (Not Applicable). GPIO во всех STM-ках в этом плане вполне одинаковые (хотя, кто их знает).
    1 балл
  30. Тогда ответьте на простой вопрос: Если это такой простой и эффективный способ повышения эффективности, то почему нигде в стандартах он не используется? Я не очень понимаю - зачем вы в своей защите упираете на вычисление SHA256? Какое он имеет отношение к защите? Вроде защита должна обеспечиваться не алгоритмом вычисления хеша, а алгоритмом шифрования (AES или что там у вас). И вообще - как именно эти воображаемые хацкеры смогут подобрать ваш пароль, считая SHA256 хоть миллиард раз, если они даже не знают ни длины вашего пароля ни диапазона составляющих его символов? Что они будут перебирать? Бесконечное количество паролей, состоящих из неопределённого числа символов? Или вы сами сообщили им длину своего пароля, из каких символов он состоит и поклялись на Коране, что всегда будете следовать этому? И почему эти хацкеры знают длину вашего пароля и составляющие его символы, но почему-то не знают самого пароля? Зачем всё это подбирание вообще нужно? Что это за пароль, который подбирают воображаемые хацкеры? Какой-то бред вобщем в теме.... Это затормозит если в лоб. Но как уже выше писал: думаю - можно алгоритм миллионкратного итеративного вычисления SHA256 от самого себя переделать в алгоритм с одним проходом. Утверждать конечно не буду, но думаю - возможно. Так как - нигде в TLS например не видел такого странного способа повышения надёжности. Это косвенно указывает на то, что надёжность это не повышает и переделка алгоритма для однократного вычисления - возможна. PS: Изобретателям всяких простых и супер-эффективных алгоритмов, всегда в первую очередь следует задумываться: "Если я смог придумать такой крутой и простой способ, то почему другие не догадались до такого простого решения? Может потому, что этот способ не эффективен?" Судя по тому количеству тумана, которое ТС уже развёл в нескольких темах, у меня складывается ощущение, что идёт изобретение некоего универсального и супер-мега-секретного коня в вакууме. А то, как ТС пытается защитить этого коня, наводит на ассоциации на "Неуловимого Джо", который неуловим, просто потому, что никому нафик не нужен.
    1 балл
  31. Зачем, например, мне тратить своё время на то, что пересказывать уже написанное грамотными люди? Если у кого-то после прочтения остались непонятки, то на форуме как раз и разъяснят что к чему. Или вы считаете себя настолько важной персоной, что все сейчас всё бросят и кинутся разжёвывать вам прописные истины?
    1 балл
  32. Модератор: прошу всех желающих отметиться в этой теме еще раз перечитать правила раздела "Предлагаю работу" и потом не обижаться.
    1 балл
  33. Как отключить проверку на "хорошие" и "плохие" файлы - не знаю, но можно зайти сбоку: т.к. для синтеза вы используете Synplify, то рекомендую сделать проект в Synplify, а выходной "хороший" Verilog-файл уже подключить в PDS и в синтезе выставить ADS. Таким образом, всё "нехорошее" вы прогоняете через Synplify, а потом в ADS объединяете результат работы Synplify и то, что должно проходить только ADS. Я так делал в PDS 2023-1, в котором ещё не было поддержи у ADS VHDL+Verigol Synthesis, а мне необходимо было использовать PDS IP-Core (Verilog) + мои исходные файлы на VHDL.
    1 балл
  34. У вас это филькина грамота, а не нет классы. SDRAM-- это просто название значка директивы как объекта и ни на что не влияет. Я их вообще срываю, чтобы не вводили в заблуждение Внизу есть кнопочка добавить в директиву нет-класс. Добавить в одну директиву можно много. Именно они определяют класс и текст я выношу на схему для проверки
    1 балл
  35. Сами светодиоды будут греться как чайники, всё-таки 1 Вт. Если так хочется сэкономить, то лучше мосфет, дроссель, выходной конденсатор, шунт для измерения тока и компаратор, тогда можно в релейном режиме запустить или банально через шунт-АЦП завести управление ключом на микроконтроллер.
    1 балл
  36. Если одновременно буду работать не больше двух диодов, то скорее всего достаточно двух нормальных регулируемых источника тока и переключатель на МОП транзисторах.
    1 балл
  37. А зачем вообще компоненты покупать на али? Там уже лет 10 как продают одно поддельное фуфло. Как-то давно сидел и часами сортировал приехавший кал с али, отбирал какие микрухи рабочие, а какие брак. Сейчас забросил это дело, покупаю оригинал у дистрибьюторов и горя не знаю. Поставил классические 1% и всё гуд. Программа по расчёту делителя - штука полезная, вместо часа копошения с калькулятором/экселем - подбирает номиналы резисторов за 1 минуту.
    1 балл
  38. BusFault в Cortex-M - это не прерывание, а исключение. Соответственно запрет прерываний влиять на него никак не может. И при запрете какого-либо fault-а (если его возможно запретить), согласно идеологии Cortex-M, должна выполниться эскалация до HardFault. Так что - fault-а не избежать, если уж подсистема памяти решила сгенерить ошибку. Да и причём тут прерывания или fault-ы? ТС ведь нужны не прерывания, а возможность прочитать память.
    1 балл
  39. Читаю: "Функциональная схема сервопривода с адаптивным управлением". Красн., оранж., корич. SB1, SB2. R1 4.7к, R2 4.7к, +, -, +5 В, к выв. 14 DD1. Схема нарисована голубыми ровными линиями на черном фоне. Текст написан твердым крупным почерком, гостовский шрифт. Про диплом - поздно спохватились, защиты дипломов уже почти завершены. Идите в армию - там осенний прИзыв еще не начался, и там не спрашивают, как что работает. PS. "pulce" 🙂 в переводе с итальянского - блоха. PS2. Если скажете, что MCU модели PIC16F628A (а это реально он по распиновке), то за диплом сразу "отл" поставят. PS3. Ващета, дипломная работа (выпускная квалификационная работа) предполагает, что эту схэму разработал сам защищающийся. Не срисовал, не купил, а разработал сам, и сам знает, как она работает. Вроткампот, эти "дупломники" ведь через 3-5 лет станут ынжынэрами, будут поднимать росс.пром, импортазамещать...
    1 балл
  40. Vivado 2021.1 PC: Intel Xeon W 2145 , DDR4 - 32GB, Platform- LENOVO ThinStation P520
    1 балл
  41. Так сделайте IARовский проект с этим бинарником и отлаживайте...
    1 балл
  42. Замените R1 на 470 Ом и выносите кнопку хоть на два метра.
    1 балл
  43. Вы тот самый очередной "умник", мнение которого обязательно должно быть учтено, а остальных отброшено как неквалифицированное. Таких тут уже 5 страниц, да. Оптрон в авто - дожили. P.S. К вопросу о необходимости TVS И с обратной стороны почти так же - и если бы оно было сделано от балды, то не выжило бы при всех видах испытаний.
    1 балл
  44. Системы подобные СКРАМУ нарезают простейшие задачи в соответствии с ожидаемыми навыками специалиста и ставят вполне конкретные сроки их выполнения. Если сотрудник видит что срок не выполним - он его увеличивает с указанием реальных причин, которые всегда можно проанализировать в группе подобных специалистов (реальны они или нет). Зачем человеку самоорганизовываться - если ему уже нарезан план работ?
    1 балл
  45. ИК-камера даже днем позволяет обнаружить(выделить) нагретый предмет на фоне остальной местности в отличие от обычной камеры для которой дрон ничем не выделяется.
    1 балл
  46. Не понятно где вы такое нашли, но вот тело вызываемой вами функции HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) { uint32_t *tmp; /* Check that a Tx process is not already ongoing */ if(huart->gState == HAL_UART_STATE_READY) { if((pData == NULL ) || (Size == 0U)) { return HAL_ERROR; } /* Process Locked */ __HAL_LOCK(huart); huart->pTxBuffPtr = pData; huart->TxXferSize = Size; huart->TxXferCount = Size; huart->ErrorCode = HAL_UART_ERROR_NONE; huart->gState = HAL_UART_STATE_BUSY_TX; /* Set the UART DMA transfer complete callback */ huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; /* Set the UART DMA Half transfer complete callback */ huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; /* Set the DMA error callback */ huart->hdmatx->XferErrorCallback = UART_DMAError; /* Set the DMA abort callback */ huart->hdmatx->XferAbortCallback = NULL; /* Enable the UART transmit DMA Stream */ tmp = (uint32_t*)&pData; HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t*)tmp, (uint32_t)&huart->Instance->DR, Size); /* Clear the TC flag in the SR register by writing 0 to it */ __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); /* Process Unlocked */ __HAL_UNLOCK(huart); /* Enable the DMA transfer for transmit request by setting the DMAT bit in the UART CR3 register */ SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); return HAL_OK; } else { return HAL_BUSY; } } Непосредственно перед выходом из функции SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
    1 балл
  47. я с такого начинал. только с п217
    1 балл
  48. >>> Т.е. физически подтянуть ножку ресета МК к земле и начать прошивать? <<< Нет, это опция программы программатора STM32CubeProgrammer, аналогичная Connect Under Reset для ST-LINK Utility . Там еще есть выбор Core Reset, он, кажется, не требует соединения с ножкой NRST процессора. Пробуйте ...
    1 балл
  49. vs Так это требование или пожелание? Как вам правильно заметили коллеги, снижайте требования или ещё лучше разбейте на две вакансии. Так шансы найти специалиста будут намного выше. Но по многолетнему опыту общения, схемотехники/топологи/конструкторы крайне редко горят желанием что-то профессионально программировать для МК, т.к. им и так забот хватает.
    1 балл
×
×
  • Создать...