|
Вопросы по XMega |
|
|
|
Jan 25 2013, 12:47
|
Группа: Участник
Сообщений: 14
Регистрация: 21-02-09
Пользователь №: 45 161

|
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. Можно ли запараллелить два входа, позволяет ли это входное сопротивление или нужно сделать какую-то обвязку?
|
|
|
|
|
 |
Ответов
|
Sep 16 2013, 17:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата хоть он и сидит рядом с виртуальными портами, но отношения к ним прямого не имеет, просто состоит вместе с ними в одной группе PORTCFG ... Не совсем вместе с ними. Просто в PORTCFG засунули в т.ч. и настройку виртуальных портов. Эдакая общая группа портов для того, что в специализированные группы не влезло, но к портам относится. Сами-же виртуальные порты отдельно в VPORTх . Хотя я так пока и не вкурил зачем они вообще нужны... В общем PORTCFG.CLKEVOUT в помощь...
|
|
|
|
|
Sep 17 2013, 07:49
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(ArtemKAD @ Sep 16 2013, 20:16)  В общем PORTCFG.CLKEVOUT в помощь... 100% И у меня вопрос (дабы не плодить тем). Почему на xmega128A1U не выводится на пин clkPER4? Т.е. clkPER и clkPER2 выводится а clkPER4 нет. Пробывал при clkPER4=128MHz, clkPER2=64MHz, clkPER=32MHz.
|
|
|
|
|
Sep 17 2013, 12:11
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(zombi @ Sep 17 2013, 11:49)  Пробывал при clkPER4=128MHz, clkPER2=64MHz, clkPER=32MHz. А что, разве на Xmega можно частоты выше, чем 32 МГц получать? Не знала... Точнее, видела, что множитель позволяет умножать аж до 31 раз, но думала, что это для медленных кварцев сделано, а верхнюю границу в 32 МГц нарушать нельзя. Или все-таки можно? И если да, то как? И какие возможности это дает? Таймеры быстрее заработают?
|
|
|
|
|
Sep 17 2013, 13:31
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080

