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

Прошивка AVR микроконтроллеров с помощью Raspberry Pi
(на русском языке)

А чому не спробувати прошити мою ATmega за допомогою Raspberry Pi? Така думка стрельнула мені в голову, коли я зробив невеличку плату розширення для Raspberry Pi. Raspberry Pi має протокол SPI, тому це проблема виключно програмного плану. Я відразу встановив свого улюбленого Avrdude. Про Avrdude для Windows я вже писав у статті AVRDUDE Windows. Але стандартний Avrdude не знає про ноги SPI, тому, трохи покопавшись в Інтернеті, знайшов рецепт. Існує проект https://github.com/kcuzner/avrdude , в якому avrdude допиляли для Raspberry Pi.

Спочатку треба впевнитись що 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

Для того, щоб його скомпілювати встановлюємо наступні пакети:

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-2019 Андрій Корягін, Кременчук - Київ, Україна