Программирование ATtiny85 с Arduino-IDE и внешним генератором 8 МГц

У меня есть плата разработки digispark ATtiny85, и я использую Arduino IDE для ее программирования вместе с Arduino UNO в качестве аппаратного программатора.

Я успешно сжег предохранители для внутренней 1 и 8 МГц RC-генераторов с помощью оригинального Arduino в качестве ISP скетч (вы поймете, почему я сказал, что первоначально в минуту), но как мое приложение нуждается в точном времени, я хотел бы использовать внешний генератор, тем не менее, каждый раз, когда я пытался записать/программы загрузчика/предохранители с помощью Arduino IDE и с помощью оригинальной Arduino в качестве ISP, а в avrdude в косах печально известный (ой). Я искал в интернете и нашел обновленную версию Arduino в качестве ISP скетч, который должен обновленная версия, она имеет лишь один недостаток: она не может делать ничего другого, чем жечь/программы загрузчика/предохранителей, это означает, что оно не может быть использован для программирования ATtiny85 как и оригинальная Arduino в качестве поставщика услуг интернета мог сделать.

Поэтому, не колеблясь, я протестировал его, чтобы записать/запрограммировать загрузчик/предохранители для внутренних RC-генераторов 1 и 8 МГц, и он работал отлично, и, как и ожидалось, он не смог загрузить код. Но оригинальный Arduino as ISP успешно загрузил код. Когда я попытался записать/запрограммировать загрузчик/предохранители для внешнего кварцевого генератора 8 МГц, используя обновленный Arduino в качестве ISP, он работал безупречно... пока я не заметил, что обычный Arduino в качестве ISP больше не может загружать код, и мне представилась печально известная (Фу!) ошибка.

Позвольте мне подробно объяснить разницу в связях между этими двумя скетчами. Обновленный Arduino as ISP генерирует тактовый сигнал на pin #9, который подключается к CLKI ATtiny85 (он же Pin #2 "PB3"), в то время как оригинальный Arduino as ISP вообще не использует этот пин.

Я нашел обновленный Arduino как ISP на форуме по обмену электронными стеками, но, к сожалению, я потерял ссылку на вопрос, который содержал, почему этот обновленный Arduino как ISP лучше. Я могу предоставить оба кода, хотя, если кто-то нуждается в них.

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

Это печально известная (фу!) ошибка, о которой я говорил.

Это моя текущая проводка. Обратите внимание, что я подключаю pin #9 к CLKI ATtiny85 (он же Pin #2 "PB3"), только когда я использую обновленный Arduino в качестве ISP.

Это фактическая проводка.

Мои два вопроса:

  1. Как я могу записать/запрограммировать загрузчик/предохранители ATtiny85 для использования внешнего генератора 8 МГц или 16 МГц?
  2. Как я могу загрузить код своего приложения после записи/программирования загрузчика/предохранителей?

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

Заранее большое спасибо.

, 👍1

Обсуждение

Может быть, это просто потому, что я устал, но: Вы запрограммировали предохранители для использования с кристаллом. Разве вы не прикрепили кристалл?, @timemage

@timemage, хороший комментарий, я забыл упомянуть, что мой кристалл *подключен* в обоих случаях, записывая/программируя загрузчик/предохранители *и* при попытке загрузить мой код., @Abd-AlRahman Muhammad

Вы можете показать, как это подключено?, @timemage

@timemage, да, дайте мне 5 минут, чтобы загрузить надлежащее изображение, пожалуйста., @Abd-AlRahman Muhammad

@timemage, сообщение отредактировано., @Abd-AlRahman Muhammad

Я вроде как искал фотографию настоящей проводки. Но ваша схема ставит вопрос: у вас нет никаких конденсаторов нагрузки?, @timemage

@timemage, без проблем я могу загрузить изображение фактической проводки, извините за недоразумение. Но, чтобы ответить на ваш вопрос, если под нагрузочными конденсаторами вы подразумеваете конденсаторы, подключенные между контактами кристалла и землей, то нет, они оба отключены. Но если вы имеете в виду разделительные конденсаторы, подключенные между VCC и GND, да, они у меня подключены, один 0,1 мкФ, если быть точным., @Abd-AlRahman Muhammad

Давайте [продолжим эту дискуссию в chat](https://chat.stackexchange.com/rooms/122669/discussion-between-timemage-and-abd-alrahman-muhammad)., @timemage

@jsotola, мне жаль, я просто хотел охватить больше людей в разных областях. Теперь этот пост удален., @Abd-AlRahman Muhammad


1 ответ


Лучший ответ:

3

Если вы посмотрите на схему Digispark то увидите резисторы и стабилитроны подключенные к XTAL1 и XTAL2: Digispark Schematic with circuitry connected to XTAL1 and XTAL2 pins highlighted.

Они предназначены для USB-сигналов D+ и D - сигналов, которые выдает бит-бэнг Digispark. Я глубоко подозреваю, что кристалл просто не будет резонировать с этими соединенными частями.

Чтобы вернуться к работающему Дигиспарку, вам, вероятно, придется снова ввести сигнал на XTAL1 и перепрограммировать предохранители на внутренний OSC.

,

Спасибо, я рад, что вы попросили настоящую проводку. Могу ли я "теоретически" удалить резисторы R1 и R2, чтобы я мог это проверить? В проекте конечного пользователя будет использоваться не цифровой парк, а аттини из чистого металла на печатной плате., @Abd-AlRahman Muhammad

Да, это должно позволить вам использовать внешний кристалл. Хотя он больше не будет бит-бэнговать USB, но я подозреваю, что вы это понимаете., @timemage

Да, я понимаю, большое вам спасибо за то, что уделили мне время. Я попробую сделать то, что сказал, и перезвоню вам, если вы не возражаете. Спасибо., @Abd-AlRahman Muhammad

Может пройти несколько часов, прежде чем я увижу какое-либо обновление или отвечу на него., @timemage

Никаких проблем, не торопитесь., @Abd-AlRahman Muhammad

Это сработало, большое спасибо. Словами этого на самом деле не выразить., @Abd-AlRahman Muhammad

Возможно, было бы проще использовать голый пакет ATtiny85 DIL и линейный регулятор напряжения 5 В, но, похоже, вы больше ничего не используете в Digispark. Старый скетч "Arduino как провайдер" поддерживал три диагностических светодиода, которые были полезны. AVR-программаторы могут быть довольно недорогими - например, мне нравится [USB-AVR-программатор Pololu](https://coolcomponents.co.uk/products/pololu-usb-avr-programmer-v2-1) ([еще один](https://www.hobbytronics.co.uk/pololu-usb-avr-prog-v2)), @RedGrittyBrick