Как использовать контакты ATtiny, которые обычно «зарезервированы» для программирования микросхем?
Как запрограммировать ATtiny45 на использование контактов 1, 5, 6, 7 (т.е. PB5, PB0, PB1, PB2) в качестве входа или выхода?
pinMode(5, OUTPUT);
pinMode(0, OUTPUT);
pinMode(1, INPUT);
pinMode(2, INPUT);
digitalWrite(5, HIGH);
...
Эти выводы обычно используются для программирования самого ATtiny, так как же избежать конфликта?
Конечно, я мог бы просто обойтись без этих 4 контактов, но тогда, поскольку есть также контакты для VCC и GND, остались бы только 2 контакта: PB3, PB4!
Вопрос: как использовать контакты в качестве ввода/вывода, которые обычно используются для программирования ATtiny?
Связанный вопрос:
Должен ли я подключить контакты 1, 5, 6, 7 ATtiny к программатору
Или мне следует подключить контакты 1, 5, 6, 7, а также 8 и 4 (VCC и GND) ATtiny к программатору?
Если вторая пуля верна, при подключении VCC и GND не заставит ли ATtiny запускать ранее загруженный код?
@Basj, 👍0
Обсуждение2 ответа
Лучший ответ:
Чипы ATTiny, обычно используемые в платах типа Arduino, такие как Adafruit Trinket или Digispark USB, обычно имеют загрузчик, который запускается перед вашим собственным кодом. Загрузчик проверяет определенное состояние USB-порта платы, чтобы увидеть, не ожидает ли что-то записи новой программы в чип.
Загрузчик принимает новый код от главного компьютера, если он есть, и записывает его в определенное место во флэш-памяти. Если загрузчик не находит ничего, подключенного к USB-разъему, пытающегося загрузить новую программу, то он (загрузчик) начинает выполняться из флэш-памяти в том месте, где была сохранена ваша программа.
Но что, если вы хотите написать новый загрузчик или не иметь загрузчика? В этом случае вы можете написать новое программное обеспечение, используя выводы MOSI, MISO и SCK (часы), если вывод RESET замкнут на землю.
См.: http:// ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf#page=151
Чтобы использовать все 6 контактов без питания в качестве ввода-вывода для Trinket или Digispark, в чипе ATTiny установлен «предохранитель», который отключает нормальное назначение контакта RESET — удерживать чип в состоянии сброса. Это означает, что вы не можете отключить RESET и загрузить программу обычным способом.
Если контакт RESET отключен, а загрузчик отсутствует, то существует другой метод загрузки программного обеспечения, который называется "Последовательное программирование высокого напряжения". Не беспокойтесь, «высокое» напряжение составляет около 12 В.
См.: http:// ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf#page=155
Вы можете найти схемы или приобрести комплекты/продукты, позволяющие запрограммировать чип ATTiny в режиме HV в Интернете. Многие используют маленькие батарейки на 12 В "A23" или "A27", которые обычно используются в радиочастотных передатчиках дистанционного управления, чтобы получить сигнал 12 В для перевода микросхемы в высоковольтный режим программирования.
это похоже на ответ на другой вопрос ОП, @Juraj
Оба, кажется, связаны..., @jose can u c
Спасибо за ваш ответ!, @Basj
@Basj Если это ответ на ваш вопрос, отметьте его., @the busybee
Вы можете просто использовать все контакты, кроме контакта сброса (контакт 0). Когда вы хотите запрограммировать Attiny, вы просто подключаете программатор. Он сбросит Attiny через контакт сброса и переведет его в режим программирования ISP. В этот момент ваш код еще не запущен.
Примечание: Если вы хотите запрограммировать Attiny, пока он все еще находится в своей цепи, вы должны быть осторожны, чтобы подключенная цепь не мешала связи с ISP. Самый безопасный способ — отключить Attiny от его цепи, а затем запрограммировать его.
Также учитывайте связь с провайдером, нарушающую вашу подключенную цепь., @Gerben
На всякий случай: когда я использую Arduino Uno в качестве ISP-программатора для ATtiny, я обычно подключаю контакты 1, 5, 6, 7. Нужно ли мне также подключать VCC и GND ATtiny к VCC и GND Arduino Uno? Если да, то при подключении VCC и GND не заставит ли ATtiny запускать предыдущий код? (Я обновил вопрос в конце, чтобы включить это замечание)., @Basj
Да, вам также необходимо подключить GND и VCC. Если ваш проект ATTiny не имеет собственного источника питания/батарей (в этом случае вам все равно нужно подключить GND). Программатор потянет контакт сброса в НИЗКИЙ уровень, что остановит запуск вашей исходной программы и переведет ATTiny в «режим ISP»., @Gerben
- При использовании Arduino Uno в качестве ISP: "Yikes! Invalid device signature" - плохое соединение, неверную конфигурацию или неверную версию avrdude?
- Использование Arduino Nano для программирования (как ISP) автономного 328p
- Восстановить uint32_t из массива символов в RTC.set
- Как использовать любой модуль, у которого нет библиотеки для arduino?
- Использование внутреннего опорного напряжения для датчика
- Программирование barebone-системы ATMega328 с помощью внешнего программатора и без загрузчика
- Программирование AVR 32u4 через ISP с другим подключенным устройством ISP
- Я продолжаю получать этот статус выхода из ошибки 1, ожидаемый ';' до "DigiKeyboard"
Подсказка: они не *зарезервированы* для программирования. Они *двойные* как штифты для программирования., @Majenko