сайт для палких паяльників

А почему не попробовать прошить мою ATmega с помощью Raspberry Pi, используя его как программатор? Такая мысль пришла мне в голову, когда я сделал небольшую плату расширения для Raspberry Pi. У Raspberry Pi есть протокол SPI, поэтому это вопрос исключительно программного плана. Я сразу установил свой любимый Avrdude. О Avrdude для Windows я уже писал в статье AVRDUDE Windows. Но стандартный Avrdude не знает о ноги SPI, поэтому, немного покопавшись в Интернете, нашел рецепт. Существует проект https://github.com/kcuzner/avrdude, в котором avrdude допилили для Raspberry Pi.

Перед тем как начать превращение Raspberry Pi в AVR-программатор, надо убедиться что SPI на вашем Raspberry Pi работает. Проверяем файл /etc/modprobe.d/raspi-blacklist.conf
Строки касающиеся SPI, должно быть заремлены. Пример файла/etc/modprobe.d/raspi-blacklist.conf:

#blacklist spi-bcm2708
blacklist i2c-bcm2708

Клонируем проект avrdude:

git clone https://github.com/kcuzner/avrdude

Для того, чтобы его скомпилировать avrdude устанавливаем следующие пакеты:

sudo apt-get install bison
sudo apt-get install autoconf
sudo apt-get install flex

Возможно придется установить make и gcc если у Вас еще нет:

sudo apt-get install make
sudo apt-get install gcc

Запустим bootstrap. Если ему чего-то не будет хватать, он скажет:

cd ./avrdude/avrdude
./bootstrap

Если все в порядке, компилируем и устанавливаем avrdude:

./configure
make
sudo make install

После инсталляции avrdude посмотрим что он умеет:

avrdude -c ?type

В списке программаторов должны увидеть linuxspi – это то, что нам нужно.

Подключаем микроконтроллер к Raspberry Pi по следующей схеме:

Vcc -> +3.3
GND -> GND
Reset -> GPIO25
SCK -> SCLK
MISO -> MISO
MOSI -> MOSI

Здесь надо заметить, что микроконтроллеры, которые Вы собираетесь программировать, должны работать от питания напряжением 3.3 В. НЕ НАДО подключать микроконтроллеры к +5. Если это сделать, можно сжечь Raspberry Pi. Поэтому очень внимательно проверьте не подключили ли Вы случайно Ваш контроллер к +5. И только после того, как убедитесь в том, что все сделали правильно, включайте питание Raspberry Pi.

Программируем микроконтроллер ATMega8, заливаем в него dump.hex:

avrdude -p m8 -c linuxspi -P /dev/spidev0.0 -U flash:w:dump.hex

Прошиваем фьюзы:

avrdude -p m8 -c linuxspi -P /dev/spidev0.0 -U lfuse:w:0xE4:m -U hfuse:w:0xD9:m

Подробнее о AVRDUDE и примеры использования можно найти здесь AVRDUDE Windows, или в документации по AVRDUDE.

Успехов!

RaspberryPi avrdude RaspberryPi avrdude

Смотри также:
Translate
Архіви

© 2011-2017 Андрій Корягін, Кременчук - Київ, Україна