Прошил blink в 238p. Задержка увеличилась в 16 раз. Arduino as ISP

Тема в разделе "Микроконтроллеры AVR", создана пользователем saer, 19 июл 2016.

  1. saer

    saer Нуб

    Добрый!
    Есть УНО и Атмега328р.
    Уно настроен , как программатор ISP.
    Атмега чистая.
    В IDE указал :плата Ардуино МИНИ, процессор Атмега 328.
    Прошил блинк с делеем 1000 мкс. (загрузить через программатор)
    Блинк работает, но в 16 раз медленнее.
    Почему процессор работает медленнее?
    Как его ускорить до стандартных 16 Мгц?
    Схема включения проца:

    Новый точечный рисунок.jpg
     
  2. AlexU

    AlexU Гуру

    Один из вариантов -- "прилепить" кварц на 16 МГц к контроллеру. И правильные фьюзы прописать.
    Потому что по умолчанию фьюзы установлены такие, что контроллер работает от внутреннего генератора ~8 МГц, при этом используется деление частоты на 8. Вот и получается, что контроллер работает на частоте ~1 МГц.
     
    saer нравится это.
  3. saer

    saer Нуб

    Как это сделать с помощью Arduino IDE? это вообще реально?
     
  4. ZAZ-965

    ZAZ-965 Гуру

    @saer, попробуйте сперва прошить bootloader, по-моему, при этом устанавливаются нужные fuses
     
  5. AlexU

    AlexU Гуру

    С Arduino IDE стараюсь не связываться, но, если не ошибаюсь, вроде как Arduino IDE при заливке Bootloader'а прошивает нужные фьюзы. Но что и как конкретно в этой среде делается Вам придётся разбираться самому, если конечно не найдётся поклонник этой среды и не подскажет...

    А так 'avrdude' наше всё -- и фьюзы нужные прошить, и стереть, и залочить...
     
  6. ostrov

    ostrov Гуру

    IDE не меняет фьюзы и не прошивает тем более, но выставляет тактовую частоту на которую ориентируется таймер. Если она не совпадает с реальной, то время в МК течет либо быстрее либо медленнее настоящего. В этом случае надо влезть в конфигурационный файл, найти свою плату или чип и подправить частоту вручную.
     
  7. Unixon

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

    При заливке загрузчика она дергает avrdude с опциями на изменение фьюзов, иногда даже дважды, до и после. Команды можно посмотреть в логах.
     
  8. ostrov

    ostrov Гуру

    Не пользовался этим никогда, чему рад.
     
  9. Unixon

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

    Зря, полезное упражнение при слезании с Arduino IDE. :)
    Можно подсмотреть опции и вписать их себе в скрипты или настройки проекта в другой IDE.
     
    DIYMan нравится это.
  10. ostrov

    ostrov Гуру

    Мне проще и понятнее выставить фьюзы явно. Задаю в прграмме параметры, потом hex в прошивку вместе с фьюзами. И не важно на чем сделан hex, хоть в a IDE, хоть в AVRS, хоть еще в чем.

    С IDE слез, но все равно он мне нравится. :) В 95% случаев его вполне хватает.
     
  11. Unixon

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

    Как-то мне потребовалось воспроизвести процедуру заливки загрузчика отдельно от Arduino IDE. Так вот, некоторые опции avrdude оказались неочевидными для явного их выдумывания из головы.
     
  12. Securbond

    Securbond Гуру

    Фьюзы это конечно надо, но без внешнего кварца на 16 МГц ничего не получиться. Просто нужно изучить данный вопрос, в сети масса видео и статей, ничего там сложного нет (если не углубляться)
    Вот обвязка:
    image.jpeg
    Для опытов конденсаторами и некоторыми подтяжками (например Reset на vcc ) можно принебречь.
     
  13. saer

    saer Нуб


    Так и сделал. Все заработало. Спасибо!