Страница 1 из 2

Mega48. Как сменить источник тактирования на лету?

Добавлено: Вс июл 27, 2008 20:54:15
Morse
Не смог сам разобраться, кто сталкивался, подскажите. Надо при исполнении программы менять тактирование с внутреннего генератора на внешний кварц и обратно. Единственное что нашёл, это управление делителем частоты.

Добавлено: Вс июл 27, 2008 21:02:10
Пухич
Источник тактирования ядра выбирается исключительно фьюзами при программировании МК. По крайней мере я в этом уверен. Поправьте меня если не так.

А зачем вообще так делать? Колитесь.

Добавлено: Вс июл 27, 2008 21:13:59
Morse
Вот засада.
Надо после отработки основного кода, на внутреннем генераторе, перейти на часовой кварц и ждать нового сеанса. Произойти это может по истечению заданного времени или по внешнему событию. Но самая эротика в том чтобы добиться минимально возможного тока потребления.

Добавлено: Вс июл 27, 2008 21:17:10
ARV
можно попробовать зашить фьюзы "тактирование от внешнего источника", и сигналом с ноги МК коммутировать этот источник... можно попробовать использовать внешнюю RC-цепь (если точность частоты не критична) - ее коммутировать проще...

а чем "режим сна" не устраивает? ожидая новый сеанс надо что-то делать?

Добавлено: Вс июл 27, 2008 21:24:39
Morse
Уснуть не получится. Надо чтобы ADC продолжал мониторить напряжение. С точностью частоты тоже будет засада. По хорошему, надо два кварца использовать.

Добавлено: Вс июл 27, 2008 21:32:24
Пухич
С точностью частоты тоже будет засада. По хорошему, надо два кварца использовать.
Тогда сделать два генератора и коммутировать один из них. Правда коммутатор надо продумать, чтобы импульс пропускать с его начала, а не с произвольного момента. Ну и триггер надо бы иметь для удержания ключа.

А что если в режиме "медляка" пробуждаться с нужной частотой, мониторить АЦП, и засыпать снова? И все это быстро-быстро?

Добавлено: Вс июл 27, 2008 21:43:00
Morse
Про два генератора я уже думал, не получится. Сильно ограничены размеры устройства и ток потребления. Спать между измерениями ADC конечно можно, но, сколько понадобится времени на пробуждение. Надо мерить не менее 100 раз в секунду.

Добавлено: Вс июл 27, 2008 21:52:59
Пухич
Спать между измерениями ADC конечно можно, но, сколько понадобится времени на пробуждение. Надо мерить не менее 100 раз в секунду.
Я думаю получится. Все зависит от частоты ядра. Считать надо одним словом.

Добавлено: Вс июл 27, 2008 22:08:54
Morse
Да с ядром то всё понятно. Я беспокоюсь за время на установление аналоговой часть ADC.
Сейчас попробовал померить ток потребления. Питание 3 вольта, из периферии включён один порт на выход. При работе от встроенного генератора 8МГц с делением на 8, 0.922ма. Тоже самое от кварца 1МГц без делителя, 0.813. Многовато, но обнадеживает.

Добавлено: Пн июл 28, 2008 08:43:30
SergeBS
Morse писал(а):Да с ядром то всё понятно. Я беспокоюсь за время на установление аналоговой часть ADC.
23.6 ADC noise canceller?
...
b. Enter ADC Noise Reduction mode (or Idle mode). The ADC will start a conversion once the CPU has been halted.
И соответственно CPU потреблять тоже будет по минимуму.

Добавлено: Пн июл 28, 2008 14:22:32
Аксель
...Делал на компе эксперименты.
При включенном компе можно было перемычками уменьшать частоту системной шины без перезагрузки ОС (продолжало всё работать).
При увеличении частоты системной шины компьютер зависал.

МК конечно не ПК, :) но...

Добавлено: Пн июл 28, 2008 15:29:58
Morse
Вероятно, придётся отказаться от использования ADC в пользу компаратора, и использовать прерывания.

Добавлено: Пт авг 01, 2008 23:28:41
NiTr0
А все же чем режим Idle не устраивает? В нем-то только гасится клок на ядро и флэшку... Все остальные девайсы - функционируют, если включены... Соответственно, АЦП готов к работе... Задать максимальный делитель клока 128, на время преобразования - вгонять в ADC Noise Reduction спячку... По завершению - опять в Idle (ADC Noise Reduction - в нем из таймеров работает только таймер 2, если его хватит - можно и этот режим пользовать).

Добавлено: Сб авг 02, 2008 00:00:03
Mozart
а вы пробовали сделать внешний клок, и менять частоту внешнего клока самим процом???
External Clock
к примеру на кмоповской логике... и просто переключать резюки в цепи обратной свзяи...
правда проц будет подвисать.... как мне кажется...

Добавлено: Сб авг 02, 2008 23:51:58
DimonPhysic
Не увеличивать размеры девайса не выйдет, я в этом уверен. Но проще всего, мне кажется, заделать на ПЛИС два кварцевых генератора и коммутатор. Если генераторы синхронизовать по уму то подвисать не будет, на мелкой логике представляю, могу набросать. А вообще, сложный это путь, ИМХО. Проще спящий режим.

Добавлено: Сб авг 02, 2008 23:56:04
Mozart
имхо: человек хочет понижать частоту тактирования, пускай... пока шишек не набьёт ничего не получится...
он же не спросил как лучше сделать он спросил
Надо при исполнении программы менять тактирование с внутреннего генератора на внешний кварц и обратно
вот ему ответили что источник задаётся при программировании фьюзов, и второе управление внешним генератором. только ИМХО сомнительно это всё.

Добавлено: Вс авг 03, 2008 10:45:29
ARV
ничего не сомнительно: совсем недавно по такому принципу сплошь и рядом делали на PIC-ах... делали тактирование от RC-цепи и отдельным портом подключали к этой цепи дополнительный резистор... порт в третьем состоянии - одна частота, порт в нуле - другая... аналогично можно управлять и отдельным генератором - ничего подвисать не будет...

Добавлено: Вс авг 03, 2008 13:52:39
Aheir
Можно посмотреть в сторону интегральных генераторов. Недавно использовал LTC6907, там частота задается резистором, разные резисторы можно коммутировать полевиками. При использовании точных резисторов получается вполне пристойно, частоту держит. Габариты минимальны (корпус - шестиногий SOT)

Добавлено: Чт авг 07, 2008 01:18:25
Morse
Всем доброго времени суток. Вы дали много советов и много действительно дельных. К сожалению, использовать внешние генераторы и ПЛИСы не получится. Слишком большое потребление и габариты. Устройство над которым я сейчас работаю, будет питаться от одного элемента CR2477, и должно работать в течение не менее пяти лет, без замены элемента. Устройство состоит из аналоговой части, микроконтроллера, и радио канала. Аналоговую часть, а это усилитель заряда и три ФНЧ второго порядка, я ужал до 80 мкА, в рабочем состоянии. Контроллер придётся усыплять, и будить по таймеру или компаратору.

Добавлено: Чт авг 07, 2008 11:36:20
biDE
Morse писал(а): будет питаться от одного элемента CR2477, и должно работать в течение не менее пяти лет, без замены элемента
ИМХО планку слишком высоко взяли: емкость CR2477 =1000мАч и чтобы ее хватило на 5лет, нужно высасывать в среднем 22мкА :shock: , или я не прав?