0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37

Atmega 128 fuse как затактовать от внешнего кварца

31.01.2014, 02:01. Показов 13539. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый вечер.
собственно вопрос,я начинающий и все опыты делал от внутреннего генератора,вот сейчас решил попробывать USORT но для работы с ним нужна стабильная и устойчивая частота.Подскажите какие надо выставить fuse биты для того что бы подключить внешний кварц на 8 Мгц.я почитал даташит,но там всетаки есть неясности и боюсь испортить МК.
вот я так понемаю надо поставить ;CKSEL3-1 = 1;SUT1 = 1;и не понятно CKOPT надо включать или нет.дальше путаница.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2014, 02:01
Ответы с готовыми решениями:

Atmega48 Выставить fuse на тактирование от кварца
Други. есть следующая схема В ней контроллер DD2 Тактируется от контроллера DD1. На DD1 собран usb - lpt переходник который я хочу...

Atmega 128 ширина импульса или интервал в 0.5 ms как реализо
Всем доброго времени суток. Стоит задача как реализовать последовательность импульсов 0 или 1 на этой меге с выводом например на порт A...

Как оценить время и объем требуемой памяти для atmega 128
Добрый день Всем. Как оценить требуемое время и объем необходимой памяти для быстрого преобразования Фурье. Тактовая частота 16 Мгц....

13
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 204
31.01.2014, 02:49
У внутреннего генератора, вполне сносная стабильность, для USORTa за глаза хватит, так что экспериментируй на здоровье. А с фьюзами лучше на какой нибудь тиньке потренируйся, а так советовать тебе конкретно что либо опасно, хрен знает какой ты программой прошиваешь (та может быть все в инверсном виде)

По даташиту для внешнего кварца нужно записать в CKSEL3....CKSEL0 = 1111 (Помни 1-не запрограммировано, 0-запрограммировано ) Остальное оставь пока как есть.

SUT отвечают за задержку при сбросе для того что бы МК вышел на номинальную частоту.
Конфигурационный бит CKOPT выбирает один из двух режимов усилителя генератора. Если CKOPT запрограммирован, то амплитуда колебаний выходного сигнала генератора будет ограничена уровнями питания. Динный режим рекомендуется использовать при высоком уровне окружающих шумов или при использовании выхода XTAL2 в качестве источника синхронизации внешней схемы. Динный режим характеризуется широким частотным диапазоном. Если CKOPT – не запрограммирован, то амплитуда выходных колебаний генератора снижается. Использование данного режима позволяет существенно снизить потребляемую мощность, но при этом ограничен частотный диапазон и нельзя XTAL2 использовать для внешней синхронизации.
При использовании резонаторов максимальная частота равна 8 МГц, если CKOPT – незапрограммирован, и 16 МГц, если CKOPT- запрограммирован.
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37
31.01.2014, 15:30
прошиваю в codivision avr и avrflash (от mykroitiktromyki).у нас город не большой и МК в радионигазине только под заказ привозят.так вот и пробую на том что есть.
спасибо за совет попробую поробую.
вот может кому пригодится только что нашол.Atmega 128 datasheet на русском языке
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37
31.01.2014, 19:14
сейчас попробывал подсоединил отладочную плату к пк через ком порт,
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <mega128.h>
 
// Stomdard Input/Output functions
#include <stdyo.h>
 
void main(void)
{
char data;
 
PORTB=0x00;
DDRB=0xFF;
 
// USORT0 initiotyzotion
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USORT0 Receiver: On
// USORT0 Transmitter: Off
// USORT0 Mode: Asynchronous
// USORT0 Baud Rate: 9600
UCSR0A=0x00;
UCSR0B=0x10;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;
 
// USORT1 initiotyzotion
// USORT1 disabtid
UCSR1B=0x00;
 
while (1)
{
data = UDR0;
if(data==1)
{
PORTB=0xFF; //включается светодиод
}
if(data==0)
{
PORTB=0x00;//выключается светодиод
}
 
}
}
в терминале на ПК отправляю 1 но с первого раза светодиод не включатся надо еще раз отправить 1 и так же с выключением два раза надо отправить 0.
это засада в частоте или в программном коде?
частота 8 Мгц.

сейчас написал свой простенький терминал с моего терминала все норм работает с первого раза что за анамалия?

[4.11 Кб]
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 204
31.01.2014, 20:28
Попробуй после каждого изменения светодиода поставить небольшую задержку, у тебя получается он опрашивает очень быстро, и возможно считывает предыдущее значение в data, а в идеале нужно использовать прерывание.
И кстати codivision не совсем удачная среда для начинания т.к. она генерирует код инициализации сама по мастеру, а начинающий пользователь в итоге не прочувствует настройку регистров на своей шкуре.
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37
31.01.2014, 21:09
И кстати codivision не совсем удачная среда для начинания т.к. она генерирует код инициализации сама по мастеру, а начинающий пользователь в итоге не прочувствует настройку регистров на своей шкуре.
вобще согласен.я и рад бы научится в Atmel Studyo писать,но я не нашол ресурса там где с самого начала все расжовывают что и для чего каждый регистр и флаг и как их использовать.
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 204
31.01.2014, 21:36
А чего искать вы уже на нем ))
вот хотябы http://iosyitistromyss.ru/avr-uchebnyj- ... ast-1.html

