arduino прошивка attiny13

Прошьем микросхему attiny13 на линуксе. C гитхаба качнем фреймворк Core13 https://github.com/orlv/at13/archive/master.zip

Папку core13 переносим в /usr/share/arduino/hardware/arduino/cores


sudo cp core13 /usr/share/arduino/hardware/arduino/cores

Фреймворк предоставляет следующее апи


map()
random()
randomSeed()
millis()
micros()
delay()
delayMicroseconds() *
analogRead()
analogWrite()
pinMode()
digitalRead()
digitalWrite()

В boards.txt добавляем новую плату attiny13.


attiny13.name=ATtiny13 (ATtiny13a)
attiny13.upload.using=arduino:arduinoisp
attiny13.upload.maximum_size=1024
attiny13.maximum_data_size=64
attiny13.upload.speed=19200
attiny13.bootloader.tool=arduino:avrdude
attiny13.bootloader.low_fuses=0x6a
attiny13.bootloader.high_fuses=0xFF
attiny13.bootloader.unlock_bits=0xFF
attiny13.bootloader.lock_bits=0xFF
attiny13.build.mcu=attiny13
attiny13.upload.tool=avrdude
attiny13.build.core=core13
attiny13.upload.verbose=true
attiny13.build.board=AVR_ATTINY13
attiny13.build.f_cpu=1200000L

Подготовительный этап завершен.
2-й этап. Теперь из платы arduino nano надо сделать программатор. Для этого открываем приложение arduino и в примерах ищем ArduinoISP. Должно быть такое


// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53 
// MOSI:        11:               51 
// MISO:        12:               50 
// SCK:         13:               52 
и т.д.

Выбираем плату Arduino nano 328, а программатор AVR ISP или AVRISP mkII.
Заливаем эту прошивку в нашу Nano. Готово! Наша ардуинка теперь программатор AVR ISP. Проверить это можно, подключив к 9 пину светодиод, он должен плавно мигать (blink).
3-й этап.

Подключаем пины к attiny13.
RESET — 10
GND — GND
VCC — 5V
SCK — 13
MISO — 12
MOSI — 11

Между reset и gnd желательно поставить слабенький конденсатор. Кто не в курсе, оранжевый мелкий капаситор не имеет полюсов, и ножки у него между собой не связаны. На VCC тоже можно повесить еще один, плюс резистор или светодиод.
4-й этап.
Проставляем fuse tiny13. Это и есть запись загрузчика. Делаем это с помощью avrdude. Нам нужны лишь low high фьюзы. Нижний ставим в 0x6A, для частоты 1.2 МГц.

Если хотим 9.6 МГц ставим 0x7A.


avrdude  -v -p t13 -c stk500v1 -P /dev/ttyUSB0 -e -U hfuse:w:0xff:m -U lfuse:w:0x6a:m  -b 19200

C baudrate можно поиграться, 9600, 14400, 28800.

Также bootloader можно прописать в IDE Сервис- Записать загрузчик.
Если выдало ошибку


avrdude: Expected signature for ATtiny13 is 1E 90 07
         Double check chip, or use -F to override this check.

проверьте провода и пины.
Ошибка


avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10

означает проблемы с самим программатором. Перепрошейте его.
Завершение. Плата t13 готова. Можно заливать туда скетчи. Если через arduino IDE не получается, можно через avrdude. Сделать это просто: в настройках IDE выбираем Показывать подробный вид при компиляции и загрузке. Так, при нажатии на «Проверить» скетч в консоли выдаст путь к скомпилированному hex бинарнику типа /tmp/build7166344483964498492.tmp/sketch_dec03a.cpp.hex

По историческим причинам является стандартом де-факто при прошивке разнообразных микросхем с памятью (микроконтроллеров, ПЗУ, EEPROM и т. п.)

Заливаем этот скетч


avrdude  -v -p t13 -c stk500v1 -P /dev/ttyUSB0 -b 19200 -e -U flash:w:/tmp/build3468589420345126132.tmp/sketch_nov26a.cpp.hex

Эту же команду можно получить в консоли при нажатии на Загрузить.


Размер скетча в двоичном коде: 386 байт (из 1 024 байт максимум)
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -pattiny13 -cstk500v1 -P/dev/ttyUSB0 -Uflash:w:/tmp/build7166344483964498492.tmp/sketch_dec03a.cpp.hex:i 

В итоге должны получить


avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9007 (probably t13)
avrdude: safemode: hfuse reads as FF
avrdude: erasing chip
avrdude: reading input file "/tmp/build7166344483964498492.tmp/sketch_dec03a.cpp.hex"
avrdude: input file /tmp/build7166344483964498492.tmp/sketch_dec03a.cpp.hex auto detected as Intel Hex
avrdude: writing flash (386 bytes):

Writing | ################################################## | 100% 1.05s

avrdude: 386 bytes of flash written

Leave a comment

Your email address will not be published.


*