Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
microcontrollers [2015/05/17 18:47] wombat створено |
microcontrollers [2015/11/25 00:27] (поточний) wombat Ссылки |
||
---|---|---|---|
Рядок 16: | Рядок 16: | ||
+ | ==== USBasp ==== | ||
+ | |||
+ | http://www.fischl.de/usbasp/ | ||
+ | |||
+ | ==== PonyProg ==== | ||
+ | |||
+ | [[ponyprog| PonyProg]] | ||
+ | |||
+ | |||
+ | ==== Arduino ==== | ||
+ | |||
+ | [[arduino|Arduino]] -- это очень популярная платформа для разработки устройств на базе микроконтроллеров AVR (в разных моделях встречаются микроконтроллеры ATMega328P, ATmega32U4, ATtiny85 и другие). | ||
+ | |||
+ | |||
+ | |||
+ | ===== Программное обеспечение ===== | ||
+ | |||
+ | Типичный набор инструментов для разработки программ на языке C для микроконтроллеров семейства AVR включает следующее: | ||
+ | |||
+ | * Компилятор avr-gcc | ||
+ | * Библиотеку C для AVR -- avr-libc | ||
+ | * Программатор avrdude | ||
+ | |||
+ | В операционной системе Debian GNU/Linux всё это есть в официальных репозиториях, поэтому установка стандартна: | ||
+ | |||
+ | sudo apt-get install gcc-avr avr-libc avrdude | ||
+ | |||
+ | ===== Последовательность действий ===== | ||
+ | |||
+ | Для того, чтобы загрузить собственную программу в микроконтроллер, необходимо: | ||
+ | |||
+ | **1.** [[avr-examples|Написать программу]] на языке C | ||
+ | |||
+ | **2.** Скомпилировать её командой | ||
+ | |||
+ | avr-gcc -g -Os -mmcu=atmega16 program.c -o program.bin | ||
+ | |||
+ | Здесь в параметре ''-mmcu'' указывается модель микроконтроллера. Список допустимых значений этого параметра можно узнать, выполнив ''avr-gcc --target-help'' | ||
+ | |||
+ | **3.** Сконвертировать в HEX-файл, подходящий для программатора: | ||
+ | |||
+ | avr-objcopy -j .text -j .data -O ihex program.bin programk.hex | ||
+ | |||
+ | **4.** Записать в микроконтроллер: | ||
+ | |||
+ | avrdude -c avr910 -P /dev/ttyACM0 -p m16 -U flash:w:program.hex:i -U lfuse:w:0xee:m -U hfuse:w:0xd9:m | ||
+ | |||
+ | Здесь параметры обозначают следующее: | ||
+ | |||
+ | ''-c avr910'' -- модель программатора | ||
+ | |||
+ | ''-P /dev/ttyACM0'' -- последовательный порт, через который подключён программатор | ||
+ | |||
+ | ''-p m16'' -- модель микроконтроллера ATMega16 | ||
+ | |||
+ | Эта команда записывает в микроконтроллер саму программу в HEX-формате (''program.hex'') и т.н. FUSE-биты, состоящие из младшего байта (''lfuse'') и старшего байта (''hfuse''). FUSE-биты((Существуют удобные калькуляторы FUSE-битов для разных микроконтроллеров -- [[http://www.engbedded.com/fusecalc/ | пример]])) устанавливают режим работы микроконтроллера, поэтому их можно записать при первом программировании, а затем изменять только основную программу. | ||
+ | |||
+ | ====== Ссылки ====== | ||
+ | |||
+ | [[https://learn.adafruit.com/usbtinyisp/avrdude | Using the USBtinyISP programmer with AVRDUDE]] | ||
+ | |||
+ | [[http://ladyada.net/learn/avr/programmers.html | AVR Tutorial: Choosing a programmer]] | ||
+ | |||
+ | [[http://ladyada.net/learn/avr/avrdude.html | AVR Tutorial: Starting out with avrdude]] | ||
+ | |||
+ | [[http://www.evilmadscientist.com/2007/using-avr-microcontrollers-minimalist-target-boards/ | Using AVR microcontrollers: Minimalist target boards]] | ||