Загрузка .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), но я впервые работаю с любыми мультипроцессорами.
@TooManyHandles, 👍2
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 МГц.
- В чем разница/связь между Arduino и AVR?
- Как преобразовать скетч примера Arduino в полный проект C++?
- Не удается записать загрузчик через Arduino Nano clone ISP в atmega328p
- Поскольку double и float представляют один и тот же тип данных (обычно), что предпочтительнее?
- Как создать задержки на языке ассемблера AVR
- Программирование микроконтроллера Attiny85 без arduino
- AVR (Arduino Uno) Serial.print и Serial.println печатают только 1 или 2 символа
- Прерывание переполнения таймера AVR не работает
Это сработало отлично, я запрограммировал как .hex, так и новые скетчи в ATTiny13, используя Uno в качестве интернет-провайдера. Спасибо!, @TooManyHandles