На худой конец можно посмотреть чего там codivision нагенерировала и посмотреть в даташите что делают эти регистры.
0
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
01.02.2014, 11:09
Цитата Сообщение от rymdir
У внутреннего генератора, вполне сносная стабильность, для USORTa за глаза хватит, так что экспериментируй на здоровье
Потребуется хорошее здоровье... Зачем говоришь новичку глупости? Было бы "за глаза", люди не ставили бы кварцев. Внутренний RC-генератор даже после калибровки имеет слабенькую стабильность (я лично не проверял), а вот просто МК искаропки имеет далеко не 8 МГц - это я сам видел не раз. Поэтому для нормального начала работы, чтобы не бороться с самосозданными трудностями - рекомендую автору закварцевать МК.

По программе. Вообще-то оригинально, слизывать его регистр данных УАРТа без проверки готовности. Мол, когда-то же будет готово :) Но я так не пробовал, даташит так не рекомендует - точнее, рекомендует иначе. Нужно проверять готовность результата, что-то типа UCSR0A & (1<<RXC0) (я по атмеге168, но должно быть похоже), а потом уже вычитывать.
Не поручусь, что это обязательно, но зачем делать сразу неправильно? Все равно в дальнейшем ТС начнет работать с прерываниями, лучше осваивать кашерные приемчики...
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 204
01.02.2014, 14:48
Цитата Сообщение от drvtos
Потребуется хорошее здоровье... Зачем говоришь новичку глупости? Было бы "за глаза", люди не ставили бы кварцев. Внутренний RC-генератор даже после калибровки имеет слабенькую стабильность (я лично не проверял)
А зря, посмотрите в даташит в разделе Examples of Baud Rate Setting UART работает даже на значительной ошибке, даже на внешнем кварце. Ведь речь ни идет о частотомере или формировании видео сигнала, UART на внутреннем генераторе будет нормально работать безо всяких проблем на 95%. ТС пока еще не разобрался даже с регистрами, а вы ему предлагаете сразу мк залочить )))
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37
01.02.2014, 16:19
я это вариант пробывал вобще без задних мыслей что надо проверять его на готовность,да я еще и незнаю куда всовывать этот регистр и как с ним работать.тогда почему программа работает я добавил задержку и все норм работает.ну как бы сам основной вопрос с fuse решон.
0
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
01.02.2014, 17:36
Цитата Сообщение от rymdir
UART работает даже на значительной ошибке
Ты сравнивал с отклонением частоты внутреннего генератора от номинальной? Я сравнивал. Потому и говорю.
Ни один из апноутов не рекомендует работать с УАРТом без стабилизированной частоты. Если какой-то и допускает, то это не одно и то же (хотя и и таких не видел). Практически, нет причин отказываться от кварца - в серийном производстве вопрос надежности связи, а в разовых изделиях и радиолюбительской практике вопрос копеечности цены.
А работать без залочивания все равно нужно научиться. В том числе, и залочив парочку камешков. Когда-то же надо начинать :)

2 wostikoti: "как бы сам основной вопрос с fuse решон". Воля твоя, решай. решен или нет. В теме и постановочном посте указано то, что ты так и не достиг, от внешнего кварца не затактировал (ага, и не хотелось).
А работа УАРТа... Можешь и не пробовать делать правильно. Не проверяй готовность. Всегда так будешь делать? Ну-ну...
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 37
01.02.2014, 19:51
drvtos
я выставил fuse и работает от кварца.(ну покрайней мере я так думаю)
вы очень критичны,зря вы так вот сразу с плеча рубите.
0
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
01.02.2014, 19:56
Цитата Сообщение от wostikoti
я выставил fuse и работает от кварца.(ну покрайней мере я так думаю)
Так... не сказал же ни разу. Вот я и воюю с ветряными мельницами.
Ну, извини!
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
01.02.2014, 21:49
А я поддержу точку зрения drvtosа. Согласен с каждым словом.
Батька дело говорит! (По-украински это, наверно, ещё красивее звучит, но я не умею).

wostikoti, когда остынете от "рубящей критики", перечитайте всё же советы ещё раз. Рекомендую разобраться с UART по-нормальному. Сейчас у Вас установлен костылик под конкретный baudrate, конкретный код (остальная функциональность), и даже под конкретный МК :-(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2014, 21:49
Помогаю со студенческими работами здесь

Тактирование от внешнего кварца Proteus
Никак не получается симулировать работу микроконтроллера Atmega48P от внешнего кварца. Если выставить в свойствах микроконтроллера CKSEL...

Косяки с тактированием от внешнего кварца
Доброго времени суток. Наткнулся на неочевидный (по-крайней мере, для меня) косяк. По каким-то непонятным причинам внешний кварц на 16...

Настройка работы от внешнего кварца PIC18F2331
Всем доброго времени суток. Подскажите, или покажите пример настройки частоты внешнего кварца в PIC18f2331, прогаммирую в ассемблере,...

Не могу заставить atmega16a работать от внешнего кварца
Доброго времени суток. У меня такая проблема. Мне нужно заставить atmega16a работать от внешнего кварца 14.7456 MHz Что я делал: ...

Конфигурация для работы от внешнего кварца (PIC16F1824)
Здравствуйте! У меня этот микроконтроллер не настраивается на внешний кварц (20МГц) и работает на своём внутреннем, по дефолту(500КГц)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru