Оглавление:

Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2: 9 шагов
Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2: 9 шагов

Видео: Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2: 9 шагов

Видео: Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2: 9 шагов
Видео: Краткий обзор Raspberry Pi: запуск Arduino IDE на Pi с Тони Д.! 2024, Ноябрь
Anonim
Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2
Как использовать контакты GPIO Raspberry Pi и Avrdude для Bit-bang-программирования DIMP 2 или DA PIMP 2

Это пошаговые инструкции по использованию Raspberry Pi и бесплатной команды avrdude с открытым исходным кодом для bit-bang-программирования DIMP 2 или DA PIMP 2. Я предполагаю, что вы знакомы с Raspberry Pi и LINUX. командная строка. Вам не обязательно быть знакомым с программированием микросхем AVR, но это помогает, если что-то пойдет не так, потому что вы можете прочитать вывод avrdude и иметь некоторое представление о том, что делать.

Эта процедура должна занять около 1 часа в первый раз и от 5 до 10 минут каждый раз после.

Тебе понадобится:

1) Raspberry Pi с контактами GPIO и источником питания. Я использую Raspberry Pi Zero W с припаянными контактами GPIO. Операционная система должна быть Raspberry Pi OS (ранее Raspbian). Я использую Raspbian Lite (Stretch), который немного устарел. Эти команды должны работать в последней версии ОС Raspberry Pi.

В дальнейшем я буду называть Raspberry Pi «RPi».

2) Перемычки «мама-мама». Получите по одному из этих цветов: красный, черный, синий, желтый, зеленый, фиолетовый. Я использую коричневый вместо фиолетового.

3) DIMP 2 или DA PIMP 2 с припаянным дополнительным 10-контактным разъемом ICSP. Здесь я использую DIMP 2, но инструкции для DA PIMP 2 такие же.

4) Доступ в Интернет для RPi, чтобы вы могли установить бесплатную команду avrdude с открытым исходным кодом.

5) Копия файла.hex flash для вашего DIMP 2 или DA PIMP 2. Вы можете создать файл.hex самостоятельно из необработанного исходного кода, но я не буду показывать вам, как это сделать здесь.

6) Каким-то образом войти в RPi - использовать либо сетевое соединение, либо прямой доступ к консоли. Вы должны иметь возможность запускать на нем команды.

Шаг 1. Отсоедините шнур питания переменного тока и извлеките батарею 9 В

Сначала проверьте, подключен ли шнур питания переменного тока к DIMP 2 или DA PIMP 2 и к сети переменного тока. В таком случае ОПАСНО: ОПАСНОСТЬ ПОРАЖЕНИЯ СМЕРТЕЛЬНОМ. Наденьте резиновые перчатки и затем выключите главный тумблер на DIMP 2 или DA PIMP 2. Затем отсоедините шнур питания переменного тока от сети переменного тока и отсоедините шнур питания переменного тока от DIMP 2 или DA PIMP 2. Вы можете взять снимите резиновые перчатки после отсоединения шнура питания переменного тока.

Затем снимите батарею 9 В. Питание будет подаваться на DIMP 2 от RPi через красный (Vcc) и черный (GND) провода. На всякий случай выключите ползунок на DIMP 2 или DA PIMP 2.

Шаг 2: Подсоедините перемычки

Подключите перемычки
Подключите перемычки
Подключите перемычки
Подключите перемычки
Подключите перемычки
Подключите перемычки
Подключите перемычки
Подключите перемычки

Когда RPi не включен, начните подсоединять перемычки. В дальнейшем контакты GPIO находятся на Raspberry Pi, а контакты ICSP - на DIMP 2 (заголовок J3) или DA PIMP 2 (заголовок J1).

Обратитесь к схеме, которую я собрал, и к фотографиям, если вы заблудились.

Часть схемы, относящаяся к RPi, взята из файла pinout.xyz.

Часть схемы ATMEGA48V-10PU является собственностью Atmel Corp., 2016.

Я заявляю о добросовестном использовании этих рисунков в связи с внесением существенных преобразующих дополнений.

Черный идет от контакта 6 GPIO к контакту 10 ICSP. Это GND (Земля).

Желтый идет от контакта 12 GPIO к контакту 9 ICSP. Это MISO.

Зеленый идет от контакта 16 GPIO к контакту 1 ICSP. Это MOSI.

Синий идет от контакта 18 GPIO к контакту 7 ICSP. Это SCK или SCLK (SClock).

Фиолетовый (коричневый на моих фотографиях) идет от контакта 32 GPIO к контакту 5 ICSP. Это СБРОС.

Красный идет от контакта 4 GPIO к контакту 2 ICSP. Это Vcc (питание 5 В).

Шаг 3. Включите RPi

Теперь давайте включим RPi. Часть вольтметра DIMP 2 или DA PIMP 2 тоже должна включиться, но вы не узнаете этого, глядя на дисплей. Если есть сомнения, измерьте напряжение с помощью красного щупа на контакте 20 на ATMEGA48V-10PU и черного щупа на контакте 4, 6 или 8 на разъеме ICSP. Оно должно быть около 5 В постоянного тока.

Шаг 4: Установите Avrdude

В моих инструкциях будут отображаться только команды командной строки. Если у вас работает графический интерфейс, вам нужно открыть терминал для выполнения этих команд командной строки.

