Avr isp usb linux

AVR ISP китайский программатор, как завести?

Приветствую, приобрёл себе значит китайский программатор с aliexpress, вот такой: http://www.aliexpress.com/item/Free-driver-USBASP-ISP-USBASP-USBISP-aluminum-. Воткнул его в комп, dmesg мне весело показал что у него есть:

У меня нет такого программатора в списке дудки 🙁

Тогда гугли на тему «USB HID AVR programmer» — там есть разные варианты. На HID сделано так для того, чтобы вендузятникам было легче жить.

Попробуй вручную сделать симлинк /dev/ttyUSB0 → /dev/usb/hiddev0

Если сработает, то просто добавь правило udev, если не сработает — пиши выхлоп матюгов.

Ссылку я не делал, я указывал напрямую устройство:

Посмотри в lsusb bus и device номера, а потом в качестве устройства напиши /dev/bus/usb// , если не заработает, то у тебя либо подходящего модуля ядра не хватает, либо вообще железяка чисто мастдайная.

Спасибо за ссылку, похоже что эта штука может работать, если в дудке есть поддержка AVR-Doper, но в моей версии её нет, потому как ругается

Судя по ошибке avrdude знает что такое avrdoper. Пробуй «-c avrasp», это тоже вроде hid устройство.

vid=0x16c0 pid=0x5dc — это мой рабочий usbasp прописанный в udev. А avrasp такого программатора дудка не знает 🙂

Как сделать usbasp:

О, так и знал, что купил китайскую лабуду. Сегодня поковыряю, спасибо 🙂

То же хотел купить, только использовать не как программатор.

Он при подключении через кабель (

2м) нормально работает? Перемычка «self-programming» в нем точно есть?

А для чего его ещё использовать можно? Кабель там в комплекте сантиметров 50-60, не больше, сегодня попробую его расковырять, посмотрю насчёт перемычки.

А для чего его ещё использовать можно?

Там же обычный МК, который можно под какие-нибудь другие цели перепрограммировать.

Дык, как там у тебя: получилось по /dev/bus/usb/bus/dev его подключить?

По поводу USB, не проканало:

Дык, оно же HID! А должно быть CDC. Что за zhifengsoft его программировал? А что в тырнетах по поводу такого? Я, честно говоря, не представляю, на кой черт программатор себя за HID-устройство выдает.

Оказывается, есть извращенные программаторы, которые HID.

По вот это ссылке http://www.sciencetronics.com/greenphotons/?p=938 чувак перепилил этот программатор в USBASP, хочу попробовать также. Хотя у меня уже закралась мысль, может у этих торгашей с aliexpress спросить, мол, с какого девайся они это устройство скопипастили.

