реклама на сайте
подробности

 
 
> Вопросы по XMega
Tim0xA
сообщение Jan 25 2013, 12:47
Сообщение #1





Группа: Участник
Сообщений: 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.
Можно ли запараллелить два входа, позволяет ли это входное сопротивление или нужно сделать какую-то обвязку?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Jun 9 2013, 21:16
Сообщение #2


Гуру
******

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



Подскажите пожалуйста (дайте примерчик), как ХМегой считать импульсы? Т.е. как на ней делать то, что обычные Меги делали через входы T0 и T1?

В описаниях одни только слова, по которым код не сваришь. Смотрела документы:
AVR1001 : Getting Started With the XMEGA Event System
AVR1306 : Using the XMEGA Timer_Counter
AVR1307 : Using the XMEGA USART"
AVR1311 : Using the XMEGA Timer_Counter Extensions
AVR1313 : Using the XMEGA IO Pins and External Interrupts
AVR1617 : Frequency Measurement with Atmel AVR XMEGA Family Devices"
но толку чуть.

Поняла лишь одно: таймер нужно запрограммировать на счет не от делителя тактовой частоты, а от канала событий. Это сделать я смогу, например, как-то так:
TCC0.CTRLA = TC_CLKSEL_EVCH0_gc; // Clock Selection: Event Channel 0
А потом какой-то пин в порту запрограммировать в режиме сенсора. Это тоже вроде бы ясно:
PORTF.PIN7CTRL = PORT_ISC_RISING_gc; // Sense rising edge on PORTF7
Но как отправить это событие в тот самый канал, который ждет таймер, остается для меня загадкой.

В документе "AVR1001 : Getting Started With the XMEGA Event System" дан такой совет:
Цитата
4.4 Event Counting
It is possible to use an event channel as a clock source for a Timer/Counter. This can be used to count the number of events on an event channel.
4.4.1 Configuration
In this example, TCC0 will be used to count the number of times a button connected to PD0 has been pressed.
1. Configure PD0 to trigger on rising or falling edge.
2. Select PD0 as event source for event channel 0.
3. Set the digital filter for event channel 0 to the highest possible value.

4. Configure event channel 0 as the clock source for TCC0.
TCC0 will now count the number of times the button connected to PD0 has been pressed.

Однако мне не ясно, как выполнять пунты 2 и 3, а подробности опущены. А про "digital filter for event channel" вообще не нашла даже упоминания, что такой существует.

Полагаю, что задаю не слишком тяжелый вопрос, т.к. не прошу вникать в мою задачу, а прошу лишь объяснить, как выкручиваться на ХМеге в тех задачах, которые на обычных Мегах решались через счетный вход таймеров T0 и T1. Например, на обычной Меге для этого было достаточно одной строки кода:
TCCR1B = 0x7; // external clock source, on rising edge
А дальше лишь присоединить сигнал к ножке T1 и дело в шляпе. А с ХМегой уже больше недели над этим вопросом бьюсь, голова распухла от чтения мануалов, а дело с мертвой точки не слезает. Вероятно, в интернете полно таких примеров, но найти их не смогла - видимо запрос не смогла правильно сформулировать.
Go to the top of the page
 
+Quote Post
zombi
сообщение Jun 9 2013, 22:33
Сообщение #3


Гуру
******

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



Цитата(Xenia @ Jun 10 2013, 00:16) *
Но как отправить это событие в тот самый канал, который ждет таймер, остается для меня загадкой.

Досконально не разбирался и не экспериментировал, но думаю нужно указать "Системе событий" источник события (нужный пин порта) путём засписи в нужный рег. CHnMUX соотв. данных.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Tim0xA   Вопросы по XMega   Jan 25 2013, 12:47
- - bob1   1. Не включено тактирование AC. Вот биты и не вклю...   Jan 26 2013, 14:51
|- - Tim0xA   bob1, спасибо за ответы! Цитата1. Не включено...   Jan 27 2013, 21:55
|- - 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
- - ArtemKAD   Цитатахоть он и сидит рядом с виртуальными портами...   Sep 16 2013, 17:16
|- - zombi   Цитата(ArtemKAD @ Sep 16 2013, 20:16) В о...   Sep 17 2013, 07:49
||- - Xenia   Цитата(zombi @ Sep 17 2013, 11:49) Пробыв...   Sep 17 2013, 12:11
||- - Navovvol   Цитата(Xenia @ Sep 17 2013, 16:11) А что,...   Sep 17 2013, 13:31
||- - Xenia   Цитата(Navovvol @ Sep 17 2013, 17:31) У м...   Sep 17 2013, 14:06
||- - _Pasha   Цитата(Xenia @ Sep 17 2013, 17:06) P.P.S....   Sep 17 2013, 17:28
||- - HHIMERA   Цитата(_Pasha @ Sep 17 2013, 20:28) Такая...   Sep 18 2013, 05:13
||- - _Pasha   Цитата(HHIMERA @ Sep 18 2013, 08:13) STM8...   Sep 18 2013, 06:16
||- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01451 секунд с 7
ELECTRONIX ©2004-2016