Лидеры
Популярный контент
Показан контент с высокой репутацией за 19.02.2024 во всех областях
-
Поздравляю всех форумчан с праздником 23 февраля - Днем Советской Армии (кто был, я успел 🙂) и Днем Защитника отечества!5 баллов
-
Раз тема с оригинальным загрузчиком v12 снова всплыла, тоже присоединюсь к просьбе поделиться.4 балла
-
3 балла
-
Антиалайзинговый фильтр у Вас немного странный... Нормальный должен давить все, что выше 125кГц, и не начинать давить, как у Вас, а заканчивать! Т.е. эти самые 40дБ должны быть если и не на 125кГц, то хотя бы на 150кГц... Ну это если по честному нужно не менее 40дБ подавления всего не нужного в Вашей полосе 0...100кГц. Дальше, неоднородность АЧХ это конечно хорошо, но у фильтра есть еще и неоднородность групповой задержки... Особенно сильной в полосе 50...100кГц. Я не знаю Вашей задачи, может быть это и не важно, а может и нет... Еще чисто для уточнения: АЦП 4-х канальный, Вы используете только 1 канал? Если нет, то частоту дискретизации 250кГц надо делить на количество каналов...3 балла
-
Ну я бы ещё посмотрел, кто тут идиот. Есть электричество - нет электричества, а на выходе 87%! Для КНДР и Туркмении сделают 99%. Я в них верю.2 балла
-
Во времена FIDO, тема вычисления ёмкости элементов питания по напряжению вроде бы была запрещена, как заземление на отопление, и т.п.2 балла
-
Чем больше "думающий" компилятор, тем меньше шансов его обмануть! Потом врубили оптимизацию какую нибудь, или апгрейдили среду, и начинаются вопросы - работало же, чего ж теперь эти хрычи из майкрочипа напортачили? И будете искать косяк в компиляторе, вместо того, чтоб искать двусмысленности в коде. extern volatile __saddr char TRASH - и там и всё сиё грузить, чтоб без вариантов и на верняка. Ну как умные люди тут уже посоветовали.2 балла
-
2 балла
-
это Вы не в ту степь ушли. А теперь напишите enum class En {FROST } и попробуйте тоже самое - int temp = FROST; 🙂 я сказал "int temp = FROST; нет ни какой разницы FROST - это дефайн или енум.". При чем тут различия между enum и enum class? Речь шла о том, что имя "FROST" писать как eFROST или как FROST? Разницы нет.2 балла
-
Не факт. Я думаю его вариант тоже имеет право на жизнь. Но синхросигнал не обязателен. С того что если мы ищем одиночный джиттер то логично джиттер N-ного бита разделить на N в надежде найти джиттер единичного. И тут мы оп и ошиблись. Формально вроде как мы можем учесть корень. Но корень справедлив только при если джиттер имеет гаусово распределение. А чтобы понять распределение шума мы должны сделать глазковую диаграмму и круг замкнулся :))) Я попрошу вас больше так не вести беседу.... Если вы прочитаете правила то узнаете что это префессиональный форум. И как следствие на многие вещи будет получен максимально простой ответ без подключения теории начиная с первого класса. Если что-то не ясно лучше уточнять и желательно вежливо. Дальнейшую беседу в таком стиле я вести не буду. От 0 времени захваченной и анализируемой осциллограммы. Порог никто не сдвигает. Он задан микросхемой и весьма стабилен. А вот входные сигналы могут плавать как им хочется и шум меняет момент времени переключения. Нет. Измерения на переднем крае науки и техники не могут быть сделаны идеальным прибором ибо такого нету в данный момент техники. По этому если вы заглянете в метрологию например то многие величины которые измеряются а не декларируются имеют неопределённость которая есть всегда. И которая определяется шумом который тоже есть всегда. Повторно прошу сменить тон. Если вы чего то не знаете то спрашивайте и а не стебитесь. Это выглядит странно.2 балла
-
Intel Programmable Solutions Group is now Altera®, an Intel Company Today, Intel announced the official launch of Altera, its new standalone FPGA company <bla-bla-bla> Ну и попутно: - немного нового софта анонсировали: P4 Suite for FPGA и Simics Simulator; - опубликовали информацию по новому семейству Agilex 5 (а Agilex 3 все еще в статусе Coming Soon).2 балла
-
2 балла
-
Есть профессии, которые можно освоить за три дня... Увы - электронику придётся изучать всю жизнь... Только освоишь одну тему, сделаешь шаг в сторону, а там своих тонкостей бездонный колодец - за год не вычерпать... Нужно это осознать, принять и с этим жить... Иначе депрессии не миновать... Как пояснял профессор по физике А.С.Чирцов - за год скапливается восемь томов ССЫЛОК на новые статьи по физике (заметьте - речь о ссылках на статьи, а не сами статьи). С электроникой дела, видимо, обстоят ещё тяжелее... Нейросети, очевидно, появляются вовремя... - только им по силам проглотить это море информации... Бог в помощь...2 балла
-
В процессе перевода. Постараюсь закончить на этой неделе. Приехало много документации по Kosmo2 - занят пока ею. Не помню, выкладывал ли тут эти файлы. 10G Ethernet MAC Application Guide_v1.1_innek.pdf 10GBase-R Application Guide_v1.0_innek.pdf2 балла
-
Штатно на сколько я знаю нет. Поэтому могу предложить разбить отображаемый вектор на две части (целую и дробную) и отображать их отдельно одну над другой. Дополнение: был неправ, есть отдельная команда. Т.е. создаёте свой радикс и после этого назначаете его нужному вектору на диаграмме.2 балла
-
Там есть "Предисловие к первому изданию", почитайте. Это искусство составления техзадания (ТЗ), от формализации к детализации — мне нужно получить это, для этого нужно сделать то и то, которые можно сделать так и так, и т.д. — сводится к эрудиции, т.е. владению результатами общего образования, его в т.ч. даёт "Искусство схемотехники".2 балла
-
Остальному человечеству это когда-то тоже не удалось, поэтому оно применяет единственный логичный способ — измеритель энергии, принятые/отданные джоули, т.е. обыкновенный электросчётчик. В пределе это реверсивный счётчик, работающий от пары компараторов с выхода интегратора датчика тока, а чтобы исключить погрешность на интервалах сброса этого интегратора, логично поставить два таких, работающих с чередованием.2 балла
-
Ещё раз: ЗАЧЕМ ВСЕ??? Вы, когда пишете какую-то функцию куба, тоже абсолютно ВСЕ функции и структуры куба и кала выучиваете? Нет? А почему? PS: Никто не говорил, что нужно все регистры выучивать наизусть. Тогда зачем эти передёргивания?? "Все регистры", "10 лет" и т.п. PPS: Для вас примитивный F407 кажется верхом сложности, а кто-то и многократно более сложные контроллеры с многократно бОльшим числом регистров осваивает. В том числе есть такие люди и здесь. Без всяких кубов. Чисто по мануалу. И не за десятилетия или сотни лет, а за месяц-два. Хотя для вас это видимо фантастика. Если вам для этого нужны костыли,то не меряйте всех по себе. Кто-то без всяких костылей такие процессоры осваивает. Не тратя космическое количество времени на это. Видимо у всех разные способности...2 балла
-
2 балла
-
2 балла
-
У нас LQH32 наводились друг на друга на частотах до 2МГц. Пришлось рахворачивать каскады взаимно перпендикулярно. Даже аапнот у мюраты был на минимальное расстояние между LQH32. Для больших значений лучше LQH66 брать. Для маленьких - витые в резине или чип.2 балла
-
0 и окрестности - поражённые частоты, несущие пролазят, шумы возрастают, сдвиги постоянного уровня. Если полоса сигнала соизмерима с этой областью, то ничего хорошего не получится, поэтому сдвигают. Но мощный сигнал на зеркальном канале из-за имбаланса будет сильно гадить в полосу сигнала, соответственно либо плохие характеристики по подавлениию зеркального канала, либо нужно преодолеть сложности с точной компенсацией IQ-имбаланса. С широкополосными сигналами полегче с переносом в ноль, например, в модуляциях со многими поднесущими не используют поднесущие в районе нуля, а на зрекальных каналах ваш же сигнал, проще компенсация IQ-имбаланса.2 балла
-
Да, работает. Нужно выполнить установку драйверов их скриптом, проверить наличие пакета fxload (sudo apt-get install fxload) и подрихтовать правила UDEV, чтобы прошивка кабеля при подключении грузилась правильно. А потом перед запуском Impact сделать export XIL_IMPACT_USE_LIBUSB=1 и всё должно получиться. PS: https://askubuntu.com/questions/838260/install-xilinx-platform-usb-in-ubuntu-16-04-x64 читали? PPS: Еще немного информации в тему: http://blog.voytik.ru/2008/09/xilinx-platform-cable-usb-gnulinux.html2 балла
-
https://habr.com/ru/articles/166693/ Вот вполне реальный пример скорость меряют.2 балла
-
1 балл
-
Как я устал, мягко говоря. Способы для windows 10 не работали. Без проблем встал только Questasim. Далее я напишу инструкции по Xilinx & Synplify. Итак, Xilinx! - 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 операции проделать для него так же. xilinx-ise-win10-hang-hotfix.zip1 балл
-
Предложите им вольтов столб. Одобрен академиком Василием Петровым, основоположником отечественной электротехники.1 балл
-
что-то я действительно не понял. но я понял то, что Вы это сами не писали 😉 Написал. Компилятор выдал ошибку Error[Pe101]: "EN0" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 Error[Pe101]: "EN1" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 написал. И что? Что с этим дальше делать? Вы предлагаете int инициализировать типом A. А зачем? Теперь то, о чем я говорил. Допустим есть некий порог температуры. Автор программы библиотеки задает эту константу так: #define FROST 10 либо так enum {FORST = 10}; Сделал, отдал в продакшин. Теперь прикладной программист пишет свой код с использованием вашей библиотеки int temperature = FORST; //вот тут какая разница как в FORST попала 10? Тут прогер должен понимать, что создалась переменная типа int, и она инициализировалась значением 10. Это Эквивалент записи int temperature = 10; ps даже если очень жжет использовать enum class, очень хочется, но не хотите при каждом использовании кастовать, то закастуйте дефайном enum class A { EN0 = 10, EN1 = 20 }; #define FORST (static_cast<int>(A::EN0)) //так const int FORST2 = static_cast<int>(A::EN1); //ну или даже так int temp = FORST2 - FORST; //вот тут какая разница, как 10 и 20 попали/заменились на FORST и FORST2? эквивалент int temp = 10; Тут нужно понимать что в temp ляжет 10, которая вычислилась на этапе компиляции pps #define asd(m) (do(0){return 5*m;}) #define EN1 true #define TEMP2 asd(5) const int pi1 = 3; enum { ANGLE1 = pi1*10 + (EN1 ? TEMP2: 13)}; enum class A{ASD = ANGLE1, ASD2 = ANGLE1 + 6}; enum {QWE0 = static_cast<int>(A::ASD2), QWE1, QWE2}; #define POIU (QWE2 - 31) int angleOfHor = POIU; //в конечном счете это тоже самое, что и int angleOfHor = 32; Разворачивай хоть что, хоть в чем.1 балл
-
1. Согласованный фильтр. Импульсная характеристика должна соответствовать ИХ фильтра на передаче. Есть вероятность, что он уже присутствует до вычисления фазы. Можно проверить - на передачу выбрать режим FSK, а на приеме сначала FSK, потом GFSK. Если результаты разные, фильтр уже есть. 2. Ресемплер (интерполятор) - на каждый символ должно приходиться целое число отсчетов, например 2. 3. Выбрать метод оценивания ошибки синхронизации. Выбор зависит от числа отсчетов на символ и формы символа (ИХ фильтра). Если предполагается передача настроечной последовательности в каждом пакете, то выбор богаче, но я с такими вариантами дела не имел. Из NDA самые популярные алгоритмы - Early-Late и Гарднер. Если использовать решения о принятых символах (обратную связь) - Zero-Crossing. 4. В синхронизаторе присутствует интерполятор (например, на основе pfb), который должен выдавать значение в зависимости от полученной оценки ошибки синхронизации (в пределах интервала времени между отсчетами). 5. Если ИХ фильтра и число отсчетов на символ на входе синхронизатора всегда одни и те же (для любой скорости), п. 1, 2 и 4 можно объединить. 6. Оценка ошибки фильтруется простейшим БИХ - фильтром. Коэффициенты определяют скорость подстройки синхронизатора. 7. Если накопленная ошибка превышает интервал времени между отсчетами, следующий отсчет пропускается. 8. В схеме с pfb можно реализовать оценку ошибки синхронизации на основе максимального правдоподобия. Для этого делается два банка фильтров - с ИХ==ИХ согласованного фильтра (mf) и с ИХ== производной ИХ согласованного фильтра (dmf). Оценка ошибки рассчитывается как произведение выходов mf и dmf. 9. В итоге, при исходных 8,3 отсчета на символ, синхронизатор будет выдавать 10 выходных отсчетов на 83 входных. То есть, на каждый входной отсчет, будет получаться от 0 до N выходных. N зависит от реализации. Выше некоторых звезд ) Наверное, стоит говорить о потенциале реализации демодулятора, который обеспечит вероятность ошибки на бит не хуже, чем встроенный. В большинстве случаев мягкое решение - это просто квантованное значение амплитуды на выходе демодулятора. Дальше можно уже всякие правдоподобия считать и их отношения. Просто для выхода демодулятора в виде PAM с несколькими уровнями, нужно для каждого бита значения как-то нормировать.1 балл
-
плюсую. int temp = FROST; нет ни какой разницы FROST - это дефайн или енум. нет ни какой разницы, с точки зрения конечного пользователя этой функции - она макрос, инлайн или обычная функция. Автор my_macro_func() принимает решение, как максимально эффективно её определить и решает сделать её макросом или функцией. Пользователя это не должно волновать. (более того, она вообще может быть и на асме определена, а может быть и из библиотеки взята, исходного кода которой у вас нет.) Тем более автор этой функции, может в любой момент переоформить её из макроса, в обычную функцию. Тогда Вам придется my_macro_func() переименовывать в my_func() - а это смена API. У пользователей посыпется сборка. мне казалось, что общепринятые правила, это имена функций и методов - с маленькойБуквы. см printf(), strlen(), open(), .... мне мешают нотации/префиксы/постфиксный. Я делаю все имена переменных/функцый - с маленькой, все имена типов/классов с большой. Наверно из Qt и FreeRTOS подчерпнул. Разделение слов - кэмл, без '_'.1 балл
-
А зачем их отличать? Что то - константа, что другое. Вам - нет. Человеку, который будет этот код открывать - да. А не надо сразу понимать насколько она тривиальная и из чего она состоит. Важно - что она делает, и как ей пользоваться. Если инженер занимается поддержкой кода, то ему важно - как легко её найти, и да - ему будет важно знать, что внутри. Так он пойдёт в реализацию. Если ему надо использовать - то он посмотрит в API. А тут для человека в теме - rx_lane_injector - что-то инжектирует в RX Lane. Смотрит какой тип - понятно, что инжектирует пакеты. Английским по белому же написано. Уже понятно для чего это нужно. Ну и раз оно что-то делает, то это явно класс - есть же поведение. Но если надо узнать API, или поддерживать - то в определение - а там видно, что это класс, и видно, что это UVM компонент. Те, кто занимается верификацией из этого уже много чего вынесут - это основная библиотека. Это как вам std::string - уже всё понятно, и что нужно, и какие методы есть, и как этим пользоваться.1 балл
-
класс и структура - это одно и то же. enum - ALL_CAPS. по хорошему, нет никакой разницы, что перед глазами - класс, юнион, енум, если им даны правильные названия, из которых понятно за что они отвечают и что они делают. А если нужны подробности - то всё-равно пойдёшь в объявление, а там, например: ethernet_channel_packet_injector rx_lane_injector; вроде уже понятнее. Если нужно ещё конкретику, тогда идёшь в определение, а там и вовсе нет сомнений class ethernet_packet_injector: public uvm::uvm_component { ... }1 балл
-
Вероятно токовый выход обеспечивает более плоскую сквозную AЧХ. Выход по напряжению от "обычного у-ля" способствовал бы большей амплитуде механических колебаний на красном конце пружинки в области НЧ , поэтому могли возникать механические ограничения амплитуды НЧ и пришлось бы снижать общую амплитуду напряжения красного конца. И делать коррекцию на ВЧ путем подъёма АЧХ на приемном конце. Причина - из-за преимущественно индуктивного характера преобразователя , что его сильно отличает от эл.динамика. Еще одна из возможных причин - высокий импеданс на передающей стороне обеспечивает лучшие (худшие) условия хорошего отражения повторной волны , чтобы усилить эффект от наличия (отсутствия) второго- третьего повторного эха. Возможно какой то компромисс при этом обеспечивает демпфирующий резистор 4,7кОм. Это все догадки, не ругайтесь. С механическими ревербераторами делов не имел, в натуре.1 балл
-
Для меня в данном "мозговом штурме" было серьезным скачком в сторону от мэйнстрима два момента, о которых я сам не подумал. Они бы еще долго не попали в мои "таблицы Excel" если бы не эта тема: - SAR АЦП - микроконтроллер с встроенным АЦП в качестве "умного экономичного АЦП". Ну и озвученные тут несколько флагманов, продемонстрировавших, что уже достигнуто и реально доступно на рынке, а не является просто недостижимой мечтой. Так что не надо крошить батон, тема интересная и мне лично полезная 🙂 Upd: Ну и иногда нужно просто быстро оценить масштабы проблемы, чтобы понять, какими энергиями и деньгами оперировать. Просто для предварительного прогноза в Project Definition, а не для приципиальной схемы и программы. Прямо сейчас уже достаточно понять, что добавление такой-то функции увеличивает энергопотребление изделия на +30%...+100 %, а стоимость материалов на +5$...+ 50 $, вот и весь "внешний выхлоп". Далее, после определения направления внешними силами (менеджеры), уже буду копать в сторону "экономим на батерейке", или "делаем дешевле но габаритнее", или "фигня, всё не устраивает, делаем ничего".1 балл
-
Я не про первый запуск, а про технологический отход мертвых плат, которые отремонтировать невозможно. Вот сделали вы 10^4 плат, я не верю, что все будут работать. Что-то уйдет в неремонтопригодный утиль.1 балл
-
Вот ещё проект с RGMII для PG2L100H. Тут используют ip core от Titan PG2L100H Gigabit Ethernet Application Guide_innek.pdf pgr_pg2l100h_ethernet_eval_v2.0.rar1 балл
-
Я открываю под VPN'ом.1 балл
-
1 балл
-
Вы настолько хаотично размышляете, что хоть стой хоть падай. Легко и просто смешали две области и сделали какие-то выводы. Гладиолус + машина, получился космонавт.1 балл
-
Т.е. Куб освобождает от изучения нюансов работы периферии ? Как же вы тогда узнаете, что в модуле АЦП существуют регулярные каналы и инжектированные и как с ними работать ? Ну, ладно, подписи к галочкам в Кубе намекнут о существовании неких регулярных и инжектированных каналов АЦП, но они (галочки) никак не расскажут о нюансах этих самых каналов.1 балл
-
Взять Keil, выбрать процессор STM32F217IG и в симуляторе посмотреть как работают таймеры в нужных режимах. Без взякого железа.1 балл
-
Мне всегда казалось, что светодиод помирает от перегрева или токовой перегрузки, а чем меньше ток и температура - тем он дольше проживет. Чем задается этот ток, резистором или источником тока, не так важно. Причем, если сделать ток в 2 раза меньше, то светодиод проживет дольше не в 2 раза, а раз в 100. И чем городить лишние транзисторы, может лучше поставить вторую пару светодиод + резистор? Ну и про охлаждение подумать.1 балл
-
Вот потому это хоть и похожие, но разные языки, пусть и имеющие одни корни, но "в тупую" переназывать расширения файлов .c -> .cpp - весьма опрометчиво.1 балл
-
Supermium - новый браузер для ХР Клон Хрома на 121 движке, теперь работает и в Виндовс ХП https://github.com/win32ss/supermium С его помощью можно открыть любые новомодные сайты.1 балл
-
1 балл
-
Забей, тут главное отношения повыяснять, да свой синдром "вахтера" потешить. Ты думаешь, они не поняли что речь идёт об обычных, китайских резисторах? Поняли, но если дурака не включить, считай - день зря прожит.1 балл
-
Да, действительно, обозван этот флаг как PADRSTF. Ну да ладно. /* Проверка флагов причины сброса */ switch(RCC->CSR & (RCC_CSR_PORRSTF | RCC_CSR_PADRSTF | RCC_CSR_BORRSTF | RCC_CSR_SFTRSTF)) { case RCC_CSR_PORRSTF | RCC_CSR_BORRSTF | RCC_CSR_PADRSTF: // сброс по питанию (POR/PRD, BOR) (флаг NRST тоже будет выставлен) GPIOG->BSRRL = 1 << 13; // зеленый светик break; case RCC_CSR_PADRSTF: // сброс только от NRST GPIOG->BSRRL = 1 << 14; // красный светик break; default: break; } RCC->CSR |= RCC_CSR_RMVF; // очистка флагов причины сброса Флаг PADRSTF выставляется при всех причинах сброса, поскольку внутренняя схема дублирует этот сигнал на ножку NRST. Флаг SFTRSTF - это флаг программного сброса, инициируемого программной командой. При подключении отладчика софтовый сброс генерируется отладчиком.1 балл
-
Похоже - Вы не представляете, что значит "норм". Сборная солянка из абдурин, DC-DC и прочих "модулей для самодельщиков" с алиэкпресса никак не может быть "нормой". Даже для небольшого предприятия. Ваш вариант тоже - поделка гаражного кулибина.1 балл
-
Да вот еще. На вкладке свойств compiler/language не стоит забывать про Use C++ inline semantics.1 балл