Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменение источника тактирования МК Atmega
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
mozg12342
Добрый день!
Цель: заставить работать МК Atmega 8 на частоте генерируемой цифровым синтезатором частоты(AD9833). Микросхема после запуска не выдает сигнала на выходе, её нужно запрограммировать.
Предполагаемый алгоритм:
1. подключить к МК генератору тактового сигнала (в идеале - это внутренняя RC цепочка)
2. Инициализировать МК и залить код управления в микросхему-синтезатор
3. Переключить МК на другой источник тактового сигнала - микросхему синтезатор.
Вопрос: Возможно ли изменить FUSE биты, отвечающие за источник тактового сигнала в процессе выполнения кода.
megajohn
When applying an external clock, it is required to avoid sudden changes in the applied clock fre-
quency to ensure stable operation of the MCU. A variation in frequency of more than 2% from
one clock cycle to the next can lead to unpredictable behavior. It is required to ensure that the
MCU is kept in Reset during such changes in the clock frequency.
Smoky
Цитата(mozg12342 @ Feb 22 2018, 15:38) *
Вопрос: Возможно ли изменить FUSE биты, отвечающие за источник тактового сигнала в процессе выполнения кода.


В Си есть библиотека для работы с fuse битами, посмотрите её возможности.
mozg12342
Цитата(megajohn @ Feb 22 2018, 09:52) *
When applying an external clock, it is required to avoid sudden changes in the applied clock fre-
quency to ensure stable operation of the MCU. A variation in frequency of more than 2% from
one clock cycle to the next can lead to unpredictable behavior. It is required to ensure that the
MCU is kept in Reset during such changes in the clock frequency.

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

Цитата(mozg12342 @ Feb 22 2018, 10:04) *
Доходчиво, ну может попробовать синхронизировать фазу синтезатора и внешнего пускового генератора, подключить их одновременно, а потом отключить внешний генератор.

Придумал! можно все сделать за два запуска МК: при первом запуске МК будет запускаться от пускового генератора такта и прошивать синтезатор, затем реализовать схемотехнически сброс МК и одновременное переключение на другой источник такта.
Вопрос остался за fuse битами - возможно их изменить самим МК или нет. Мне для общего развития.
Den64
Цитата(mozg12342 @ Feb 22 2018, 13:14) *
Вопрос остался за fuse битами - возможно их изменить самим МК или нет. Мне для общего развития.

На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет.

Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении.
Вопрос ещё что за изврат тактировать от синтезатора? В чём идея если не секрет?
mozg12342
Цитата(Den64 @ Feb 22 2018, 10:32) *
На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет.

Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении.

Программируемый делитель - это fuse бит SCKDIV8 или предделитель таймера?
На счет тини13 приму во внимание, но хотелось реализовать на одном МК. Тут роль играет спортивный интерес.

Цитата(Den64 @ Feb 22 2018, 10:32) *
На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет.

Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении.
Вопрос ещё что за изврат тактировать от синтезатора? В чём идея если не секрет?

синтезатор может точно настроить частоту, но не может настроить скважность. МК поможет

Цитата(Smoky @ Feb 22 2018, 10:01) *
В Си есть библиотека для работы с fuse битами, посмотрите её возможности.

Прочитал, я так понял, что в документе показано как заставить avrdude программировать fuse биты при прошивке МК.

А можно заставить МК не выполнять никаких действий пару десятков тактов, для предотвращения сбоя при изменении тактовой частоты МК
Сергей Борщ
QUOTE (Smoky @ Feb 22 2018, 12:01) *
В Си есть библиотека для работы с fuse битами, посмотрите её возможности.
А потом посчитайте, через сколько включений ваше устройство вернется к вам на гарантийный ремонт из-за исчерпания количества перезаписей fuse-битов. И подумайте, готовы ли вы постоянно менять устройство по гарантии или все же лучше сразу заложить в устройство процессор, у которого переключение тактирования из программы - штатная, предусмотренная производителем операция.
Baser
ATmega8 довольно старый контроллер. Посмотрите на новые семейства любого производителя, они все позволяют на ходу менять тактирование: внешнее, внутреннее (резонаторы, программно подстраиваемые RC-генераторы), переключать встроенные делители, PLL-и и т.д.
mozg12342
Какие МК вы имеете ввиду? XMega?

Всем спасибо! за полученные знания. Решил остановиться на установке дополнительного MK Attiny13
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.