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

Вопросик по таймеру atXmega

У таймеров Atxmega есть несколько каналов захвата/сравнения. Не подскажет ли кто, а что именно переключает режим работы канала между захватом и сравнением? Можно ли сделать так, что-бы канал осуществивший захват в одном периоде работы таймера, в следующем периоде уже работал как канал сравнения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Плюс еще вопросик вдогонку... Является ли регистр захвата канала физически тем-же что и регистр сравнения? Т.е. если надо захваченное значение в дальнейшем использовать для сравнения, можно ли его после захвата не перезаписывать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы было написано - не спрашивал-бы. Впрочем, английский не мой родной, потому вдруг чего пропустил...

Там есть только утверждение, что канал не может работать одновременно на захват и сравнение, но прямо что его переключает между режимами - не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы было написано...
... про конкретное семейство, по сему открыл мануал на XMEGA E (doc42004a апр'13): TC4/5, регистр CTRLE, четыре двубитовых поля (откл\сравнение\захват\и то и другое). Стр. 178.
Дальше - сам или чтение доки online по соответствующему тарифу ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 минут назад, Obam сказал:

про конкретное семейство, по сему открыл мануал на XMEGA E

Любопытно...

56 минут назад, Obam сказал:

регистр CTRLE, четыре двубитовых поля (откл\сравнение\захват\и то и другое)

К сожалению серия Е в данном семействе это вещь в себе и в остальных подобных регистров не наблюдается. Более того, там нет таймеров "Type 4,5". Там этот регистр выглядит так:

CTRLE.thumb.png.1997fa3d117d82f2f8b16f2ac78664c1.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Obam сказал:

Продолжаем сеанс телепатии: а не в CTRLD для семейств A или B?

Возможно. Но если это так, то режим захвата/сравнения относится не только к каналам таймера, а ко всему таймеру целиком. Т.е. или все включенные каналы будут работать в режиме захвата или все в режиме сравнения.  Вопрос в первом посту собственно сводился к тому достаточно ли для переключения только этого регистра или надо еще менять режим в CTRLB.WGMODE. Впрочем, по CTRLD там тоже не все прозрачно - что переключает режим CTRLD.EVACT или установка событий для каналов в CTRLD.EVSEL. Т.е. если в CTRLD.EVACT будет OFF, но CTRLD.EVSEL останутся события подключенные к каналам, переключатся ли каналы в режим сравнения и что произойдет если при этом EVENT придет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/17/2024 at 12:26 PM, artemkad said:

Возможно. Но если это так, то режим захвата/сравнения относится не только к каналам таймера, а ко всему таймеру целиком. Т.е. или все включенные каналы будут работать в режиме захвата или все в режиме сравнения.  Вопрос в первом посту собственно сводился к тому достаточно ли для переключения только этого регистра или надо еще менять режим в CTRLB.WGMODE

Какое у вас семейство xMega ?
Какой таймер вы используете ?
 

Например, для XMEGA B, таймер ТС0/1
 

Quote

CTRLB – Control register B
• Bit 7:4 – CCxEN: Compare or Capture Enable
When input capture operation is selected, the CCxEN bits enable the capture operation for the
corresponding CC channel.

 

Т.е. каждый канал захвата включается своим битом в регистре CTRLB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, dimka76 сказал:

Т.е. каждый канал захвата включается своим битом в регистре CTRLB.

Это только включение/отключение канала. А вопрос в том, в каком режиме включенный канал будет работать - в режиме захвата или в режиме сравнения.

47 минут назад, dimka76 сказал:

When input capture operation is selected, the CCxEN bits enable the capture operation for the
corresponding CC channel

Т.е. тут "когда захват включен" - интересует что необходимо и достаточно для этого "когда"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/17/2024 at 1:17 PM, artemkad said:

Т.е. тут "когда захват включен" - интересует что необходимо и достаточно для этого "когда"

Вообще, такое ощущение, что этой xmega мало кто занимается.
Поэтому вам наверняка самому придется экспериментировать.

Кстати, а у вас плата уже имеется, чтобы экспериментировать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, dimka76 сказал:

Кстати, а у вас плата уже имеется, чтобы экспериментировать ?

Плата у меня есть и даже в ней в целом рабочая прога имеется и кой-какое средство отладки(отладочный UART). B вот сейчас решаю поэкспериментировать с крутым изменением одного из модулей программы или начать с заплаток.

 

Собственно плата работает на 2 UARTа + отладочный UART, + SPI c жестким таймингом + 19200 9-битная последовательная шина связи с другими платами тоже реализованная на UART. Вот только вылезла проблемка в том, что тайминги на этой шине в связи с работой почти без  кварцов с другой стороны в некоторых пределах плавают и при хреново сошедшихся звездах (по статистике 1 пара плат из сотни при разлете температур между платами в 30 градусов)   связь может теряться. Вот и стала задача подстройки скорости приемника под текущую скорость шины. Сперва подумалось, что достаточно подстроить частоту тактовой, но это повлияет и на остальные 2 UARTа чего не хочется. Вот  и рассматриваю сейчас возможность реализации подстраиваемого софтового UART-а на таймере.

Идея была запустить таймер на постоянку с периодом равным битовой скорости(изменением периода можно подстроить скорость) и захватом одного канала  ловить фазу старт-бита. После чего перевести два канала в режим сравнения - одного канала с пойманным значением, второго с  пойманным плюс пол периода скорости. При этом прерывание  первого канала будет работать на передачу, а второго на прием. Если бы можно было еще один канал одновременно использовать для захвата, то по смещению фазы фронтов можно было бы даже делать непрерывную автоподстройку по принимаемым данным, но можно и без этого по байту синхронизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...