bvn123
Свой-
Постов
161 -
Зарегистрирован
-
Посещение
Весь контент bvn123
-
исходное желание - а не увеличить ли разрешение вдвое, не меняя плату и детали на ней. Сейчас самое простое решение - заменить кварцевый генератор, правда, 100МГц - уже есть, а также пошел/купил, 200МГц - заказ
-
да, все это придется учитывать, хотя бы несимметричность источника 100МГц - по докам 50%±10%, а максимальная длительность фронта и спада 6нс для имеющегося на руках кварц.генератора просто не позволит его применить, разве что для себя. Когда все это добро поплывет в температуре... Спасибо, Yuri124, думаю, уже это достаточное основание для отказа от удвоения частоты до 200МГц. Итог: надо приобретать кварц.генератор 200МГц; удвоить частоту 100МГц в EPMxxxx-04, очевидно, можно, но с ухудшением параметров устройства, даже если это будет функционировать.
-
Спасибо. Вы имеете ввиду, что устройство может заработать, а потом отказать при изменении температуры за счет изменения задержек?
-
Synthesis-------- Ignore LCELL buffers - off и Synthesis-------- Ignores GLOBAL buffers - off Если правильно понял, в Quartus II: Settings \ Analysis & Synthesis Settings \ кнопка More settings \ здесь в списке оба Ignore Fitter----------- Auto Global Clock - on нашел здесь же: Settings \ Analysis & Synthesis Settings \ панель Auto Global Options (MAX Devices Only), на ней checkbox Clock - поставил галочку. Соединение выхода буфера lcell cо входом буфера global приводит к ошибке Error: GLOBAL buffer "inst10" must be driven by an INPUT pin or a GLOBAL buffer Вижу замечание "Note: MAX 3000 and MAX 7000 devices do not support logic-driven global signals" на странице Global Primitive здесь: https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/hdl/prim/prim_file_global.htm Отдельно проверил добавление 2-х lcell - дополнительно съедается одна макроячейка и сигнал они задерживают на 3нс (симулятор)
-
StewartLittle , понял, спасибо.
-
Такое решение было бы корректнее асинхронной схемы. Эту конструкцию надо добавлять в проекте VHDL? я работаю со схемами, можно ли её куда-то вписать как параметр для синтеза в Quartus? или только генерировать VHDL по схеме, затем в него добавлять эту конструкцию, затем делать проект по скорректированному файлу VHDL?
-
да, проверил в проекте сразу после получения положительного результата с использованием схемы на последней картинке - в симуляторе все работает корректно. Согласен, с тактирования частой 200МГц надо было начинать - выбор "медленной" градации микросхемы -10N вместо -4N выплыл бы быстрее, с другой стороны я не уверен, что продолжил бы этим заниматься, если бы увидел, что счетчик не работает при 200МГц (и микросхеме с градацией -10N - кто бы об этом вспомнил...)
-
Еще раз спасибо за ответы, я написал: "есть микросхемы -10нc, но есть и -4нс.", решил проверить, оказалось, в опциях была выбрана градация -10нс, заменил на -4нс, результат, полученный в симуляторе, на картинке: есть короткие импульсы 200МГц, счетчик их считает. Вопрос 1, поставленный _4afc_, остаётся: А EPM3064 по фронту и спаду работать не умеют? CPLD Xilinx - работали. Если кто-то знает, как это реализовать в CPLD Altera, прошу сообщить, как именно. Вопрос 2. Как правильнее оформить 200МГц как глобальную тактовую частоту: - подключать ли 100МГц к конт.37 (Global Clock pin) или к нему точно не подключать. - может, 100МГц подать на какой-то контакт общего назначения, а сигнал 200МГц вывести на какой-то соседний c 37-м контакт, чтобы соединить с конт.37 (Global Clock)? - или где-то в Quartus определить линию 200МГц с выхода "Искл.ИЛИ" как глобальную и тактовую? Где именно это делается? И можно ли в этом случае подключать 100МГц к конт. Global Clock?
-
Спасибо за ответы. Если кто-то знает, как именно реализовать такую опцию в CPLD Altera, прошу сообщить. Статья интересная, спасибо. Я представляю, как удвоить частоту на цифровых ИС, в том числе как организовать это в Quartus, но в данном случае для частот ниже.100МГц, а в посте писал: "Получить импульсы/паузы порядка 2,5нс в симуляторе Quartus пока не удаётся.". То есть, для более низких частот (например, 25МГц) я могу реализовать удвоение частоты в Quartus с симуляцией сигнала. Конкретизирую вопрос: если по максимуму, хотелось бы получить графики сигналов в симуляторе Quartus при входной частоте 100МГц (на выходе 200МГц). По документации EPM3064 работает до 220МГц, есть микросхемы -10нc, но есть и -4нс. Или понять, что 200МГц организовать a) не получится, b) получится, но в симуляторе корректного отображения не будет. На вложенных картинках фрагмент схемы из предложенной статьи и его реализация с симуляцией при Fin = 25МГц (нормальная симуляция) то же при Fin-100МГц + окно с установками Timing Settings - может, там что-то поправить для работы на 100МГц, чтобы получить 200МГц на выходе в симуляторе? Или это невозможно?
-
Я пробую в Quartus II для EPM3064 организовать тактирование от источника сигнала частотой 100МГц (период 10нс, импульс 5нс, пауза 5нс) по фронту и спаду, чтобы получить тактовую частоту 200МГц. Кварцевые генераторы 100МГц доступны, организация внешнего генератора 200МГц не интересует. Получить импульсы/паузы порядка 2,5нс в симуляторе Quartus пока не удаётся. Пробовал наращивать логические элементы (например, четное число элементов "not"), чтобы организовать задержку фронта, задержанный и прямой сигналы подать на "исключающее ИЛИ" - очевидно, выполняется оптимизация, задержка остается очень коротко, не зависящей от количества элементов; использовал D-триггер с выполнением асинхронного сброса сразу после появления "1" на его выходе Q (разные варианты триггера из библиотеки - и примитив, и из серии 74xx) - импульс в симуляторе порядка 6,5нс формируется только на каждый второй фронт; для инвертированного сигнала 100МГц.(чтобы организовать импульсы по спаду исходного сигнала) тот же результат. Подключал также источник 100МГц не к глобальному тактовому входу (EPM3064 \ конт.37) а к произвольному контакту, чтобы вывести импульсы 200МГц на конт.38 и соединить его физически с конт 37. Устанавливал в Settings \ Timing Analysis Settings : Clock Settings : Default required f max 200 MHz, также оставлял поле пустым. Самый непредсказуемый результат симуляции - на одном входе "исключающего ИЛИ" сигнал частотой 100МГц, второй вход соединен с выходом. Возможно, вариант с несколькими элементами для организации задержки прошел бы без симуляции, но будет проблема с оценкой скважности сигнала - нет подходящего осциллографа, поэтому хотелось бы увидеть корректный результат в симуляторе. Кто-нибудь пробовал получить тактирование по фронту и спаду поступающих импульсов? Когда-то обращался в поддержку Altera с вопросами по асинхронной работе, внятного ответа не получил.
-
драматичненько, скорее, "на какой топливной смеси катать?" Спасибо, это по сути. Если gcc единственный компилятор для ESP, вопрос, наверное, можно считать решенным. Для avr я тестировал три компилятора (и ассемблер), они давали разную производительность и размер; поэтому полагал, что и для ESP могут быть варианты. Посмотрел, что предлагает Espressif (все-таки производитель ESP) - API и те же сторонние toolchain и среду Eclipse. Что остается - может, в какой-то среде оказалось бы проще все это связывать и/или поддержка лучше... Но в этом плане с эклипс на каком-то уровне уже разобрался. <По умолчанию в GCC используется уровень оптимизаций “-O0”.> ("Оптимальные опции для x86 GCC" Блог компании Intel Компиляторы *C *) - сведения из сети; уровень доверия соответствующий. Проверить с вводом разных ключей оптимизации несложно, тратить время не вижу смысла.
-
Исходная цель - выбор среды разработки для ESP8266, пост размещался до того, как я разобрался с запуском эклипс+mingw+ESP8266 NONOS SDK. Поэтому хотелось сравнения от разработчиков устройств на ESP8266, ESP32 с опытом работы в разных средах разработки для ESP под Windows, что именно лучше, эффективнее из средств разработки и почему: Espressif Systems (производитель ESP8266, ESP32), arduino под ESP, PlarformIO, Eclipse, VS (это то, что мне попалось). Вроде таких: работал в VS, eclipse и..., но перешел на среду ..., потому что... Пока выводы следующие: ардуино - очень дружественная среда: без каких-либо статей и уроков установил, в течение нескольких минут запустил пример http-сервера, заменил IP, пароль и текст 'Hello world' на гипертекст, споткнулся на загрузке в ESP, быстро нашел установку COM-порта, загрузил, получил сервер с html-страничкой эклипс - возился несколько дней до загрузки проекта в ESP; наткнулся на 3 проблемы, ответов на форумах eclipse и mingw не получил, на electronix.ru по крайней мере натолкнули на решение одной из них, в итоге решил методом тыка. Эти же вопросы без ответов встречал в сети - наверняка многие на этом остановились. По результатам моего теста пока предпочту эклипс. Может, есть что-то более дружественное, но эффективное? До публикации результата сравнения ни одного ответа не было; после публикации - ни одного ответа по исходному вопросу. Если говорить о результатах сравнения, предложите, что сравнить - чтобы было просто и показательно; фразу 'я работаю с ESP' писать не надо, это подразумевается. Отладка в ассемблере? Она в Ардуино есть? Оптимизация в ардуино есть? Если да, как оптимизировать приведенную выше программу, чтобы получить исполнение одного цикла не за 10мкс, а как в эклипс, за 1,2мкс? С моими познаниями в ардуино и эклипсе пока мне проще посмотреть изменения осциллографом. Оптимизация в Eclipse - ключ оптимизации при компиляции в gcc не использовался, ожидал, что по умолчанию '-O0', ошибся? Сравнение разных библиотек, управляющих пином? Почему нет? Даже если исходники библиотек открыты, я планирую только использовать их в готовом виде. Интересно было бы мнение разработчиков именно под ESP в ардуино и в других средах разработки, работавших под windows.
-
В чем показательность использования таймера или встроенного управляемого генератора (если бы он был) для сравнения средств разработки? одна среда разработки с "медленным" кодом установит регистры МК, управляющие генератором (таймером), за 100мкс, альтернативный код - за 10мкс, результат работы - одинаковая частота на выходе такого генератора. Попалось аналогичное сравнение: https://habr.com/ru/post/254163/ Общие соображения... Чего-либо нового для себя (кроме Клавы - не понял, о чем это, искать интереса нет) в Ваших сообщениях не нашел.
-
Т.е., какую-то другую периферию модуля ESP8266... Какую именно? Думаю, простое переключение состояния вывода микроконтроллера показательно в этом плане. Если бы среди периферии ESP8266 оказался, например, ГУН, он управлялся бы через функции SDK - скорее всего максимальная частот ГУН была бы одинакова, независимо от того, какие среда/компилятор обращаются к этим функциям SDK. Пока я использую ESP8266, и ответы на вопрос темы "ESP8266, ESP32: сравнение средств разработки по эффективности: минимальный размер кода, максимальное быстродействие - где посмотреть?" меня интересуют, но хотелось бы конкретики и именно по вынесенному в тему вопросу.
-
Как применить Ваши рекомендации к приведенному примеру для сравнения параметров импульсов в ардуино и эклипсе? Оптимизация в Eclipse не использовалась, для этого примера в ардуино она тоже вряд ли использовалась. Я хочу определиться со средой разработки, можете ли Вы что-то сообщить по вопросу темы? С ардуино не разбирался - в нем просто запуститься не составляет труда; с эклипсом повозился. Я не знаю, как в ардуино напрямую вызвать функции ESP8266 NonOS SDK и организовать цикл while() вместо loop(); большинство пользователей ардуино будет лишь слегка изменять готовые примеры, не углубляясь. Если Вы можете изменить пример ардуино File\Examples\Basics\Blink так, чтобы получить меньший период импульсов, было бы интересно посмотреть. Хорошо бы и задержки с шагом 1мкс вставить из ESP8266 NonOS SDK...
-
Я проверил минимальный период импульсов на выводе модуля ESP8266 - задержки убраны, без сброса сторожевого таймера, только чередование записей в порт 1-0-1... в цикле при использовании - Eclipse + MinGW + ESP8266 NonOS SDK: while(1){ gpio_output_set(0, 1<<LED, 1<<LED, 0); //ets_delay_us(1); //delay step 1us gpio_output_set(1<<LED, 0, 1<<LED, 0); //ets_delay_us(1); } длительность импульса 0,7 мкс, период 1,2мкс; небольшое отличие от меандра из-за организации цикла while(1); объем памяти 29680 + 212992 байт (двумя кусками с 0x0 и с 0x10000); есть библиотечная функция задержки с шагом 1мкс - части примера ардуино Blink.ino: void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) // delay(1000); //delay step 1ms digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW // delay(1000); } длительность импульса 1,8 мкс, период 10мкс; большой перекос (скважность >5) из-за цикла loop(); объём памяти 265152 байта; библиотечная функция задержки с шагом 1мс
-
При реализации каких-то функций на микроконтроллерах, например, генератора импульсов, я примерно представляю - максимальную частоту импульсов (ассемблер, С в разных средах разработки (IAR или, например, компиляторы GCС и XC8, прикрученные к Microchip Studio), Ардуино); - соотношение размера кода, который получу, написав программу на ассемблере, на С в разных средах и в Ардуино, Можно ли в этом плане сравнить среды разработки для ESP? Ардуино, Eclipce с TDM-GCC и MinGW, PlatformIO, что-то еще... Тот же генератор импульсов - использование какой среды разработки и компилятора обеспечит -максимальную частоту -минимальный размер кода? Может, попадалась статья по такому сравнению с результатами?
-
Видео с решением проблемы здесь:
-
Здорово, что Вы прислали картинку: проблема была в окошке, выделенном жирным овалом, во вновь создаваемом проекте (проверил также по видео 2:27) по умолчанию в конце еще /Debug (у меня было для папки d:\a\ следующее: ${workspace_loc:/a}/Debug). Надо под этим окошком нажать кнопку Workspace и выбрать папку с проектом - просто ${workspace_loc:/a} - это и прописывает путь к проекту для поиска файлов, выполняемого IDE при сборке, в т.ч. если проект в отдельной папке, не входящей в workspace-eclipce. Причина автодобавки папки Debug: при создании проекта надо определить конфигурацию - выбрать Debug и Release (видео 0:44). В примере галочка была только на Debug, в результате в пути Build directory добавилась папка \Debug. Такой папки нет и она не появилась после успешной сборки. Если выбрать только Release, появляется папка \Release. Если выбрать и Debug, и Release, добавляется \Release. Убрать обе галки не получается - кнопки Next и Finish при этом неактивны и завершить создание проекта не получается. Build argument '-f makefile' сборке не препятствует, действительно, собирается как с ним, так и без него. Build argument необходим, если вместо makefile (стандартное имя) используется нестандартное имя, я проверил. Все-таки на таком этапе споткнуться и столько ковыряться... При поиске решения несколько раз попадались сообщения где также вводился полный путь к makefile и main. Спасибо.
-
Спасибо, проект из Вашего архива работает, пытаюсь разобраться, в чем отличие. Файлы main.c и makefile те же. Пока понял, что указание папок '(in .settings)' и '(in a)', добавленное к именам проекта средой, намекает, что проект вне workspace, а под workspace подразумевается созданная при установке Eclipse папка \eclipce-workspace\ - она у меня совсем в другом месте. Получается, что проект надо либо создавать в \eclipce-workspace\, либо прописывать полные пути - непривычное требование. Еще интересно: при импорте из архива в проект свойства проекта на вкладке С/С++ Build не сохранились, понадобилось вводить вручную команду 'mingw32-make', её аргументы '-f makefile' и сбрасывать/устанавливать некоторые галочки.
-
Без указания путей - первое, что пробовал, ошибка: не находит makefile, а сборка прекращается. Сейчас на всякий случай попробовал и одновременно указать ключ '-f \a\makefile' , а в makefile '\a\main.c' , затем '-f a\makefile' с 'а\main.c' Все варианты, кроме ключа '-f d:\a\makefile', дают ошибку: mingw32-make: makefile: No such file or directory mingw32-make: *** No rule to make target 'makefile'. Stop. "mingw32-make -f makefile" terminated with exit code 2. Build might be incomplete. С ключом '-f d:\a\makefile' и путем к main.c в теле makefile, отличным от d:\a\, ошибка mingw32-make -f "d:\\a\\makefile" mingw32-make: *** No rule to make target 'main.c', needed by 'main.o'. Stop. "mingw32-make -f d:\a\makefile" terminated with exit code 2. Build might be incomplete. Что-то здесь не так, может, какие-то тонкости в создании проекта... Прицепил архив проекта a.zip а пример пытался разобрать отсюда: https://narodstream.ru/c-urok-22-ustanavlivaem-eclipse-chast-1/ где в старой версии все без каких-либо сложностей.
-
1) что в скобках показывает папку, я понял, но специально не создавал, очевидно, в первый раз main.c создавался как File, второй раз (в папке d:\a\, а не в d:\a\.settings\) - точно как Source file 2) пробовал: в видео это 5:19 и 4:44 соответственно. пробовал также варианты сократить до '-f a\makefile', '-f \a\makefile', '-f a/makefile', '-f /a/makefile' (т.к. попадались и слэши вместо бэк слэшей в автоматически созданном make) эти же варианты пробовал в теле makefile для пути к файлу main.c. Оба изменения проверял отдельно. Что пришло в голову, проверил, иначе не задавал бы вопрос. Удивляет, что и на форуме Eclipse за 3 дня ни одного ответа; впечатление, что версия 3-летней давности, в которой этой проблемы не было, зачем-то "улучшена" в этом направлении. Как писал выше, и команда одной строкой в новой версии не работает ('mingw32-make -f d:\a\makefile'), параметр '-f d:\a\makefile' надо обязательно указывать в отдельном окне. Кому мешал и старый вариант ввода, хотя бы как альтернативный.
-
создавал файлы main.c и makefile так: в Project Explorer (см.картинку, левая панель) клик правой клавишей на имени проекта 'test_makefile (in .settings)' \ New \ <уже здесь вопрос: main.c - создавать как File или как Source File? В чем разница?> File (возможно, Source File) \ main.c так же создавал makefile - как File, а не Source File, наполнял оба файла. Оба файла оказались в папке D:\esp\prj\.settings\ Просто перенести оба файла в папку на уровень выше (в D:\esp\prj\) пробовал + заменял в Properties \ C/C++ Build \ Build argument: -f D:\esp\prj\.settings\makefile на Build argument: -f makefile makefile не обнаруживается. Также пробовал оставить весь путь в Build arguments, а в makefile убирал путь к main.c - не обнаруживался main.c Eclipse IDE for Embedded C/C++ Developers (includes Incubating components) Version: 2022-12 (4.26.0) Build id: 20221201-1913 P.S. Для пояснения добавил видео; путь сократил до D:\a\ Файл main.с создавал как Source File, файл makefile - как File. Там сборка без ошибок с путями и ошибки при удалении путей. Звука нет.
-
Добрый вечер, на основе примера работы с Eclipse, опубликованного в 2019-м году, пытаюсь собрать проект (hello world) в свежей версии Eclipse только с main.c и makefile и с использованием 'Build command:' mingw32-make.exe (нужно именно так). Проект получается собрать без ошибок, только если указывать полный путь к makefile, а в makefile - полный путь к main.c. Сам проект в папке D:\esp\proj\, файлы main.c и makefile оказались в созданной IDE папке D:\esp\prj\.settings\ ; папок src, inc не создавал. Но IDE файлы просто так не видит, для выполнения сборки ввожу: Build command: mingw32-make (путь к mingw32-make прописан в "Переменных среды" Windows) Build argument: -f D:\esp\prj\.settings\makefile (в старой версии mingw32-make -f makefile, судя по примеру, можно было вводить одной строкой, сейчас не проходит). В теле makefile также приходится указывать путь для main.c, например, фрагмент из makefile: main.o: D:\esp\prj\.settings\main.c gcc -O0 -g3 -Wall -c D:\esp\prj\.settings\main.c Удивляет, что IDE не видит main.c и makefile даже в workspace. ВОПРОСЫ: действительно ли нужно где-то в IDE прописывать полный путь к файлам проекта, если да, то где? Если в C/C++ Build \ Environment, правильно ли будет создать новую переменную (а не добавлять папку в переменную 'PATH')? Если да (создать новую переменную с именем, например, PrPath, в которой может указываться множество путей, как в PATH), как использовать такую переменную? Невидимость файлов в IDE странна, может, надо какую-нибудь галочку поставить? Есть ли разница, как создавать main.c, как File или как Source File? То же для Folder и Source Folder. Если разница есть, то как создавать и в каким образом созданную папку помещать main.c и, например, подключаемый через заголовочный файл myfunc.h файл myfunc.c? Как File и Folder или как Source File в папку Source Folder? Интересует ответ для свежей версии Eclipse
-
Wi-Fi USB-адаптер я установил, модель MW150US N150 Nano , на сайте магазина указано: "Режимы работы: с точкой доступа (Infrastructure), компьютер-компьютер (Ad-hoc)". Точка доступа в Win10 организовалась (хот-спот), но при запросе в Windows Powershell от имени Администратора: .\netsh wlan show drivers в ответе: "Поддержка размещенной сети : нет", в т.ч. после установки последнего драйвера с сайта производителя. ВОПРОСЫ: Правильно ли я понял, что у меня хот-спот организован средствами win10, а не средствами ПО/драйверов адаптера, а продавец слегка приврал? Какие удобства предоставляет ПО адаптера с поддержкой размещенной сети? Или какие недостатки при организации хот-спот средствами win10, может, скорость меньше? Т.е., стоит ли менять адаптер?