Это не помогает, avrdoper моя дудка не знает, выше по тексту уже пытался такое сделать (

Ура, заработало. Теперь у меня есть ещё один USBASP ))) Делаем так:

  • Разбираем этот свисток(со стороны usb разъёма выковыриваем пластиковую заглушку)
  • На плате есть два отверсия, помеченные словом UP, их нужно замкнуть(включаем возможность самопрограммиирования)
  • Подключаем к этой штуке другой программатор и заливаем в неё прошивку от USBASP(исправленную версию, ссылка на архив лежит внизу страницы по этой ссылке http://www.sciencetronics.com/greenphotons/?p=938 там же картинки платы)

После заливки прошивки, вместо красного светодиода, загорится синий, далее работаем с ним, как с обычным USBASP-ом 🙂

китайский AVR ISP

Себе такой же свисток купил зелененький правда в тиксере за 650 рублев. То же сижу разбираюсь, дудка его находит, но программатор не видит целевого контроллера (пытаю 8-ю мегу).

Источник

Китайский HID программатор USBISP (USBASP) в Linux. Препрошивка

Программирование микроконтроллеров и робототехника — очень перспективные направления деятельности. Об этом говорят уже на уровне государства. А начинается все с того, что новички собирают свой первый программатор или заказывают его в интернет-магазине. Самыми доступными по цене являются китайские поделки. Они не всегда готовы сразу порадовать своих новых хозяев. Тем не менее, обычно, они вполне работоспособны после доработки и/или перепрошивки.

Читайте также:  Connection refused linux ftp

Ситуация осложняется тем, что существует множество похожих моделей и различных версий печатных плат китайской разработки. Мне достались программаторы с печатной платой, несовместимой с имеющейся в сети прошивкой. Банально, не совпадает назначение выводов микроконтроллера на плате и в программе. Далее я опишу процесс лечения мелкой партии этих программаторов и некоторые хитрости для новичков.

Надеюсь, кому-то эта статья окажется полезной, поскольку конкретно по этой версии программаторов информации в интернете, видимо, нет.

Для тех, кто хочет быстрого решения, в конце статьи есть ссылка на архив с доработанной мною прошивкой USBASP от Thomas Fischl и список изменений в формате git diff.

Покупка

Решил я для занятий по робототехнике в нашем Центре детского компьютерного творчества приобрести комплект программаторов и микроконтроллеров. Выбор пал на Алиэкспресс. Дёшево и сердито.
Заказал пачку Attiny13A, пару колодок для них, несколько Atmega32 на учебных платах, макетки, и, конечно же, десяток программаторов USBASP. Ранее я уже заказывал пару подобных программаторов — один из них даже работал.

Как оказалось, доставленные программаторы оказались неработоспособными в Ubuntu Linux. Один из них соответствовал рекламной картинке, остальные 9 были чуть длиннее и не упакованы в антистатические пакетики. При этом все 10 имели на корпусе надпись USBISP и гордо определялись как устройство HID.

The USBASP USBISP AVR / 51 Series Programmer Download Aluminum Shell No 64K Limit Support WIN7 64

Perfectly support WIN7

1, support USB1.1 or USB2.0 communication.
2, support WIN98, WINME, WIN2K, WINXP operation system.
3. USB ports Power Supply, power supply output is 500 MA since the recovery, which can effectively prevent outside of USB influence short circuit, target board can supply with USB together.
4, download not finish influence the operation of the target board.
5, support S51 and AVR chips record, speed faster than parallel ISP, more stable; There is no parallel notebook computer and use the best choice.
6, the latest version of exceed stable firmware, download speed jump line without choice, download speed faster, more stable.
7, using standard IDC10 interface

Хитрые китайцы, желая упростить жизнь пользователям дефолтной ОС, написали прошивку, не требующую драйверов. Один минус — с этими программаторами может работать только одна китайская программа с интерфейсом на китайском же языке и только в одной ОС. Меня этот вариант категорически не устраивал.

Поиск решения

Поиск в сети привел меня на страницу Hacking an AVR programmer.
Там все замечательно и доступно описано. Я обрадовался и стал разбирать программаторы. Это оказалось легко. Поразили оригинальные конструкторские решения в виде изолятора из двустороннего скотча.

Радовался я рано. На указанной странице был описан процесс перепрошивки для другой версии программатора (v3.0), которая разведена иначе. У меня на руках была неопознанная версия программатора.

Результатом изучения платы стала представленная ниже картинка. Все, что возможно, было разведено иначе, чем в уже знакомой третьей версии с синей платой. Это не помешало доработать прошивку, в которой пришлось менять номера выводов, их инициализацию (см. статью Hacking an AVR programmer) и алгоритм управления светодиодами.

В оригинальной usbasp прошивке за USB и светодиоды отвечают ножки 12,13 и 23,24. На плате же были разведены выводы 1,32 и 9,10. При этом светодиоды оказались подключены встречно-параллельно, что впоследствии было учтено в программе.

Никаких перемычек для программирования здесь не было. Поэтому пришлось слегка переделать шлейф, выпустив проводок «Reset» на волю. Этот провод я временно припаивал ко входу «Reset» для программирования жертвы.

Наглядная картинка, оказавшая мне помощь в сопоставлении ножек контроллера (ATmega8):

Хорошо, что в наличии рабочий программатор уже имелся. Как раз версии v3.0, но с рабочей прошивкой.

Перепрошивка

Первые два программатора прошились успешно. Третий запротестовал. Оказалось, что в нем именно 29 ножка «Reset» была не пропаяна.

Устранив этот косяк я продолжил работу.

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

Читайте также:  Install apk mac os

Программатор-жертва воткнут в USB-хаб (синенький) только для того, чтобы стоял устойчивее — хаб никуда не подключён.
Иногда я получал сообщения от avrdude, что контроллер не отвечает. Спасало понижение напряжения трёхметровым USB-удлинителем и уменьшение скорости программирования (ключ -B в строке «avrdude -c usbasp -p m8 -B 50 »).

На закуску самое главное

Архив с оригинальной прошивкой: www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
Смотрим в Readme.txt раздел «BUILDING AND INSTALLING FROM SOURCE CODE»
Из архива извлекаем папку /usbasp.2011-05-28/firmware/
Дорабатываем прошивку по вкусу.
В консоли заходим в папку firmware и запускаем make для получения справки по доступным командам.
Компилируем прошивку и заливаем ее в программатор (через другой рабочий программатор).

Что удалось сделать из колодок для тинек (оказалось — очень удобно).

Контрольный светодиод между выходами PB3-PB4.

Источник

Настройка среды и работа с программаторами для AVR микроконтроллеров в Linux

Приведены особенности настройки и использования USBAsp, COM и LPT программаторов при работе с программой avrdude в операционной системе Linux. Попробуем считать и записать прошивку микроконтроллера (МК) используя программатор USBAsp.

Для работы и экспериментов нам понадобится уже подключенный к AVR микроконтроллеру программатор, как это сделать мы уже подробно рассматривали в одной из статей.

Перейдем к настройке портов и программы avrdude для работы с различными программаторами под Linux.

Настройка прав доступа для программатора USBAsp

Что делать если программа avrdude в ОС Linux не видит программатор что подключен к USB порту? — подобные вопросы в сети возникают довольно часто. Программа avrdude сообщает о том что не может найти программатор:

Поэтому первое что нам нужно сделать так это дать права обычным пользователям в Linux на использование устройства USBAsp, что подключен к USB порту. По умолчанию к данным устройствам имеет доступ только суперпользователь (root).

Зная код производителя и код устройства для программатора USBAsp нужно написать правило в специальном скрипте для подсистемы «usb» в Linux в котором разрешить использование устройства с такими идентификаторами любым пользователем или же ограничить права только указанной группой пользователей.

Для начала сверим идентификаторы устройства и убедимся что у нас действительно программатор USBAsp. Подключаем программатор к USB порту ноутбука и смотрим лог последних событий системы за текущий день:

Или же используем команду в Debian Linux 8 и выше (где используется systemd):

К примеру, в конце вывода последней команды увидим вот что:

Здесь код производителя нашего программатора — 16c0, а код продукта — 05dc, все Ок.

Отключаем программатор от компьютера и создадим файл с правилом что разрешает доступ к программатору USBAsp всем пользователям на компьютере, выполним команду:

После запуска откроется текстовый редактор, вставьте в него вот этот код:

Выходим из редактора и сохраняем файл (CTL+X и Y).

Для того чтобы в Linux наш скрипт заработал можно перезагрузить ОС или выполнить перезапуск подсистемы «usb» командой:

Теперь можно работать с программатором USBAsp в программе avrdude из под обычного пользователя(не суперпользователя).

Настройка программатора Громова (COM-порт) в Linux

Первым делом нужно добавить программатор Громова с его идентификатором и настройками в конфигурацию программы avrdude. Чтобы не править основной конфигурационный файл мы создадим дополнительный пользовательский конфигурационный файл в домашней директории, выполним команду:

где USER — єто имя вашего пользователя под которым вы работаете.

Вставим в редактор следующие данные:

Выходим из редактора и сохраняем файл (CTL+X и Y).

Для корректной работы программатора Громова в ОС Linux нужно предварительно сконфигурировать последовательный порт (Serial Port, RS-232 Port), поскольку на данный момент при запуске программа avrdude сама не производит конфигурации порта.

Если при записи прошивки в МК avrdude выводит сообщение о проблеме с верификацией то очень вероятно что нужно произвести переконфигурацию COM-порта:

Для выполнения конфигурации воспользуемся программой stty, подробные параметры работы которой хорошо расписаны в MAN-страничке.

Для вывода на экран текущих настроек порта /dev/ttyS0 (первый COM-порт) выполним команду:

Читайте также:  Драйвер microsd для windows 10

А теперь выполним конфигурацию порта командой:

Примечание: примите к вниманию что если у вас в компьютере несколько COM-портов то путь к файлу порта /dev/ttyS0 нужно изменить в соответствии с номером используемого порта, например /dev/ttyS2 — это третий COM-порт.

После выполнения команды конфигурации полезно посмотреть изменилась ли конфигурация порта и как, для этого нужно выполнить предыдущую команду.

Содержимое вывода команды должно быть примерно вот в таком виде:

Настройки, которые мы задали командой, действуют до перезагрузки ОС. Команду для конфигурации порта можно добавить в автозагрузку вашей операционной системы Linux или же запускать один раз перед работой с программой avrdude.

Настройка программатора используя LPT-порт в Linux

В настройках программы avrdude по умолчанию прописан программатор «dapa», его описание «Direct Parallel AVR Access Cable».

Программатор на основе LPT-порта никаких дополнительных настроек в Linux не потребует, можно приступать к работе, Plug and Play in Linux! 🙂

Тестирование и работа с программаторами

После выполнения приведенных выше подготовок все готово к работе, приступим к тестированию нашей связки программатор + микроконтроллер.

Ниже будут приведены команды отдельно для каждого типа программаторов:

  • USBAsp;
  • программатор Громова (COM-порт);
  • параллельный программатор DAPA (LPT-порт).

Все примеры буду приводить для микроконтроллера ATmega8 (m8). Для программатора Громова в командах будет использован 1-й COM-порт /dev/ttyS0, а для программатора DAPA — первый LPT-порт /dev/parport0.

Подробно узнать о всех ключах запуска программы avrdude вы вы всегда можете вот ТУТ.

Первым делом давайте проверим все ли правильно связано и сможет ли программа avrdude «увидеть» микроконтроллер, никакой записи и изменений вносить в AVR чип мы не будем, только тест.

Проверка для программатора USBAsp:

Проверка для программатора Громова:

Проверка для программатора DAPA:

Если все подключено и настроено как нужно то то вывод программы будет выглядеть вот таким образом:

Рис. 1. Успешная проверка, у программы avrdude получилось связаться с AVR микроконтроллером.

Для получения более подробной информации о подключенном микроконтроллере можно добавить к команде ключ «-v», вот пример вывода для USBAsp:

Рис. 2. Проверка, вывод программы avrdude с опцией -v (verbose).

А теперь давайте считаем прошивку микроконтроллера что хранится во Flash-памяти и сохраним ее в файл.

Считывание Flash для программатора USBAsp:

Считывание Flash для программатора Громова:

Считывание Flash для программатора DAPA:

После выполнения команды во временной директории /tmp должен появиться файл m8chip_flash_dump.hex что будет содержать данные из флешь-памяти микроконтроллера.

Рис. 3. Считываем flash памяти микроконтроллера в файл при помощи avrdude.

В следующих примерах мы выполним запись прошивки во Flash-память AVR микроконтроллера, используя данные из файла в формате Intel HEX. Для этого создадим файл test_program.hex во временной папке /tmp и наполним его тестовыми данными. Создадим файл и откроем его для редактирования командой:

Скопируйте в редактор предоставленный ниже код и сохраните файл (CTRL+X и Y). Данная прошивка заставит мигать светодиод что подключен к 2-й ножке (PD0) микроконтроллера ATmeag8 (пример кода именно для этой модели):

Ниже представлены команды для записи прошивки с использованием разных программаторов.

Запись прошивки во Flash для программатора USBAsp:

Запись прошивки во Flash для программатора Громова:

Запись прошивки во Flash для программатора DAPA:

Сразу после выполнения команды по записи прошивки в микроконтроллер ATmega8 должен замигать светодиод. Вывод команды avrdude в процессе работы выглядит следующим образом:

Рис. 4. Процесс записи прошивки во Flash-память микроконтроллера.

Программа avrdude говорит что все ОК, записано во флешь-память и проверено 104 байта данных.

Рис. 5. На 2й ножке (PD0) микроконтроллера ATmega8 высокий уровень — 5В.

Заключение

В данной статье мы разобрались с настройкой AVR программаторов в операционной системе GNU Linux, привели простейшие команды для проверки, чтения и записи прошивки в микроконтроллер используя мощную программу avrdude.

В следующей статье мы напишем простую программу для микроконтроллера на языке программирования Ассемблер (Assembler), которая заставит поочередно мигать два разноцветных светодиода — олучится такая себе имитация полицейской мигалки.

Источник

Оцените статью