Оглавление:
- Шаг 1. Создание насадки для сапожника
- Шаг 2: установка и использование Avrdude
- Шаг 3. Получение программ Arduino на AVR
Видео: Прошивка AVR / Arduino с помощью Raspberry Pi: 3 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Внутрисистемный программист (ISP) - это устройство, которое вы можете использовать для программирования многих микроконтроллеров, например ATMega328p, который является мозгом Arduino Uno. Вы можете купить что-то вроде USBtinyISP или даже использовать Arduino. Это руководство покажет вам, как использовать Raspberry Pi в качестве интернет-провайдера.
Программа avrdude, которую Arduino IDE использует для прошивки чипов, может использоваться многими программистами. Один из вариантов - использовать контакты SPI на порте расширения Pi. Я объясню, как выполнить соответствующие подключения, собрать простую схему на перфокартах, чтобы вам не приходилось переделывать проводку каждый раз, когда вы хотите прошить микросхему, а также как установить и использовать avrdude. Я также покажу вам, как с помощью этого метода компилировать программы с помощью Arduino IDE на микросхеме AVR, такой как ATmega или ATtiny.
Необходимые вещи:
- Raspberry Pi с установленной последней версией Raspbian
- 40-контактный штекерный разъем (или 26-контактный, если у вас более старый Pi)
- Кабель IDE для подключения к вашему Pi
- Кристаллический резонатор 16 МГц
- Конденсаторы 22 пФ (2)
- Светодиод (1) для индикации состояния программатора
- 8, 14 и / или 28-контактные разъемы для микросхем, в зависимости от того, какую форму микросхемы вы хотите прошить
- Некоторые перфокарты, провода, припой
Шаг 1. Создание насадки для сапожника
Последовательный периферийный интерфейс (SPI), также называемый четырехпроводным последовательным интерфейсом, представляет собой способ связи между одним главным устройством и одним или несколькими подчиненными устройствами. Мы будем использовать это для прошивки микросхем, используя Pi в качестве ведущего, а микросхему - в качестве ведомого. Вы выполните следующие соединения между Pi и вашим чипом (см. Распиновку выше для различных AVR и портов расширения Pi, чтобы узнать, какие контакты какие):
- Соедините контакты MOSI (главный выход-подчиненный вход) вместе
- Соедините контакты SCLK (общие часы) вместе
- Соедините выводы MISO (master-in-slave-out) вместе с резистором 220 Ом, чтобы защитить Pi от любых неожиданно высоких напряжений от микросхемы.
- Подключите GPIO 25 на Pi напрямую к контакту RESET на микросхеме. Pi подтягивает этот вывод к низкому уровню при программировании, поэтому мы используем резистор 10 кОм, чтобы поддерживать его на высоком уровне, когда не программировать, и светодиод с защитным резистором 1 кОм, работающий на положительное напряжение, чтобы дать нам приятную визуальную обратную связь при программировании.
Мы подключаем контакты заземления и питания (3,3 В) между Pi и микросхемами, которые мы хотим запрограммировать. Если вы еще не знаете, контакты Raspberry Pi не устойчивы к 5 В - они будут повреждены, если на них появится напряжение более 3,3 В. Если программируемым микросхемам по какой-то причине требуется питание 5 В, мы могли бы использовать микросхему переключателя уровня для защиты контактов Pi, но у меня не было никаких проблем с использованием 3,3 В, поэтому я рекомендую действовать осторожно и экономить на компонентах.
Наконец, мы подключаем кварцевый генератор 16 МГц к контактам XTAL на микросхеме, который мы также подключаем к земле через пару конденсаторов 22 пФ. Микросхемы AVR могут быть настроены на работу на разных частотах, а также могут быть настроены на использование внутреннего или внешнего источника для определения этой частоты. Если ваш чип настроен на использование внешнего кристалла в качестве источника частоты, вы не сможете перепрограммировать без него. В противном случае не имеет значения, есть ли он там.
Вы можете использовать электрическую схему на последнем изображении в качестве руководства по сборке насадки для сапожника на перфорированной плите. У вас может быть столько или меньше разных форм разъемов IC, сколько захотите, просто подключите соответствующие контакты параллельно Pi и кристаллу. N. B. Если вы используете изображение моего прототипа в качестве руководства, обратите внимание, что я добавил несколько дополнительных контактов заголовка и сокетов, чтобы я мог получить доступ к контактам на Pi по не связанным с этим причинам.
Шаг 2: установка и использование Avrdude
Чтобы установить avrdude на свой Pi, просто введите
sudo apt-get install avrdude
Затем вам нужно будет включить интерфейс SPI, если он еще не был включен. Это можно сделать с помощью командной строки, но гораздо проще использовать инструмент настройки Raspberry Pi. Тип
sudo raspi-config
и перейдите в Параметры интерфейса, чтобы включить SPI.
Чтобы прошить чип, подключите ленточный кабель от Pi к разъему на печатной плате и вставьте чип в соответствующее гнездо IC (убедитесь, что он направлен в правильную сторону).
При прошивке программы необходимо также убедиться, что предохранители в микросхеме установлены правильно. На самом деле это просто биты в микросхеме, которые вы устанавливаете, чтобы сообщить ему, с какой тактовой частотой работать, стирать ли EEPROM при записи микросхемы и т. Д. Вы можете прочитать полную спецификацию AVR, чтобы выяснить, как установить каждый бит, но гораздо проще использовать калькулятор предохранителей, доступный на engbedded.com/fusecalc. Выберите название части AVR, которую вы используете, и выберите нужные параметры в области «Выбор функций». Обычно я просто проверяю правильность настроек часов, а все остальное оставляю по умолчанию. Вы почти всегда захотите оставить «Последовательное программирование включено» ПРОВЕРИТЬ и «Сбросить отключено» НЕ ПРОВЕРЕННО - в противном случае вы не сможете перепрограммировать чип. Когда у вас есть правильные настройки, вы можете прокрутить вниз область «Текущие настройки» и скопировать аргументы AVRDUDE, как показано на изображении.
Для установки предохранителей введите команду
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
где название части соответствует используемой микросхеме. Вы можете найти список названий частей, введя sudo ardude -c linuxspi -p? Type. Чтобы прошить вашу программу, убедитесь, что она находится в вашем текущем каталоге, и введите
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash: w:: i
После обеих команд светодиод будет гореть, пока чип модифицируется.
Шаг 3. Получение программ Arduino на AVR
Основное внимание в этом руководстве уделяется прошивке уже скомпилированных программ на чипы, а не тому, как их писать или компилировать. Тем не менее, я хотел объяснить, как вы можете компилировать двоичные файлы с помощью Arduino IDE и переносить их на голые микросхемы AVR с помощью этого метода, поскольку Arduino относительно прост в освоении и существует так много руководств и примеров.
Во-первых, вам нужно будет добавить информацию о микросхемах AVR, которые вы будете прошивать, чтобы IDE знала, как для них компилировать. Джеймс Слиман очень услужливо собрал несколько установочных файлов, которые доступны на github. Чтобы использовать их, откройте меню «Настройки» в среде Arduino IDE и щелкните поле рядом с полем «URL-адреса дополнительных плат». Скопируйте и вставьте следующие URL-адреса в появившееся диалоговое окно:
Затем перейдите в меню «Инструменты» и найдите пункт «Менеджер плат…» в подменю «Доска». Прокрутите список до конца в диалоговом окне Boards Manager и установите платы DIY ATmega и DIY ATtiny.
Чтобы скомпилировать свои программы, сначала убедитесь, что вы выбрали правильный чип в меню «Процессор», а также правильную скорость процессора. Выберите вариант «Использовать загрузчик: Нет», поскольку мы будем загружать файлы напрямую с Pi и, таким образом, можем использовать дополнительное пространство, которое обычно занимает загрузчик Arduino. Теперь нажмите кнопку «Подтвердить» (галочка). Это скомпилирует вашу программу, не пытаясь ее загрузить (поскольку вы делаете этот шаг сами).
Предполагая, что все идет хорошо, теперь вам нужно загрузить скомпилированную программу на свой Pi. IDE скрывает их во временном месте, поскольку она предназначена для самой загрузки программ. В Windows он находится в AppData / Local / Temp в вашем пользовательском каталоге в папке, которая начинается с arduino_build. Ищите файл.hex - это ваша программа! Отправьте его на свой Pi через FTP или с помощью USB-накопителя, и вы в деле.
Для этого у вас должен быть ПК с Windows или Mac для компиляции ваших программ, которые вы затем отправляете на Pi. Было бы здорово иметь возможность сделать это на самом Pi, но, к сожалению, официальная версия Arduino IDE, доступная в репозитории Raspbian, довольно старая и не имеет Board Manager. Без этого добавить соответствующие настройки для компиляции для простых AVR немного сложнее. Существуют учебные пособия по компиляции более свежей версии Arduino на вашем Pi - если это то, что вы хотите сделать, найдите их! Я также чувствую, что должна быть возможность заставить среду IDE использовать программатор linuxspi для прошивки чипа из самой среды IDE (то есть с помощью кнопки "загрузить"), но это выходит за рамки моего терпения и уровня навыков - если вы знаете о Кстати, опубликуйте это в комментариях! Наконец, вы можете просто писать программы прямо в AVR-C и компилировать их на Pi с помощью avr-gcc, что дает вам полную платформу разработки AVR на Raspberry Pi. Я сделал крохотную часть этого, и если вы хотите пойти по этому пути, я приветствую вас. Начни мигать!
Рекомендуемые:
Прошивка загрузчика Arduino на ATMega328: 4 шага
Прошивка загрузчика Arduino на ATMega328: этот учебник содержит инструкции по загрузке загрузчика в среде ATmega, представленной на плате за создание нового файла, sia vergine; Come ad esempio nel caso in cui si vuole realizzare la Drivemall
Точечная сварка 1-2-3 Прошивка Arduino: 7 шагов (с изображениями)
Точечная сварка 1-2-3 Прошивка Arduino: зачем нужен еще один проект по точечной сварке? Создание аппарата для точечной сварки - один из (пожалуй, немногих) случаев, когда вы можете создать что-то за небольшую часть цены коммерческой версии с сопоставимым качеством. И даже если сборка перед покупкой не принесла выигрыша
Прошивка OpenWrt / LEDE в BT Homehub 5 с помощью палочки для еды: 5 шагов
Прошивка OpenWrt / LEDE в BT Homehub 5 с помощью палочки для еды: это руководство, показывающее простой новый метод без пайки для подключения к интерфейсу UART на BT Home Hub 5, тип A. Это необходимо, если вы хотите установить потрясающий " OpenWrt " послепродажная прошивка к нему (OpenWrt ранее назывался
Прошивка ESP-01 (ESP8266) без переходника USB-последовательный порт с использованием Raspberry Pi: 3 шага
Прошивка ESP-01 (ESP8266) без адаптера USB-последовательный порт с использованием Raspberry Pi: это руководство поможет вам начать программирование микроконтроллера ESP8266 на модуле ESP-01 WIFI. Все, что вам нужно для начала работы (помимо модуля ESP-01, конечно), это перемычки Raspberry Pi с резистором 10 кОм, который я хотел отремонтировать
Прошивка Meraki / Accton / Fonero с помощью OpenWRT с использованием Linux: 3 шага
Перепрограммирование Meraki / Accton / Fonero с помощью OpenWRT с использованием Linux: в этом руководстве показано, как выполнить перепрошивку оборудования Meraki / Accton / Fonero с помощью OpenWRT Linux с помощью ПК с Linux. Сайт автора: http://ruckman.net