Как правильно задать частоту для attiny в proteus?

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 10
Зарегистрирован: Сб июл 12, 2014 13:49:11

Сообщение fastbub123 »

Кто может подсказать как правильно поставить тактовую частоту для attiny85 в proteus? Мне нужно 8MHz от внутреннего RC генератора.
При параметрах как на скрине, у меня светодиод мигает каждые 30ms вместо 1000.
В параметрах платы(Arduino IDE) стоит 8MHz internal oscillator, BOD disabled.
Вложения
Blink.cpp.hex
(2.07 КБ) 575 скачиваний
IMG__201607185__015541.jpg
(86.51 КБ) 815 скачиваний
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1663
Зарегистрирован: Вт апр 03, 2012 20:36:41
Откуда: Сочи

Сообщение Enigm »

CLKDIV У вас как ?
Должно совпадать.
И да времнные промежутки лучше на графиках проверять.
И толку нам от вашей пршивки, как мне ее проверять без схемы ?
Так что давайте проект протеуса.
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 281
Зарегистрирован: Пт ноя 15, 2013 20:58:23

Сообщение Halex »

fastbub123 писал(а): Мне нужно 8MHz от внутреннего RC генератора.
В исходном состоянии (заводская поставка МК) он сконфигурирован следующим образом:
фьюз пределетеля CKDIV8=0 (включён), CKSEL=0010 (внутренний RC генератор 8МГц), SUT=10 (6 тактов выхода из Power-Down и 14 тактов+4мсек из Reset). Ну и самое важное: в регистре CLKPR биты CLKPS=0011 (делитель на 8 ), т.е. фактически вместе с фьюзом CKDIV8 уже с завода вы получаете реальную тактовую 1МГц. Аналогично и в модели Протеуса. В свежевынутой из библиотеке тиТьке85 CKDIV8=0, а CLKPS=0011. Если Вы просто выбираете CKSEL=0010, то получаете полностью заводской вариант поставки с 1МГц тактовой. Если Вы в свойствах модели изменили CKDIV8 в 1 (ваш скриншот), то CLKPS автоматом обнуляются и Вы получили 8МГц тактовой.
Кстати, при выборе внутреннего RC в строке Clock Frequency частоту можно и не прописывать. Там она задаётся для кварцованных и внешних вариантов. И ещё - не обязательно там было долбить кучу нулей. Для 8МГц там достаточно прописать 8M (или 8MHz) - Протеус поймёт и то и это.
Теперь, что касается несовпадения дурдуины. Пёс его знает, что там наколбасено (не пользуюсь), но скорее всего дурдуинистый код ориентирован под заводские настройки, т.е. внутренний RC 8МГц с включённым делителем на 8. Тогда период сигнала на выходе PB4 получается около 500мсек - это уже ближе к истине. Дальше уже надо смотреть - чё там дурдуинится не так. Вообще из ЯВУ точные выдержки времени без использования встроенных таймеров получить практически невозможно, поскольку компилятор переиначит всё по своему и в меру своей испорченности. Это не ассемблер, где всё можно просчитать с точностью до такта. Тут и оптимизация скажется, да и прочие навороты компилятора.
Теперь пару слов по поводу "горячо и активно помогающих"...
Enigm писал(а):CLKDIV У вас как ?
А чё на скриншоте в первом посте без телескопа не видно???
Enigm писал(а):И толку нам от вашей пршивки, как мне ее проверять без схемы ?
Так что давайте проект протеуса.
Проект на "ногодрыг"??? Оригинально!!! Да всегда пожалуйста, я за автора приложу. Очень сложная схема, без пузыря валерьянки и не разобраться.
PS Упреждающий "контрольный выстрел в голову". CKOUT в Протеусе НЕ РАБОТАЕТ! А то начнутся ещё "рассуждения" по этому поводу. ТС опрометчиво использовал выход PB4, а он как раз совпадает. Так что фьюз есть, а толку нет.
Вложения
Nogo_dryg.rar
(11.52 КБ) 198 скачиваний
Ответить

Вернуться в «AVR»