Можно ли программировать ATTiny88 через I2C с Raspberry Pi?

Это похоже на Можно ли программировать микросхему AVR (atmega328p) через i2c?, но не совсем, и та тема немного скудна на подробности.

У меня есть ATTiny88, подключённый по I2C к Raspberry Pi, при этом Raspberry Pi выступает в качестве ведущего устройства. Система находится удалённо, но я могу связаться с Raspberry Pi через Wi-Fi. Обновлять ПО на Raspberry Pi, конечно, довольно просто, но было бы здорово, если бы я мог загружать скомпилированный файл из IDE на Raspberry Pi, а затем загружать его на ATTiny88 по I2C. Это упростило бы изменение прошивки и обновление Arduino.

, 👍0

Обсуждение

Какие результаты вы получили в ходе своего исследования?, @jsotola

Даже если это теоретически возможно, никаких инструкций вы не найдёте. Предполагается, что ATTiny88 программируется с помощью аппаратного обеспечения типа USBASP., @liaifat85

Имеет ли значение, что это I2C?, @timemage

на GitHub есть проект загрузчика I2C, @jsotola

Единственный результат, который я получил, — это то, что это возможно, но без подробностей я в тупике. Есть ли у вас ссылка на проект загрузчика I2C на GitHub? Звучит неплохо для начала., @LesRhorer

@liaifat85: Что я «должен» делать, не имеет значения. У меня есть Raspberry Pi, подключенный к Arduino, с которым я могу связаться и обновить его удалённо. Я могу легко настроить Raspberry Pi на автоматическое подключение к серверу при необходимости обновления. Если возможно обновить прошивку по I2C, то это хорошая идея. Физический доступ к Arduino будет проблемой, если устройство находится на другом конце света в руках человека, которого я никогда не встречал., @LesRhorer

@timemage: Ну, поскольку шина I2C — это то, с помощью чего Raspberry Pi взаимодействует с Arduino, то да, это имеет значение., @LesRhorer


2 ответа


2

Согласно техническому описанию:

Устройство обеспечивает самопрограммирующийся механизм загрузки и выгрузки программного кода самим микроконтроллером. Самопрограммирование может использовать любой доступный интерфейс данных и связанный с ним протокол для чтения кода и записи (программирования) этого кода. в память программы. Инструкция SPM по умолчанию отключена, но её можно включить, запрограммировав предохранитель SELFPRGEN (на «0»).

Похоже, это возможно. Для практического применения вам потребуется уместить код для самопрограммирования, а также код, выполняющий что-то полезное, в 8 КБ флеш-памяти.

Вам также потребуется каким-то образом организовать код, чтобы при перепрограммировании не стирать и не перезаписывать код во время процесса перепрограммирования.

Это может быть немного сложно реализовать, но не невозможно.

,

1

Если вы сейчас используете tiny с какой-нибудь библиотекой I2C, то эта библиотека, скорее всего, этого не позволит. Если вы хотите упростить задачу, рассмотрите её с другой точки зрения:

  • можно ли сбросить настройки Tiny с помощью интерфейса I2C? (совет: создайте регистр «Сброса»)
  • Можно ли использовать те же контакты для программирования микроконтроллера (но не через I2C, а через последовательный порт или SPI)?

Если вы сможете выполнить два вышеупомянутых подпроекта, то сможете добиться желаемого. Просто установите контакты на последовательный порт (или SPI) при запуске на несколько секунд, а затем переключитесь на I2C.

,