Загрузка .hex в ATTiny13 с помощью Arduino

Я хочу загрузить .hex в ATTiny13V (или '13A) с помощью Arduino Uno R3. Я думаю, что знаю все, что нужно делать, но поддержка ATTiny13 ISP и Arduino IDE немного поисковые, и у меня есть некоторые серые области в моем понимании того, как все это работает вместе.

Я попал сюда:

-Найти Instructable, который сделал что-то, что мне понравилось, и там используется ATTiny13V, .hex для загрузки и исходный код C, если я хочу изменить исходный код. Прямо сейчас мне не нужно изменять исходный код, подойдет и доступный .hex.

- Затем я искал способ программировать AVR из OS X. Это кажется небольшой проблемой, многие аппаратные средства программатора AVR прекрасно работают под Windows, но, похоже, имеют неоднозначные результаты под OS X. Я видел, что для этого можно использовать Arduino. под OS X.

-Я искал Arduino на местном сайте Craigslist, кто-то продавал Uno R3 с некоторыми дополнительными функциями по отличной цене, и вот мы здесь. И теперь у меня есть еще много проектов, которые я хочу завершить!

Я использую Arduino 1.6.10 (из .cc, а не из .org).

Я читал на stackexchange и других ресурсах, что core13 smeezekitty работает с ATTiny13. elabz.com/arduino-shrunk-how-to-use-attiny13-with-arduino-ide/

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

Нужны ли мне вообще файлы ядра ATTiny13, если я правильно подключу контакты между '13 на макетной плате и Arduino (как здесь: https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829 ).

Я действительно не понимаю, что делает для меня Arduino IDE/загрузчик в качестве уровня абстракции. Нужен ли мне загрузчик, если я не использую какие-либо специфичные для Arduino команды более высокого уровня на чипе? КАК насчет основных файлов для ATTinyanything и, в частности, для ATTiny13?

Шестнадцатеричный файл и исходный код C, которые я буду использовать, находятся здесь: http://www.instructables.com/id/Programmable-LED/ Следующим моим шагом будет изменение исходного кода. Исходный код C выглядит так, как будто он ссылается на некоторые заголовочные файлы, специфичные для AVR. Я вижу, что ArduinoIDE использует avrdude, так что, может быть, что-то все равно скомпилируется?

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

Спасибо за вашу помощь - я не выше шаг за шагом.

Основной вопрос 1. У меня есть файл .hex, Arduino и IDE 1.6.10, OS X, макетная плата и полезные компоненты. Что мне нужно сделать, чтобы поставить шестнадцатеричный код на этот ATTiny13?

Основной вопрос 2. Отправная точка для взятия исходного кода C, на который я ссылался, его небольшой настройки, создания шестнадцатеричного кода и его загрузки. Я не против перенести его в скетч, если это необходимо, но мне было бы полезно узнать, как это работает, прежде чем переходить в среду IDE.

У меня небольшой опыт работы с программным обеспечением, и мне удобно брать этот исходный код C, вносить изменения и компилировать (при условии, что я могу найти необходимые файлы .h), но я впервые работаю с любыми мультипроцессорами.

, 👍2


1 ответ


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

1

Ваш компьютер не может общаться напрямую с ATtiny. Вам нужен кусок интерфейсное оборудование между ними. Это называется ICSP (или ISP). программист. Вам также необходимо программное обеспечение для управления программатором, обычно аврчувак.

Если у вас нет программатора, вы можете купить его (у меня был успех с некоторые очень дешевые USBASP), или вы можете запрограммировать Arduino Uno, чтобы он вел себя как программатор ISP. Вы делаете это, загружая в Arduino программа под названием ArduinoISP, как описано в руководстве Использование Arduino как ISP AVR (внутрисистемный Программист). Вы будете обычно используют Arduino IDE и ядро Arduino для Uno, чтобы скомпилируйте и загрузите ArduinoISP в свой Uno. Как только это будет сделано, вы сможете используйте Arduino в качестве программатора и запишите свой .hex в свой ATtiny.

Если вы хотите скомпилировать свои собственные программы для ATtiny, вам потребуется компилятор avr-gcc и avr-libc. Они идут в комплекте с Arduino IDE, так что они у вас уже есть. Вам понадобится ядро Arduino для ATtiny только, если вы хотите использовать API и библиотеки Arduino. В противном случае вы можете писать простые программы на C, отмечая что-то еще, кроме avr-libc и avr-gcc.

Правка: чтобы скомпилировать простую программу на C, вы можете ввести что-то вроде это:

avr-gcc -mmcu=attiny13a -DF_CPU=1200000 -Os -Wall -Wextra flickled.c -o flickled.elf
avr-objcopy -O ihex flickled.elf flickled.hex

Это предполагает, что ваш исходный файл называется flickled.c и ваш ATtiny работает на частоте 1,2 МГц.

,

Это сработало отлично, я запрограммировал как .hex, так и новые скетчи в ATTiny13, используя Uno в качестве интернет-провайдера. Спасибо!, @TooManyHandles