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

 
 
> Изменение источника тактирования МК Atmega
mozg12342
сообщение Feb 22 2018, 09:38
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Добрый день!
Цель: заставить работать МК Atmega 8 на частоте генерируемой цифровым синтезатором частоты(AD9833). Микросхема после запуска не выдает сигнала на выходе, её нужно запрограммировать.
Предполагаемый алгоритм:
1. подключить к МК генератору тактового сигнала (в идеале - это внутренняя RC цепочка)
2. Инициализировать МК и залить код управления в микросхему-синтезатор
3. Переключить МК на другой источник тактового сигнала - микросхему синтезатор.
Вопрос: Возможно ли изменить FUSE биты, отвечающие за источник тактового сигнала в процессе выполнения кода.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
megajohn
сообщение Feb 22 2018, 09:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



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.


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
mozg12342
сообщение Feb 22 2018, 10:14
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Цитата(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 битами - возможно их изменить самим МК или нет. Мне для общего развития.
Go to the top of the page
 
+Quote Post
Den64
сообщение Feb 22 2018, 10:32
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



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

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

Могу посоветовать использовать например тини13 которая будет программировать синтезатор. На цене особо не скажется, и на потреблении.
Вопрос ещё что за изврат тактировать от синтезатора? В чём идея если не секрет?
Go to the top of the page
 
+Quote Post
mozg12342
сообщение Feb 22 2018, 12:09
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Цитата(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 биты при прошивке МК.

А можно заставить МК не выполнять никаких действий пару десятков тактов, для предотвращения сбоя при изменении тактовой частоты МК
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:51
Рейтинг@Mail.ru


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