mozg12342 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба Добрый день! Цель: заставить работать МК Atmega 8 на частоте генерируемой цифровым синтезатором частоты(AD9833). Микросхема после запуска не выдает сигнала на выходе, её нужно запрограммировать. Предполагаемый алгоритм: 1. подключить к МК генератору тактового сигнала (в идеале - это внутренняя RC цепочка) 2. Инициализировать МК и залить код управления в микросхему-синтезатор 3. Переключить МК на другой источник тактового сигнала - микросхему синтезатор. Вопрос: Возможно ли изменить FUSE биты, отвечающие за источник тактового сигнала в процессе выполнения кода. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба 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 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба Вопрос: Возможно ли изменить FUSE биты, отвечающие за источник тактового сигнала в процессе выполнения кода. В Си есть библиотека для работы с fuse битами, посмотрите её возможности. ____3.zip Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба 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. Доходчиво, ну может попробовать синхронизировать фазу синтезатора и внешнего пускового генератора, подключить их одновременно, а потом отключить внешний генератор. Доходчиво, ну может попробовать синхронизировать фазу синтезатора и внешнего пускового генератора, подключить их одновременно, а потом отключить внешний генератор. Придумал! можно все сделать за два запуска МК: при первом запуске МК будет запускаться от пускового генератора такта и прошивать синтезатор, затем реализовать схемотехнически сброс МК и одновременное переключение на другой источник такта. Вопрос остался за fuse битами - возможно их изменить самим МК или нет. Мне для общего развития. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Den64 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба Вопрос остался за fuse битами - возможно их изменить самим МК или нет. Мне для общего развития. На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет. Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении. Вопрос ещё что за изврат тактировать от синтезатора? В чём идея если не секрет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет. Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении. Программируемый делитель - это fuse бит SCKDIV8 или предделитель таймера? На счет тини13 приму во внимание, но хотелось реализовать на одном МК. Тут роль играет спортивный интерес. На сколько я знаю менять, источник тактового сигнала из программы, нельзя. Можно только программируемым делителем уменьшить её. Возможно какие то новые меги и умеют, но мега8 точно не умеет. Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении. Вопрос ещё что за изврат тактировать от синтезатора? В чём идея если не секрет? синтезатор может точно настроить частоту, но не может настроить скважность. МК поможет В Си есть библиотека для работы с fuse битами, посмотрите её возможности. Прочитал, я так понял, что в документе показано как заставить avrdude программировать fuse биты при прошивке МК. А можно заставить МК не выполнять никаких действий пару десятков тактов, для предотвращения сбоя при изменении тактовой частоты МК Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба В Си есть библиотека для работы с fuse битами, посмотрите её возможности.А потом посчитайте, через сколько включений ваше устройство вернется к вам на гарантийный ремонт из-за исчерпания количества перезаписей fuse-битов. И подумайте, готовы ли вы постоянно менять устройство по гарантии или все же лучше сразу заложить в устройство процессор, у которого переключение тактирования из программы - штатная, предусмотренная производителем операция. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба ATmega8 довольно старый контроллер. Посмотрите на новые семейства любого производителя, они все позволяют на ходу менять тактирование: внешнее, внутреннее (резонаторы, программно подстраиваемые RC-генераторы), переключать встроенные делители, PLL-и и т.д. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 22 февраля, 2018 Опубликовано 22 февраля, 2018 · Жалоба Какие МК вы имеете ввиду? XMega? Всем спасибо! за полученные знания. Решил остановиться на установке дополнительного MK Attiny13 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться