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

bvn123

Свой
  • Постов

    161
  • Зарегистрирован

  • Посещение

Весь контент bvn123


  1. исходное желание - а не увеличить ли разрешение вдвое, не меняя плату и детали на ней. Сейчас самое простое решение - заменить кварцевый генератор, правда, 100МГц - уже есть, а также пошел/купил, 200МГц - заказ
  2. да, все это придется учитывать, хотя бы несимметричность источника 100МГц - по докам 50%±10%, а максимальная длительность фронта и спада 6нс для имеющегося на руках кварц.генератора просто не позволит его применить, разве что для себя. Когда все это добро поплывет в температуре... Спасибо, Yuri124, думаю, уже это достаточное основание для отказа от удвоения частоты до 200МГц. Итог: надо приобретать кварц.генератор 200МГц; удвоить частоту 100МГц в EPMxxxx-04, очевидно, можно, но с ухудшением параметров устройства, даже если это будет функционировать.
  3. Спасибо. Вы имеете ввиду, что устройство может заработать, а потом отказать при изменении температуры за счет изменения задержек?
  4. 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нс (симулятор)
  5. Такое решение было бы корректнее асинхронной схемы. Эту конструкцию надо добавлять в проекте VHDL? я работаю со схемами, можно ли её куда-то вписать как параметр для синтеза в Quartus? или только генерировать VHDL по схеме, затем в него добавлять эту конструкцию, затем делать проект по скорректированному файлу VHDL?
  6. да, проверил в проекте сразу после получения положительного результата с использованием схемы на последней картинке - в симуляторе все работает корректно. Согласен, с тактирования частой 200МГц надо было начинать - выбор "медленной" градации микросхемы -10N вместо -4N выплыл бы быстрее, с другой стороны я не уверен, что продолжил бы этим заниматься, если бы увидел, что счетчик не работает при 200МГц (и микросхеме с градацией -10N - кто бы об этом вспомнил...)
  7. Еще раз спасибо за ответы, я написал: "есть микросхемы -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?
  8. Спасибо за ответы. Если кто-то знает, как именно реализовать такую опцию в 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МГц на выходе в симуляторе? Или это невозможно?
  9. Я пробую в 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 с вопросами по асинхронной работе, внятного ответа не получил.
  10. драматичненько, скорее, "на какой топливной смеси катать?" Спасибо, это по сути. Если gcc единственный компилятор для ESP, вопрос, наверное, можно считать решенным. Для avr я тестировал три компилятора (и ассемблер), они давали разную производительность и размер; поэтому полагал, что и для ESP могут быть варианты. Посмотрел, что предлагает Espressif (все-таки производитель ESP) - API и те же сторонние toolchain и среду Eclipse. Что остается - может, в какой-то среде оказалось бы проще все это связывать и/или поддержка лучше... Но в этом плане с эклипс на каком-то уровне уже разобрался. <По умолчанию в GCC используется уровень оптимизаций “-O0”.> ("Оптимальные опции для x86 GCC" Блог компании Intel Компиляторы *C *) - сведения из сети; уровень доверия соответствующий. Проверить с вводом разных ключей оптимизации несложно, тратить время не вижу смысла.
  11. Исходная цель - выбор среды разработки для 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.
  12. В чем показательность использования таймера или встроенного управляемого генератора (если бы он был) для сравнения средств разработки? одна среда разработки с "медленным" кодом установит регистры МК, управляющие генератором (таймером), за 100мкс, альтернативный код - за 10мкс, результат работы - одинаковая частота на выходе такого генератора. Попалось аналогичное сравнение: https://habr.com/ru/post/254163/ Общие соображения... Чего-либо нового для себя (кроме Клавы - не понял, о чем это, искать интереса нет) в Ваших сообщениях не нашел.
  13. Т.е., какую-то другую периферию модуля ESP8266... Какую именно? Думаю, простое переключение состояния вывода микроконтроллера показательно в этом плане. Если бы среди периферии ESP8266 оказался, например, ГУН, он управлялся бы через функции SDK - скорее всего максимальная частот ГУН была бы одинакова, независимо от того, какие среда/компилятор обращаются к этим функциям SDK. Пока я использую ESP8266, и ответы на вопрос темы "ESP8266, ESP32: сравнение средств разработки по эффективности: минимальный размер кода, максимальное быстродействие - где посмотреть?" меня интересуют, но хотелось бы конкретики и именно по вынесенному в тему вопросу.
  14. Как применить Ваши рекомендации к приведенному примеру для сравнения параметров импульсов в ардуино и эклипсе? Оптимизация в Eclipse не использовалась, для этого примера в ардуино она тоже вряд ли использовалась. Я хочу определиться со средой разработки, можете ли Вы что-то сообщить по вопросу темы? С ардуино не разбирался - в нем просто запуститься не составляет труда; с эклипсом повозился. Я не знаю, как в ардуино напрямую вызвать функции ESP8266 NonOS SDK и организовать цикл while() вместо loop(); большинство пользователей ардуино будет лишь слегка изменять готовые примеры, не углубляясь. Если Вы можете изменить пример ардуино File\Examples\Basics\Blink так, чтобы получить меньший период импульсов, было бы интересно посмотреть. Хорошо бы и задержки с шагом 1мкс вставить из ESP8266 NonOS SDK...
  15. Я проверил минимальный период импульсов на выводе модуля 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мс
  16. При реализации каких-то функций на микроконтроллерах, например, генератора импульсов, я примерно представляю - максимальную частоту импульсов (ассемблер, С в разных средах разработки (IAR или, например, компиляторы GCС и XC8, прикрученные к Microchip Studio), Ардуино); - соотношение размера кода, который получу, написав программу на ассемблере, на С в разных средах и в Ардуино, Можно ли в этом плане сравнить среды разработки для ESP? Ардуино, Eclipce с TDM-GCC и MinGW, PlatformIO, что-то еще... Тот же генератор импульсов - использование какой среды разработки и компилятора обеспечит -максимальную частоту -минимальный размер кода? Может, попадалась статья по такому сравнению с результатами?
  17. Здорово, что Вы прислали картинку: проблема была в окошке, выделенном жирным овалом, во вновь создаваемом проекте (проверил также по видео 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. Спасибо.
  18. Спасибо, проект из Вашего архива работает, пытаюсь разобраться, в чем отличие. Файлы main.c и makefile те же. Пока понял, что указание папок '(in .settings)' и '(in a)', добавленное к именам проекта средой, намекает, что проект вне workspace, а под workspace подразумевается созданная при установке Eclipse папка \eclipce-workspace\ - она у меня совсем в другом месте. Получается, что проект надо либо создавать в \eclipce-workspace\, либо прописывать полные пути - непривычное требование. Еще интересно: при импорте из архива в проект свойства проекта на вкладке С/С++ Build не сохранились, понадобилось вводить вручную команду 'mingw32-make', её аргументы '-f makefile' и сбрасывать/устанавливать некоторые галочки.
  19. Без указания путей - первое, что пробовал, ошибка: не находит 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/ где в старой версии все без каких-либо сложностей.
  20. 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' надо обязательно указывать в отдельном окне. Кому мешал и старый вариант ввода, хотя бы как альтернативный.
  21. создавал файлы 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. Там сборка без ошибок с путями и ошибки при удалении путей. Звука нет.
  22. Добрый вечер, на основе примера работы с 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
  23. Wi-Fi USB-адаптер я установил, модель MW150US N150 Nano , на сайте магазина указано: "Режимы работы: с точкой доступа (Infrastructure), компьютер-компьютер (Ad-hoc)". Точка доступа в Win10 организовалась (хот-спот), но при запросе в Windows Powershell от имени Администратора: .\netsh wlan show drivers в ответе: "Поддержка размещенной сети : нет", в т.ч. после установки последнего драйвера с сайта производителя. ВОПРОСЫ: Правильно ли я понял, что у меня хот-спот организован средствами win10, а не средствами ПО/драйверов адаптера, а продавец слегка приврал? Какие удобства предоставляет ПО адаптера с поддержкой размещенной сети? Или какие недостатки при организации хот-спот средствами win10, может, скорость меньше? Т.е., стоит ли менять адаптер?
×
×
  • Создать...