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

Tim0xA

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Я тоже столкнулся с этой проблемой. Пытаюсь работать с регистрами, но пока безуспешно. Может коллеги подскажут решение?
  2. Вопросы по XMega

    bob1, спасибо за ответы! Так и оказалось. Я устанавливал бит разрешения выхода компаратора до момента включения компаратора. Поменял две строчки кода местами - все заработало. Проверил - действительно работает. Я это прерываение как раз и использовал, но проблема была в том, что как только его включаешь, перестают происходить события EVSYS_CHMUX_ADCA_CH0_gc и DMA_CH_TRIGSRC_ADCA_CH0_gc до момента срабатывания компаратора. А мне нужно было все данные через DMA сохранить в буфер, независимо от того, выше они порога компаратора или нет. Прерывание по уровню по моему замыслу должно было только разбудить процессор и инициировать обработку сохраненных данных из циклического буфера. Я нашел объяснение в даташите, почему так происходит Т.е. "или-или". В итоге, учитвая то, что один вход может использоваться ADC и AC, я решил поставленную задачу без функции компаратора ADC.
  3. Вопросы по XMega

    XMega-ми заинтересовался недавно. Имеется отладочная плата XMEGA-A3BU Xplained. Использую Atmel Studio 6 и ASF 3.5.0. Появилось несколько вопросов. Может коллеги подскажут что-нибудь... 1. Во-первых, в ASF отсутствует функция для управления выходами аналогового компаратора AC. Хотя в драйверах для IAR она имеется. Я прописал установку битов AC1OUT ACOOUT записью в регистр CTRLA, но при отладке в дебаггере вижу, что реально биты не устанавливаются. Пытаюсь в окошке I/O View установить эти биты, тоже безрезультатно. Ни в симуляторе, ни в железе. Что я делаю не так? На плате стоит чип ATxmega256A3BU. 2. Возможно ли одновременное использование одного аналогового входа компаратором и АЦП? Или в реальности вход будет отдан тому, кто проинициализировал его последним? 3. Хочу записать результаты АЦП в память через DMA. В ASF есть пример - ознакомился, настроил. Запуск АЦП происходит через систему событий циклически, DMA записывает данные в память, все ОК. Все это происходит в спящем режиме. Но мне нужно отловить некий уровень на входе АЦП и после этого выдать данные в USART. Я настраиваю компаратор на выходе АЦП, который генерирует прерывание, когда на входе АЦП значение первышает некий уровень. Как только разрешаю это прерывание - сразу перестает работать система событий после получения результата АЦП, соответственно не запускается новый цикл АЦП и запись DMA. Ок. Перевожу АЦП в режим freerun - компаратор отрабатывает как надо, прерывания генерятся, но теперь и события генерятся только вместе с прерываниями после срабатывания компаратора. Соответсвенно и DMA тоже работает только когда сработал компаратор. Как только компаратор выключается - пропадают прерывания и события. Почему? Мне нужно чтобы события оставалсиь всегда, чтобы пока проц спит в фоне постоянно работал АЦП и велась запись в память через DMA. Проц должен просыпаться только если на входе компаратора есть требуемый уровень. А так работает или одно или другое. Т.е. либо тебе события без прерываний, либо события с прерываниями, но после срабатывание компаратора. Пока вижу одно решение: Настроить два аналоговых входа, физически запараллелить их - один настроить на АЦП с событиями и DMA, второй отдать аналоговому компаратору, который будет генерить прерывание при превышении порога. Отсюда вопрос 4. Можно ли запараллелить два входа, позволяет ли это входное сопротивление или нужно сделать какую-то обвязку?
  4. работаю в квартус, схематики довольно много получилось, попробую выделить глючный блок, конкретизировать вопрос.
  5. Имеется первый проект в схемном вводе для изучения ПЛИС на отладочной плате. Достигнуто некоторое стабильное состояние. Но при добавлении каких-либо внешних пинов (на светодиоды для отображения состояния внутренних узлов) проект начинает сильно колбасить, могут перестать работать совершенно разные части схемы. Глобал клок есть, схема максимально синхронна. Где можно почитать про базовые принципы проектирования в ПЛИС, чтобы избежать подобных вещей, но не в виде пространной книженции, а четко по теме, конкретно, "без воды", типа FAQ: есть такие нюансы, часто допускаются такие ошибки, вот так их решают, так их избегают и т.п. Подскажите, в каком направлении копать?
  6. Ну и еще один трудный вопрос, чтобы окончательно поставить общественность в тупик: Создан блок BDF, в составе имеется три LPM_COUNTER, BDF экспортирован в BSF. Этот BSF включается в схему более высокого уровня (top), в которой тоже имеются свои LPM_COUNTERs и наименования этих LPM совпадают. Я исправил вручную в текстовых файлах имена. Проблема решена, но возникли вопросы: 1. Как избежать подобных ситуаций? 2. Как можно сделать некий блок, чтобы не тягать за ним кучу входящих в нее мегафункций и легко использовать в других проектах? 3. Если я использую мегафункции LPM_xxxx, но потом удаляю их, то в папке проекта накапливаются используемые и неиспользуемые файлы этих мегафункций. Как автоматически убрать все лишнее?
  7. Схемный ввод: 1. Как сделать сброс/установку различных узлов схемы после включения (аналог супервизора)? 2. Существует ли регистр-защелка для шины (что-то вроде нашей ИР23, только с изменяемым количеством пинов)?
  8. Я в июле прошлого года брал в Виакоме (Киев) плату Altera DE1 (это тот же Terasic). Отдал $190. Ждал месяц пока приедет из Германии, пока растаможат, пока привезут.
  9. Rifenshtal, спасибо. Интересный совет. Не додумался. Возник еще вопрос. Для симуляции и контроля внутрисхемных сигналов я назначаю output-пины, которые в Assignments Editor делаю виртуальными (Virtual). Можно ли их как-то скопом сделать виртуальными, а не по одному? (Quartus II 9.0 WE)
  10. Я недавно взялся за изучение ПЛИС. Есть плата Altera DE1. Избрал следующий путь: 1. Схемный ввод (как наиболее понятный на данном этапе) для освоения QuartusII, симуляции, общих принципов, азов. Для изучения взял конкретную схему и перевожу ее в ПЛИС. По ходу возникает много вопросов, нюансов, с которыми приходится разбираться. В сочетании с новыми для меня языками VHDL и Verilog текущие проблемы были бы трудно разрешимы и малопонятны. А со схемным вводом разобраться проще. Это для начала. 2. Затем начать учить VHDL (т.к. изучив Verilog вернуться к VHDL уже не будет сил) и комбинировать схемный ввод с блоками на VHDL. Постепенно перевести всю имеющуюся схему в VHDL. 3. И на закуску Verilog Может я в чем-то неправ. Критикуйте, пока не поздно ;)
  11. Подробный PDF на эту тему http://www.alltomelektronik.se/Files/060025-13UK.pdf
  12. Есть несколько вопросов по работе с Quartus II Режим схемного ввода: 1. Если я создаю проект с несколькими BDF файлами, как из одного BDF ссылаться на сигналы другого BDF? 2. Создал символ (аналог 155ЛР1) в BDF, экпортировал в BSF. Символ представляет собой прямоугольник с кучей входов-выходов. Работает, но визуально смотрится слишком просто. Хотелось бы его разрисовать (выделить узлы "И", "ИЛИ"). Это нужно делать в редакторе BSF-файлов? Но тогда если я внесу изменение в исходный BDF-файл и снова экспортирую его в BSF, все графические потуги будут утеряны? Допустим ЛР1 - простой символ, раз сделал BDF, экспортировал в BSF, разрисовал BSF и забыл. Но как быть, если символ сложный и уже разрисован, а нужно внести изменения? Симулятор: 1. В моем проекте период следования сигналов кадровой развертки 20мс. Как в симуляторе посмотреть временную диаграмму импульса КИ? Чтобы до него добраться, нужно задать период расчета как минимум 20мс, но очень долго считает :( Допустим, можно сформировать в VWF исходные состояния сигналов такими, чтобы их состояние предваряло появление импульса КИ. Это единственный способ или можно еще как-то ускорить расчеты для периода 20 и более мс?
×
×
  • Создать...