Внешнее тактование attiny85

Тема в разделе "Микроконтроллеры AVR", создана пользователем DrProg, 29 сен 2015.

  1. DrProg

    DrProg Вечный нерд

    Или я слепой, или об этом нет полной информации в доступном виде. Задача: повысить частоту работы 85 с 1МГц, хотя бы до 8 потеряв при этом минимум ног. Как это сделать?
     
    Последнее редактирование: 29 сен 2015
    ИгорьК нравится это.
  2. ИгорьК

    ИгорьК Гуру

    Чтобы повелевать и этим модулем, не нужны ни зрение, ни информация.
    Нужно сделать лишь заклинание: Эй! AVRDUDE -U lfuse:w:0x62:m -U hfuse:w:0xdf:m
    А если у модуля в услужении волшебный кристалл и пара конденсаторов, то заклинание будет таким: AVRDUDE -U lfuse:w:0x4e:m -U hfuse:w:0xdf:m
     
  3. DrProg

    DrProg Вечный нерд

    Спасибо, но первое заклинание стоит по умолчанию, это и есть внутренний таймер 1МГц. Вопрос был собственно по второму заклинанию, точнее по схеме подключения кварца, а не по фьюзам.
     
    ИгорьК нравится это.
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Чтобы потерять меньше ног, подключайте не резонатор, а генератор - ему нужна только одна нога.
     
    DrProg нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Хм... Тогда попробуйте такое: AVRDUDE -U lfuse:w:0x62:m -U hfuse:w:0xdf:m
    Или выберите другое из книги заклинаний.
    А чем внутренний осциллятор на 8 Мгц плох?
     
  6. Megakoteyka

    Megakoteyka Оракул Модератор

    Ну это если 8 МГц вдруг не хватит. А еще генератор точнее, чем RC-цепочка, иногда это важно.
     
    DrProg нравится это.
  7. ИгорьК

    ИгорьК Гуру

    И, уважаемый, неправда ваша. По умолчанию другие свойства. Вот что сказал Визирь:
    22222.png
    И подтвердил:
    22223.png
     
  8. AlexU

    AlexU Гуру

    Могу ошибаться, но в документации на ATtiny85 (http://www.atmel.com/Images/Atmel-2...ller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf) написано следующее:
    Что это за внутренний таймер 1МГц?
    Или я не ту документацию смотрю?
     
  9. DrProg

    DrProg Вечный нерд

    Вот за это спасибо!
    Вообще внутренний 8, но включен делитель на 8 и становится 1. Не знаю стоит ли пробовать выключать делитель? Там все выглядит хрупко.
     
    ИгорьК нравится это.
  10. AlexU

    AlexU Гуру

    Да, действительно в документации нашлась такая информация, что по-умолчанию используется деление на 8.
    Если у Вас каждая нога на счету, то скорее лучше выключить делитель, чем занимать ногу для внешнего тактирования.
     
  11. DrProg

    DrProg Вечный нерд

    Напрашивается вопрос: чем чревато? Зачем он вообще нужен, этот делитель, если без него быстрее?
     
    ИгорьК нравится это.
  12. AlexU

    AlexU Гуру

    В документации:
    А вот на этот вопрос пока не могу ответить.
     
    DrProg нравится это.
  13. DrProg

    DrProg Вечный нерд

    Все заработало на 8МГц, разница заметна невооруженным глазом. Спасибо за наводку! Такая скорость уже вполне достаточна для требуемых задач.
     
    ИгорьК нравится это.
  14. Megakoteyka

    Megakoteyka Оракул Модератор

    Чем ниже тактовая, тем меньше энергопотребление.
    Ничем не чревато. Контроллеры AVR можно тактировать сколь угодно медленно.
    Можно даже при помощи рук и кнопки выдавать такты и все будет работать.
     
  15. DrProg

    DrProg Вечный нерд

    Ну вот будем знать, что по умолчанию частота выставляется на режим энергосбережения. При питании от сетевого источника смысла в экономии нет, но скорость поднять без усложнения устройства весьма и весьма полезно.

    Ну вот первый наглядный пример: таймер обратного отсчета на макетке 1МГц и в готовом виде 8МГц, на видео хорошо видно мерцание в первом случае и его отсутствие во втором.


     
    Последнее редактирование: 30 сен 2015
    ИгорьК нравится это.
  16. Megakoteyka

    Megakoteyka Оракул Модератор

    Чтобы поднять скорость, нужно первым делом выбросить ардуиновскую библиотеку и работать с регистрами.
    Но на практике ардуино редко используется для задач, требующих высокой производительности. Опрашивать датчики и щелкать релюшкой можно и на тактовой 1 МГц.
     
    DrProg нравится это.
  17. DrProg

    DrProg Вечный нерд

    В примере выше вряд ли удалось бы избежать дрожания даже используя работу с регистрами напрямую. Основная деятельность там вывод байтов на 595.
    Но в каких то случаях действительно нет смысла увеличивать частоту. Опять же поднять ее при необходимости полезное умение.
     
    ИгорьК нравится это.
  18. Megakoteyka

    Megakoteyka Оракул Модератор

    Вы увеличили частоту всего в 8 раз. А запись в регистры без библиотек ускорит работу программы в десятки-сотни раз. Так что полезно знать оба способа.
     
    DrProg нравится это.
  19. DrProg

    DrProg Вечный нерд

    Вы про FastIO? К сожалению, для tiny не нашел, а напрямую с командами процессора работать пока не пробовал. Если же вы про работу с портами путем засылания туда битов, то я не заметил что это ускоряет работу в сотни раз. Замедляют написание кода и затрудняют его понимание, это вот да.

    В скетче по сути shiftIn() только и крутится, причем я эту функцию сделал по своему, но с использованием digitalWrite(), если переписать, например, через PORTA = ххх, будет намного ли быстрее?
     
    Последнее редактирование: 30 сен 2015
    ИгорьК нравится это.
  20. Megakoteyka

    Megakoteyka Оракул Модератор

    А вызовы delay при этом присутствовали?