|
Цитата(Xenia @ Sep 17 2013, 16:11)  А что, разве на Xmega можно частоты выше, чем 32 МГц получать? Не знала... Точнее, видела, что множитель позволяет умножать аж до 31 раз, но думала, что это для медленных кварцев сделано, а верхнюю границу в 32 МГц нарушать нельзя. Или все-таки можно? И если да, то как? И какие возможности это дает? Таймеры быстрее заработают? Можно нарушать, только неизвестно, как долго проработает. У меня один опытный образец уже полтора года на 48МГц работает и полностью исправен. Работает от внешнего кварца на 8 МГц и PLL на 6. Выше поднимать удавалось, уже не помню до скольки, но потом засомневался и прекратил эксперименты, оставив на 48МГц. Нагреваний МК-ра замечено не было. Ну, а таймеры могут тактироваться вместе с CPU или через делитель, так что - да, таймеры заработают быстрее.
|
|
|
|
|
Sep 17 2013, 14:06
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Navovvol @ Sep 17 2013, 17:31)  У меня один опытный образец уже полтора года на 48МГц работает и полностью исправен. Работает от внешнего кварца на 8 МГц и PLL на 6. Выше поднимать удавалось, уже не помню до скольки, но потом засомневался и прекратил эксперименты, оставив на 48МГц. Нагреваний МК-ра замечено не было. Ну, а таймеры могут тактироваться вместе с CPU или через делитель, так что - да, таймеры заработают быстрее. Ядро разгонять свыше 32 МГц я не хочу, мне процессорной скорости вполне хватает. Однако хотелось бы, что таймер был способен считать внешние импульсы (меандр) на более высокой частоте, чем нынешние 16 МГц (половина от 32-х). Т.е. мне надо только на счет, а не на выдачу! И хотя, казалось бы, скорость внешнего счета от внутренней частоты никак не зависит, но какая-то там связь типа синхронизации есть, которая мешает мне подняться выше 16 МГц (начинает пропускать импульсы). Причем, мне не ясно, какого из трех клоков не хватает (clk per, clk per2, clk per4). Похоже, что не хватает clk per, т.е. именно он тактирует таймеры и систему событий (через последнюю сигналы от ножек попадат к таймеру). Но насколько технически возможно поднять clk per выше частоты ядра? Ведь ядро вроде бы работает как раз от этого clk per... P.S. Может быть эта синхронизация как-то отключается, чтобы счет внешних импульсов стал асинхронным? И тогда клоками можно не заморачиваться? P.P.S. По-видимому, задача моя нерешабельная, т.к. в руководстве ( Atmel AVR1617: Frequency Measurement with Atmel AVR XMEGA Family Devices) прямо сказано: Цитата Limitations • The Atmel AVR XMEGA device operating with the recommended 32MHz internal RC oscillator is limited to measuring clock frequencies up to 32MHz / 2, or 16MHz
|
|
|
|
|
Sep 18 2013, 05:13
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(_Pasha @ Sep 17 2013, 20:28)  Такая фича, как считать испульсы частотой выше процессорной традиционно присутствует у продукции Микрочип STM8 и STM32 тоже на такое способны...
|
|
|
|
Сообщений в этой теме
Tim0xA Вопросы по XMega Jan 25 2013, 12:47 bob1 1. Не включено тактирование AC. Вот биты и не вклю... Jan 26 2013, 14:51 Tim0xA bob1, спасибо за ответы!
Цитата1. Не включено... Jan 27 2013, 21:55 Xenia Подскажите пожалуйста (дайте примерчик), как ХМего... Jun 9 2013, 21:16 zombi Цитата(Xenia @ Jun 10 2013, 00:16) Но как... Jun 9 2013, 22:33  Xenia Цитата(zombi @ Jun 10 2013, 02:33) Доскон... Jun 9 2013, 23:17 bob1 Считает с ноги через компаратор в режиме idle.
Ес... Jun 10 2013, 03:34 Xenia Цитата(bob1 @ Jun 10 2013, 07:34) Если бе... Jun 10 2013, 06:59  _Артём_ Цитата(Xenia @ Jun 10 2013, 09:59) А они ... Jun 12 2013, 14:53   Xenia Цитата(_Артём_ @ Jun 12 2013, 18:53) Тако... Jun 12 2013, 16:02    _Артём_ Цитата(Xenia @ Jun 12 2013, 19:02) Меня н... Jun 12 2013, 16:18     Xenia Цитата(_Артём_ @ Jun 12 2013, 20:18) Упом... Jun 12 2013, 16:23      _Артём_ Цитата(Xenia @ Jun 12 2013, 19:23) TCF0 -... Jun 12 2013, 16:29       Xenia Цитата(_Артём_ @ Jun 12 2013, 20:29) В оп... Jun 12 2013, 16:37      _Артём_ Цитата(Xenia @ Jun 12 2013, 19:23) В хиде... Jun 12 2013, 16:40 Xenia А как в обратную сторону? Т.е. то, что все обычные... Jun 12 2013, 14:31 Xenia Дошло до меня - номер порта и пина нигде не задает... Jun 12 2013, 16:50 _Артём_ Цитата(Xenia @ Jun 12 2013, 19:50) Т.е. т... Jun 12 2013, 17:46 Duhas Дабы не плодить тем спрошу здесь. Понадобилось мне... Aug 14 2013, 06:54 Xenia Цитата(Duhas @ Aug 14 2013, 10:54) я вижу... Aug 14 2013, 07:43 Duhas спасибо за указание на мэйн.
пины я писал те, чт... Aug 16 2013, 03:15 Xenia У меня возник новый вопрос: а можно ли наоброт? Т.... Sep 15 2013, 13:13 Tiro Цитата(Xenia @ Sep 15 2013, 16:13) У меня... Sep 15 2013, 14:53  Xenia Цитата(Tiro @ Sep 15 2013, 18:53) Ксения,... Sep 15 2013, 15:08   Tiro Цитата(Xenia @ Sep 15 2013, 18:08) Я тоже... Sep 15 2013, 16:09    Xenia Цитата(Tiro @ Sep 15 2013, 20:09) Я ничег... Sep 15 2013, 16:52     Tiro Цитата(Xenia @ Sep 15 2013, 19:52) Вы зря... Sep 15 2013, 16:57      Xenia Цитата(Tiro @ Sep 15 2013, 20:57) Ну не з... Sep 15 2013, 17:06       Tiro Цитата(Xenia @ Sep 15 2013, 20:06) Данные... Sep 15 2013, 17:29        Xenia Цитата(Tiro @ Sep 15 2013, 21:29) Глянул ... Sep 15 2013, 17:40         Tiro Цитата(Xenia @ Sep 15 2013, 20:40) Задача... Sep 15 2013, 17:56          Xenia Цитата(Tiro @ Sep 15 2013, 21:56) Моя скл... Sep 15 2013, 18:12 ArtemKAD Xenia, найдите описание регистра CLKEVOUT . Думаю ... Sep 15 2013, 18:41 Xenia Цитата(ArtemKAD @ Sep 15 2013, 22:41) Xen... Sep 15 2013, 19:28 ArtemKAD Еще раз посмотрите!
Цитата13.15.4 CLKEVOUT - ... Sep 15 2013, 19:49 Xenia У моих портов нет регистра CLKEVOUT . Этот регистр... Sep 15 2013, 20:56 Tiro Цитата(Xenia @ Sep 15 2013, 23:56) А вот ... Sep 15 2013, 21:12 Duhas хоть он и сидит рядом с виртуальными портами, но о... Sep 16 2013, 07:11        Xenia Цитата(_Pasha @ Sep 18 2013, 10:16) Я гов... Sep 18 2013, 06:32        HHIMERA Цитата(_Pasha @ Sep 18 2013, 09:16) Я гов... Sep 18 2013, 07:05         _Pasha Цитата(HHIMERA @ Sep 18 2013, 10:05) ... Sep 18 2013, 12:54          HHIMERA Цитата(_Pasha @ Sep 18 2013, 15:54) 74LVC... Sep 18 2013, 14:41           _Pasha Цитата(HHIMERA @ Sep 18 2013, 17:41) Та н... Sep 18 2013, 15:30            HHIMERA Цитата(_Pasha @ Sep 18 2013, 18:30) Наско... Sep 18 2013, 15:41 ArtemKAD Цитата(ArtemKAD @ Sep 16 2013, 20:16) Сам... Sep 19 2013, 12:06 Duhas т.е. при выводе просто тишина? ради эксперимента... Sep 17 2013, 08:49 zombi Цитата(Duhas @ Sep 17 2013, 11:49) т.е. п... Sep 17 2013, 09:35 ArtemKAD К примеру clkPER4 можно использовать для увеличени... Sep 17 2013, 12:59 Duhas что измеряете, если не секрет? Sep 17 2013, 16:22 Xenia Цитата(Duhas @ Sep 17 2013, 20:22) что из... Sep 17 2013, 17:18  zombi Цитата(Xenia @ Sep 17 2013, 20:18) разгов... Sep 17 2013, 18:03   Xenia Цитата(zombi @ Sep 17 2013, 22:03) В DS н... Sep 17 2013, 18:22    zombi Цитата(Xenia @ Sep 17 2013, 21:22) Тем бо... Sep 17 2013, 20:31  ArtemKAD Цитата(Xenia @ Sep 17 2013, 20:18) Пока и... Sep 17 2013, 19:47 Navovvol Xenia, я кажется понял, что требуется.
Пусть Atxm... Sep 18 2013, 07:01 Xenia Цитата(Navovvol @ Sep 18 2013, 11:01) Дал... Sep 18 2013, 07:42  Navovvol Цитата(Xenia @ Sep 18 2013, 11:42) Про ре... Sep 18 2013, 08:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|