Прошивка 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.
Перед тем как начать превращение 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.
Успехов!
Смотри также:
- Raspberry Pi — Что это такое?
- Raspberry Pi — GPIO
- Raspberry Pi — UART
- Raspberry Pi — FT232
- Raspberry Pi — ШИМ и Сервопривод
- Raspberry Pi — DHT11
- Raspberry Pi - FM Transmitter
- Прошивка AVR микроконтроллеров с помощью Raspberry Pi
- Raspberry Pi — LCD дисплей 1602
- Raspberry Pi — Wi-Fi
- Raspberry-Pi — I2C (TWI)
- Raspberry Pi - DS18B20
- Raspberry Pi Camera
- nRF24L01+ ATMEGA + Raspberry Pi
- BMP180 + Raspberry Pi + WH1602
- Wi-Fi Метео станция
- Raspbian. Apache + PHP + Python + MySQL
- Устанавливаем Raspbian на Raspberry Pi без клавиатуры и монитора
- ИК-дистанционное управление. Использование LIRC в Python
- Raspberry Pi. Raspbian. Отправка почты через аккаунт Gmail
- Neoway M590 – GSM/GPRS modem
- MPU-6050 – гироскоп – акселерометр
- HMC5883L Магнитометер
- PWM контролер на базе микросхемы PCA9685
- Метеостанция на Raspberry Pi своими руками
- Raspberry Pi. Live-stream video
Додати коментар
Недавні записи
- 🇺🇦 FOC Board STM32F103RB 🧩
- STM32 Motor control SDK - керування оборотами мотора за допомогою потенціометра 📑
- Flask✙Gunicorn✙Nginx➭😎
- STM32 Motor control SDK - програмне керування обертам мотора
- STM32 Motor control SDK - як створити перший проект
- Vue SVG. Приклад побудови живого параметричного креслення
- Вимірювання моменту мотора
- Vue SVG - компонент. Приклад 📑
- Flask + Vue 🏁 Финальный пример 🏁
- Flask, CORS, JSON-файл. Пример#6
Tags
bldc brushless stm32 motor web html css flask atmega foc git java-script pmsm raspberry-pi python websocket mongodb esp8266 nodemcu st-link tim timer docker ngnix programmator ssd1331 ssd1306 wifi uart meteo bme280 bmp280 i2c gps mpu-6050 mpu-9250 sensors 3d-printer options usb barometer remap watchdog flash eeprom rtc bkp encoder pwm servo capture examples dma adc nvic usart gpio books battery dc-dc sms max1674 avr lcd dht11 piezo rs-232 rfid solar exti bluetooth eb-500 displays ethernet led smd soldering mpx4115a hih-4000
Архіви