Как настроить ATTiny861A-PU для прошивки с помощью Arduino Uno?

Я нашел инструкции для 8-pin Tiny, но не нашел инструкций для моего 20-pin. Как настроить этот чип на макетной плате для загрузки с помощью Arduino?

, 👍-1

Обсуждение

Сначала вам нужно найти (или внедрить) ядро Arduino для MPU. После этого наступает легкая часть — перепрошивка устройства., @Mikael Patel

@Bookshire Вы «определили» attiny для Arduino IDE? Вы установили [ATTiny Core](https://github.com/SpenceKonde/ATTinyCore)?, @ElectronSurf


1 ответ


0

Принцип тот же, это всего лишь ISP (в системном программировании), и ничем не отличается от любого другого микроконтроллера, использующего ISP. Посмотрите описания используемых контактов для 8-контактного Attiny, затем соедините контакты с таким же описанием на 20-контактном чипе.

А именно вы должны подключить контакты MOSI, MISO, SCK, RESET, VCC и GND. MOSI и MISO — это линии данных, SCK — тактовый сигнал. Если вы посмотрите на схему расположения выводов или, что еще лучше, на схему расположения выводов в даташите на микросхемы, вы увидите выводы, обозначенные таким образом. Остальные пины говорят сами за себя.


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

У Atmega328p на Uno нет встроенного интерфейса USB. Так что для того, чтобы подключить его через USB к ПК, на Uno есть еще один микроконтроллер (на оригинальной плате Atmega16U2), который имеет родной интерфейс USB. Этот микроконтроллер является посредником между Atmega328P и ПК. Он подключается к последовательному (UART) интерфейсу 328P и преобразует его в USB-соединение.

Каждый раз, когда на ПК открывается соответствующий последовательный порт, ПК отправляет сигнал DTR, который подключается к контакту сброса 328P. Итак, когда Arduino IDE пытается подключиться к последовательному порту для прошивки Attiny, Uno сбрасывается и, следовательно, не может прошить Attiny.

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

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

,

Делал по инструкции на сайте ардуино. Я использовал «старый стиль» при их подключении. Сначала я загружаю скетч, а затем использую загрузчик записи. Это ошибка, которую я получаю: avrdude: stk500_recv(): программатор не отвечает avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x00 avrdude: stk500_recv(): программатор не отвечает, @Bookshire

Что вы подразумеваете под "старым стилем"? Ошибка показывает, что у вас проблема с программатором, а не с прошиваемым чипом. Я предполагаю, что вы хотите использовать Arduino в качестве программатора ISP. Вы загрузили на него скетч ArduinoISP, прежде чем пытаться прошить ATtiny? Также у вас есть конденсатор между сбросом и землей Arduino?, @chrisl

Старый стиль — домашняя страница Arduino, объясняющая настройку, использует эту терминологию. Используйте Arduino в качестве интернет-провайдера — да, вы правы. Вы загрузили скетч? - Да, я загружаю скетч в свою Arduino, прежде чем пытаться прошить. Есть ли конденсатор между сбросом и GND? - Нет, не добавлял. Я следую инструкциям с домашней страницы Arduino. Какой емкости должен быть конденсатор?, @Bookshire

Какой тип Arduino вы используете в качестве программатора? Конденсатор важен для всех Arduino, у которых нет родного интерфейса USB (например, Uno или Nano). [Этот сайт Arduino](https://www.arduino.cc/en/Tutorial/ArduinoISP) указывает для него 10 мкФ. Я успешно использовал 47 мкФ для прошивки Attiny., @chrisl

Я использую Ардуино Уно. У меня нет конденсаторов таких размеров, поэтому мне придется попробовать этот подход в другой раз., @Bookshire

Я ценю дополнительную информацию о том, почему это необходимо, спасибо. Я нашел один со значением 22 мкФ / 25 В. Будет ли этого достаточно?, @Bookshire

Да, это должно сработать. Если это электролитический конденсатор, обязательно используйте правильную полярность., @chrisl

Ну, по крайней мере, теперь я получаю другое сообщение об ошибке. avrdude: попытка stk500_getsync() 10 из 10: не синхронизировано: resp=0x20, @Bookshire