Войдите как пользователь по умолчанию pi. Пароль по умолчанию - малиновый.

Установите команду avrdude, набрав в командной строке терминала следующее:

sudo apt-get install avrdude

Шаг 5: отредактируйте файл конфигурации Avrdude

Отредактируйте файл конфигурации avrdude, набрав:

sudo nano /etc/avrdude.conf

Добавьте эти строки в середину файла, где находятся другие определения программиста. Я скопировал раздел программиста прямо над ним для id = "linuxgpio", затем вставил его прямо под (в строке 1274), затем отредактировал новый раздел.

программист

id = "пи_1"; desc = "Используйте интерфейс Linux sysfs для разбивки линий GPIO"; type = "linuxgpio"; сброс = 12; sck = 24; mosi = 23; мисо = 18;;

Затем сохраните файл, нажав: Ctrl-O

А затем выйдите из редактора nano, нажав: Ctrl-X

Шаг 6: Загрузите или скопируйте файл.hex Flash в / home / pi

Скопируйте файл прошивки.hex в RPi. Я полагаю, вы знаете, как это сделать. ПОДСКАЗКА: используйте команду wget, curl, git или scp, чтобы переместить файл из Интернета в RPi.

Здесь находится файл.hex DIMP 2 вместе с исходным кодом:

github.com/dchang0/dimp2

Настроенная версия файла.hex DA PIMP 2 находится здесь. Я это не тестировал!

github.com/jcwren/DaPimp2

Если вышеуказанная версия файла.hex DA PIMP 2 не работает, исходный код DA PIMP 2 Майки Склара находится здесь. Вам придется скомпилировать его в рабочий файл.hex самостоятельно. Я не рассматриваю это в этих инструкциях, потому что это будет длинный (но несложный) урок. Я успешно запрограммировал несколько рабочих модулей DA PIMP 2, используя этот исходный код:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

Или вы можете перейти на главную страницу DA PIMP 2 здесь и щелкнуть ссылку на исходный код.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Поместите файл.hex по этому пути и имя файла на RPi…

Для DIMP 2:

/home/pi/dimp2.hex

Для DA PIMP 2:

/home/pi/da_pimp2.hex

Шаг 7. Убедитесь, что Avrdude может разговаривать с ATMEGA48V-10PU

Запустите команду avrdude, чтобы убедиться, что он может взаимодействовать с микросхемой ATMEGA48V-10PU на DIMP 2 или DA PIMP 2.

cd / home / pi

sudo avrdude -c pi_1 -p m48 -v

Вы получите около страницы вывода. Посмотри в конце. Если вы получили такой ответ, можете продолжать.

avrdude: устройство AVR инициализировано и готово принимать инструкции

Чтение | #################################################################################################### | 100% 0,00 с

Если нет, значит, что-то не так и вам следует разобраться. Скорее всего, это неправильное подключение, но еще одна распространенная жалоба, которую я видел, заключается в том, что микросхема ATMEGA48V-10PU является подделкой. Кажется, что многие из них, продаваемые на Amazon или ebay, - подделки. Те, которые продаются Mouser или Digikey и другими официальными дистрибьюторами, являются подлинными.

Шаг 8: прошейте шестнадцатеричный файл в ATMEGA48V-10PU

Выполните эту команду, чтобы выполнить программирование микросхемы…

Для DIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: dimp2.hex

Для DA PIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: da_pimp2.hex

Вы получите около страницы вывода. Ищите эти строки:

avrdude: запись flash (1528 байт):

Написание | #################################################################################################### | 100% 0,79 сек

avrdude: проверка…

avrdude: 1528 байтов проверенной флэш-памяти avrdude: safemode: Предохранители исправны (E: FF, H: DF, L: 62)

Если вы зашли так далеко, вы должны увидеть светодиодный дисплей, показывающий нули для напряжения. Если вы видите нули, все готово! Если нет, переходите к следующему шагу.

Если вы видите нули, аккуратно выключите RPi с помощью этой команды:

sudo shutdown -h сейчас

Когда индикатор питания на RPi погаснет (DIMP 2 или DA PIMP 2 все еще будут гореть), вы можете отключить блок питания от RPi. Затем отсоедините перемычки между RPi и DIMP 2 или DA PIMP 2.

Шаг 9: Простое устранение неполадок в случае сбоя флэш-памяти

Если вы не видите нулей на дисплее вашего DIMP 2 или DA PIMP 2, то пришло время устранить неполадки.

Опять же, сначала проверьте свою проводку.

Затем проверьте состояния предохранителей, показанные avrdude. Возможно, что ваша микросхема поставляется с предохранителями, установленными на значения, отличные от заводских. Возможно, микросхеме потребуется перезагрузить предохранители, что потребует совершенно другого аппаратного устройства. Это проблема многих поддельных микросхем ATMEGA48V-10PU, продаваемых на ebay - это старые микросхемы, извлеченные из выброшенного оборудования, и предохранители были установлены, и продавец не потрудился сбросить предохранители.

Иногда микросхема даже не ATMEGA48V-10PU. Это мог быть другой чип с измененной маркировкой. Обычно эти подделки можно отличить, внимательно посмотрев на маркировку сверху и снизу чипа. Разумнее приобретать ATMEGA48V-10PU у проверенного поставщика, такого как Mouser или Digikey.

Рекомендуемые: