Программатор USB ISP для AVR: Ещё один шаг в сторону от ардуинонизации

  • Цена: 3$ (2шт.)

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.


Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики

Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка
Список поддерживаемых микроконтроллеров

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серия

AT90CAN128

PWM серия

AT90PWM2 AT90PWM3


Внешний вид

Комплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.


Культура исполнения и вправду хромает, мне в глаза сразу бросились криво припаянные гребёнки. Везде где только можно — имеются следы флюса, причём с окислами, по всей видимости, программаторы давно валялись на складе, а сборка их производилась с присущей китайцам быстротой.









Некоторые отверстия не целиком заполнены припоем



SMD-элементы тоже криво припаяны



Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл



Размеры платы несколько больше USB-TTL-конвертера на CP2102



Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.



Органы управления на плате

На плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.


Установка драйверов

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».


3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы...»


4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»


5) «Всё равно установить этот драйвер»


6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены



Прошивка собрата

Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:



Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.


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


Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер



Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As...». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.



Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.


Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.


Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.





Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.


Находятся они по пути «Command» -> «Fuses and Lock Bits...», откроется окно:


Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.


Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz)

В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.



AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.





Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.



Связь с контроллером ATtiny13A в корпусе SOIC8

Соединение согласно схеме ниже. Но тут всё немного интереснее.


Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.


AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.


Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3


2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3

Внести туда четыре строчки кода и сохранить. (взято отсюда)
progisp=jtag2pdiportprog=COM1portenabled=1[UsbaspSpeed]
progisp=Usbasp -B 3
portprog=usb
portenabled=0


Примечание. Здесь применён ключ "-B", который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах


После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.



Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

Программатор с заводской прошивкой нормально работает с ATtiny13, если не считать постоянно появляющихся окон с ошибкой, о чём раннее уже рассказывал.
Но с программатором на новой прошивке уже появляется иная ошибка с невозможностью прочесть сигнатуру (цифровую подпись) контроллера.


Но стоит замкнуть перемычку JP3, и можно спокойно работать



Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.



Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000
то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.


Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7

Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.


На верхней панели инструментов выбрать «Tools» — «External Tools...»


Откроется небольшое окно, нажать «Add»


В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.


Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой


Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию
Конфигурация для Atmega168
-p m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a

-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.
Конфигурация для ATtiny13
-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a 
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ "-B" со значением «3» для снижения скорости программирования

После заполнения полей нажать «Apply» и «ОК». Окно закроется


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


Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize...»
Откроется следующее окно:


Перейти во вкладку «Commands» — нажать кнопку «Add Command...»


Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»


«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».


Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.



При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».


И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.


Дополнение по фьюзам программатора

Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam'ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):


Как рекомендует выставить разработчик:
HFUSE=0xc9
LFUSE=0xef


Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.


Если всё сходится, можно нажимать «программирование»


ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы

Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта
Планирую купить +90 Добавить в избранное +79 +153
+
avatar
  • penzet
  • 17 июня 2017, 08:05
0
(в этом же архиве есть драйвера для Windows и Linux
а тут
On Linux and MacOS X no kernel driver is needed
так чему верить?
+
avatar
  • CTAHOK
  • 17 июня 2017, 08:08
0
Тогда уточните, что содержит эта папка? Просто с линуксом не работал раннее
+
avatar
  • penzet
  • 17 июня 2017, 08:24
0
Линукса под рукой нет, есть OS X , вот что получается после выполнения команды
+
avatar
0
есть OS X
Ну так это — не линукс, там другой тип бинарных (исполняемых) файлов. :)

В данном случае, в том месте, откуда запускался скрипт, не оказалось файла 99-USBasp.rules
+
avatar
  • ploop
  • 17 июня 2017, 08:44
+4
Для линукса драйверов не надо.
То, что вы выделили — правила в udev (демон, отвечающий за оборудование), чтобы шить можно было не из под рута.
+
avatar
  • CTAHOK
  • 17 июня 2017, 08:48
+1
Спасибо, убрал лишнее
+
avatar
  • Gdemon
  • 17 июня 2017, 08:42
+3
Для линукса эти программаторы — стандартные устройства, драйверов не требуют, работают из коробки ( по крайней мере это так на Linux Mint ).

Вместе с такими программаторами использую «прищепку» для программирования тинек прямо на плате — исключительно удобная вещь.
+
avatar
  • CTAHOK
  • 17 июня 2017, 08:50
0
Прищепку я ещё закажу для «попробовать», хотя сначала думал, что царапает плату
+
avatar
  • zhevak
  • 17 июня 2017, 09:09
+1
+ во всех версиях Ubuntu и Debian.
+
avatar
-1
Вместе с такими программаторами использую «прищепку»
ссылку можно?
+
avatar
0
+
avatar
+1
как раз вчера прошивал тестер транзисторов этой штукой)
правда синапрогом.
спасибо за отличный обзор!
+
avatar
  • ploop
  • 17 июня 2017, 08:47
+6
Обзор классный, проностальгировал :)
У меня такой

+
avatar
  • CTAHOK
  • 17 июня 2017, 08:59
0
Ваши посты, причём давние, на форумах пару раз мне попадались:)
По сей день работаете с AVR или на другие платформы уже перебрались?
+
avatar
  • ploop
  • 17 июня 2017, 09:01
0
Дальше на STM32 пробовал, тоже отличная вещь. Сейчас, кстати, более актуальная.
Ну а сейчас тупо времени нету, хотя хочется что-нибудь поизобретать.
+
avatar
0
Это что за проггер такой?
Можно ссылку и что кнопочки делают?
+
avatar
  • ploop
  • 17 июня 2017, 12:21
+3
Кнопочки фиксируемые, так же работают — переключение 3/5В логики и пониженная скорость. Перемычка — самопрограммирование. Это слегка доработанная известная схема Protossa.

Ссылочку? Купить не выйдет, на складе закончились :D
Это самоделка. Разводка полснотью моя, плата заказана заводская в групповой закупке, где делалась не помню, 7 лет прошло. Было 5 экземпляров, 3 проданы, 2 у меня.
+
avatar
0
Благодарю! Очень хорошо получилось — даже лучше всех нынешних китайцев :D
+
avatar
  • ploop
  • 17 июня 2017, 12:30
+5
Дык с душой делал :)
+
avatar
  • ploop
  • 17 июня 2017, 12:25
+1
Да, кстати, разводка делалась под ЛУТ, там есть нюансы (например переходные отверстия под корпусом микросхемы не сделать, допуски другие и т.д.), прототип где-то валяется до сих пор…
+
avatar
0
Я тоже сам программатор делал, контроллер программатора пятью проводками шил. До сих пор в строю, причем китайский тоже есть, но свой роднее.
+
avatar
  • ploop
  • 19 июня 2017, 13:10
0
Аналогично — первый пятью проводками. Остальные четыре как на конвейере — шлейф, перемычка, следующий!
+
avatar
+2
Спасибо за обзор! Был программатор, была глючная arduino pro mini 168-я, которую захотелось перешить… оказалось, что программатор «не торт» — был заказал ещё один, для взаимопрошивки… в общем, пошёл по Вашему пути, только до конца ещё не добрался.
А тут — готовая инструкция ко всему! Хорошая экономия времени выйдет…
+
avatar
  • Whis
  • 17 июня 2017, 10:11
+4
Спасибо за столь монументальный обзор! Оставил в закладках.
+
avatar
  • CTAHOK
  • 17 июня 2017, 10:17
+1
До монументальности думаю, тут всё же не хватает подробного описания всех фьюзов с примерами и сравнения с AVR GODZILLA, который хвалят, — это первое что пришло в голову насчёт теоретического дополнения :)
+
avatar
  • ploop
  • 17 июня 2017, 10:58
0
тут всё же не хватает подробного описания всех фьюзов
А смысл? Опасные вроде описаны, остальные — в даташите. Они же отличаются у каждого конкретного МК (или линейки).
+
avatar
  • CTAHOK
  • 17 июня 2017, 11:18
+1
Хотя бы с источниками тактирования МК разобраться, т.к. смотрел довольно немалый выпадающий список оных в калькуляторе фьюзов, среди которых встроенный RC-генератор, Int.RC.Osc., Ext.Low-Freq.Crystall, Ext.Full-Swing Crystal и просто кварц. Чтобы не путаться между ними в дальнейшем, и для общего понимания тоже
+
avatar
  • ploop
  • 17 июня 2017, 11:22
0
А, ну так да, полезно.
+
avatar
  • u3712
  • 17 июня 2017, 10:43
-1
К обзору претензий нет, всё честно, подробно и «по делу».
Но, позвольте задать очевидный вопрос. Если:
Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.
… то стоит ли вообще с этим связываться? Лозунг «наша жизнь — борьба» потерял свою политическую актуальность, и давно. Получение бесплатных проблем на свою голову? Оно надо?
Я уж не говорю о том, что платформа AVR потеряла свою актуальность уже… навсегда.
К автору — заканчивайте вы этот мазохизм. Время — это самое дорогое у человека. Тратить его на AVR… не стоит.
+
avatar
  • Sdoro
  • 17 июня 2017, 10:56
+8
Ох уж эти «прогрессмены»! Вы же противоречите сами себе
Время — это самое дорогое у человека
Тратить его каждый раз на изучение новых платформ, которые чем дальше, тем быстрее плодятся как грибы после дождя,… не стоит. AVR ещё долго будет в ходу разработчиков-любителей, которые уже постигли этот «гранит», ибо его возможностей хватает с избытком на многие продукты для Home-применения.
Но вот если надо что-то за рамками, то тут, да, придётся грызть новое, и никуда от этого не деться, философия жизни понимаешь ли… :)
+
avatar
  • CTAHOK
  • 17 июня 2017, 11:05
+2
С AVR началось (кстати благодаря mysku) моё знакомство с программируемой электроникой и программированием вообще. К нюансам подключения отношусь спокойно (как пользователь windows, где всегда закрадётся баг). Архитектура AVR ещё в процессе изучения, например надо ещё дойти до работы ШИМ, UART, причём использовать не стороннюю библиотеку, а написать уже свою — это ещё плюс навык писать код на С. В AVR как оказалось, полно всякой периферии встроено, но мне важно понимать, в чём плох AVR по возможностям/надёжности, и чем лучше другие платформы, например тот же STM32. Возможно, я чего-то могу не знать, но расширить кругозор общей информацией о существенных отличиях было бы неплохо.
По нехватке времени согласен полностью.
+
avatar
+1
Пока забейте — если вы еще с ШИМ и UART не разобрались, то STM32 для вас дикий overkill (извините за англицизим, но русский аналог в голову не приходит) :)
Вот когда AVR будет не хватать — STM32 самое то.
Основные преимущества:
— сам процессор на порядок мощнее
— на порядок более мощная периферия
— DMA — высокоскоростная работа с периферией упрощается на порядок
— отличная совместимость по корпусам по всей линейке
Недостатки:
— высокий порог вхождения. Либо всё делать по даташитам на низком уровне, либо пытаться использовать CMSIS (неплохо документированный, но далеко не всегда), либо уходить на уровень HAL+Cube (документированный просто отвратительно)
— сложность начальной настройки компиляторов
— многоногие корпуса усложняют монтаж
+
avatar
  • loole
  • 17 июня 2017, 11:58
0
Вы не совсем правы. Человек может привыкнуть к авровскому ногодрыгу и будет сложно перейти на аппаратную реализацию в ARM. Я бы сейчас не тратил время на аврки, тем более стоимость STM предполагает очень низкий порог вхождения).
+
avatar
  • ploop
  • 17 июня 2017, 12:13
0
Собственно, чем ногодрыг AVR отличается от ногодрыга ARM, кроме того, что он реализован в последнем более удобно? Если освоить аппаратный ногодрыг, то его так сильно захочется, что будет нехватать на AVR и привалит экстаз на ARM
+
avatar
0
чем ногодрыг AVR отличается от ногодрыга ARM
хотя бы внутрисхемным отладчиком
+
avatar
  • loole
  • 17 июня 2017, 13:16
0
чем ногодрыг AVR отличается от ногодрыга ARM
Тем, что в ARM он не нужен, а ваш вопрос прекрасно иллюстрирует, что высказывание
Изучив AVR порог вхождения в STM32 становится сильно проще
совершенно не соответствует действительности.
+
avatar
  • ploop
  • 17 июня 2017, 14:48
+2
Тем, что в ARM он не нужен
Обоснуйте. Я что, в ARM не могу тупо зажечь светодиод?
совершенно не соответствует действительности
Угу, лучше сразу х86, чего там мелочиться…
+
avatar
  • penzet
  • 17 июня 2017, 15:08
0
+
avatar
0
Ээээ. Даже интересно — это к чему? Там описан использование на MSP430 некого HAL. Да, кстати, сюрприз — Arduino это тоже HAL. И, кстати, с практически аналогичным синтаксисом.
+
avatar
  • ploop
  • 17 июня 2017, 16:13
0
Без проблем что? 430й запустить? Я в курсе.
Вопрос был в том, почему «ногодрыгание» не нужно.
+
avatar
  • loole
  • 17 июня 2017, 16:21
-5
+
avatar
  • ploop
  • 17 июня 2017, 16:31
+5
отражает всю глубину непонимания…
Блин, конкретный ответ будет? Надоели эти высокопарные фразы.
+
avatar
  • loole
  • 17 июня 2017, 16:46
-4
Вам вряд ли поможет, но вот представьте, что светодиод нужно чуть менее тупо плавно включать и выключать.
Как ваши знания аврок помогут в случае ARM/
+
avatar
  • ploop
  • 17 июня 2017, 16:56
0
Как ваши знания аврок помогут в случае ARM
Очень просто: я буду знать, как работает аппаратный ШИМ.
+
avatar
  • loole
  • 17 июня 2017, 17:13
-6
+
avatar
  • ploop
  • 17 июня 2017, 17:21
+8
После AVR? на таймерах? Не смешите.
Угу, а в STM32 это на чакрах небесных работает…
+
avatar
+2
совершенно не соответствует действительности
напрасно вы так — AVR если для чего и подходит идеально, так это для обучения.
+
avatar
  • loole
  • 17 июня 2017, 16:27
-1
Ну только в той мере, как обучение полетам на воздушном шаре способствует навыкам пилота реактивного самолета. И там и там — воздух…
+
avatar
+1
Вас послушать, так и таблицу умножения учить не надо, пусть процессор считает.
+
avatar
  • ploop
  • 17 июня 2017, 16:42
0
И там и там — воздух…
Да будет вам известно, что пилоты даже самых крутых сверхзвуковых истребителей начинают обучение с легкомоторных любительских самолётов.
+
avatar
0
эти наборы навыков не находятся между собой в такой иерархии, на которую вы возможно намекаете

не удержался)
ладно, </флуд>
+
avatar
  • ploop
  • 17 июня 2017, 12:11
+2
Изучив AVR порог вхождения в STM32 становится сильно проще. Как, собственно, и в любую другую архитектуру, т.к. принципы то одни у всех, но архитектура AVR одна из самых простых.

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

И после этого поражаешься монстрозности ардуиновских библиотек, когда приходит понимание, что на какой-нибудь 32й меге можно марсоход построить с тысячью датчиков, а на ардуине — мигалку.
+
avatar
0
В AVR как оказалось, полно всякой периферии встроено,…, и чем лучше другие платформы, например тот же STM32.
в stm32 всё встроенное надо самому инициализировать, — бывает культурный шок)
+
avatar
0
В AVR тоже надо. В HAL STM32 инициализация очень похожа на таковую в Ардуино :)
+
avatar
+6
платформа AVR потеряла свою актуальность
:D :D :D
Это твердое пять!


Давайте Вы мне покажете аналог с таким-же огромным коммьюнити с такой-же огромной кучей готовых решений и библиотек — вот тогда и поговорим.

Только не приводите в пример STM, ладно? STM пока только пытается стать похожим на AVR.
Каждой нише свой инструмент — STM — мощные процессоры и использовать их для обычных задач — это стрельба гаубицей по воробьям. Из-за этой-же мощности они гораздо сложнее для понимания. Вон люди с ATMEL разобраться даже не могу до сих пор. Я уж молчу про эффективное программирование под STM — например большинство даже не понимают, что такое DMA и как им пользоваться — какая тут нафиг эффективность.

Ну и чем мощнее процессор — тем сложнее дойти до «бац, бац и в продашен!» — даже IDE там будет в разы сложнее, как и отладчик.

Вобщем, аналогов (пока) ATMEL-а и Arduino нет, к сожалению.
+
avatar
+1
Как бы AVR под свои задачи. Arduino это всего лишь кубики понятные домохозяйкам, ни о какой стабильности и надёжности конструкции и речи нет. Да и никто не позиционирует Arduino как что-то серьёзное. Собственно просто плата с обвесом камня, много переферии и куча набросков софта из которого можно что-то сложить и понять что за за зверь такой микропроцессор.
На STM пока никто конструктор массовый не выпустил.
+
avatar
  • LynXzp
  • 18 июня 2017, 03:01
+3
ЛОЛ, сейчас бизнес заказывает Arduino (если конечно у них нет ортодоксальных схемотехников). Какие могут быть проблемы с бибилиотеками которые протестированы огромной аудиторией, причем которые постоянно обновляются и поддерживаются, и я тоже слал пул-реквесты, в то время как консерваторы слова git не знают.

А по железу опять rolf, это же макетная плата. Причем хорошая, но все равно макетная. Плату потом делай сам.
+
avatar
0
Arduino это всего лишь кубики понятные домохозяйкам
В исполнении «Arduino» — чипы (в индивидуальных количествах) дешевле, чем сами кристаллы, поэтому глупо не использовать готовую конструкцию.

Кубики — еще много кому должны быть понятны, например автопром уже давно использует модульную сборку и замену узлов…
+
avatar
  • Sdoro
  • 17 июня 2017, 10:44
+1
Да уж, навеяло… Недавно тоже прикупил такой на посмотреть что за зверь! Скажу честно: если бы это был мой первый программатор для ATMEGA, я бы, вероятно, и не перешел на эти процессоры: каждая прошивка или установка/подключения к ПО — спортлото. Но я выбрал Bitbang программатор из-за того что его не нужно ничем прошивать, а в те далекие времена первоначально прошить чип было проблемой. Этот же так и не смог заюзать на все 100.
Теперь уточнения по посту. Всё-таки правильно называть этот программатор USBasp — так задумали авторы, вот их страничка. Установка драйверов поменялась, теперь не надо отключать проверку подписи драйверов. Авторы рекомендуют мастер-установщик Zadig. Просто качаем драйвер по ссылке с сайта автора, ставим выбирая libusbK (это позволит обойти многие проблемы на Win 10 64bit). Ну и дудку нужно сменить, если используется: AVRDUDE supports USBasp since version 5.2.
Если задействовать программатор в среде Arduino IDE, то в ней нужно заменить файлы дудки avrdude.exe и avrdude.conf на скаченные.
Это всё я пишу для тех, у кого возникли проблемы (как у меня) со сторонними программами и интеграцией в Arduino IDE. Кстати, как я понял, записать в Ардуину загрузчик с помощью USBasp без бубена так ни у кого и не получилось…
Всем удачных прошивок!
+
avatar
  • ploop
  • 17 июня 2017, 11:01
0
Кстати, как я понял, записать в Ардуину загрузчик с помощью USBasp без бубена так ни у кого и не получилось…
А в чём там проблема то?
+
avatar
  • Sdoro
  • 17 июня 2017, 11:13
0
Просто не записывает… (имеется ввиду из среды Arduino IDE). Попробуйте, может у вас выйдет.
+
avatar
  • ploop
  • 17 июня 2017, 11:22
0
В смысле, сам загрузчик потом не работает?
А залить его той же дудкой можно (в Arduino IDE она же и используется на сколько знаю)
+
avatar
  • Sdoro
  • 17 июня 2017, 11:53
0
Конечно можно залить чем угодно. Речь идет о том что в Arduino IDE имеется удобный алгоритм (пункт меню) для записи загрузчика. Сам загрузчик просто так не записать. Надо снять lock с области памяти, определить её будующий размер, записать загрузчик, восстановить lock.
Так вот, после «тись» в меню «Записать загрузчик» в диагностике видно что что IDE пытается выполнить все эти пункты, но посреди вываливается ошибка (не нравится ей clk). Просмотр апосля процесса показывает что память пуста, а lock восстановлен.
ПОВТОРЮ — это относится только к Arduino IDE (новые версии) «Записать Загрузчик». Другие программаторы из списка делают это на ура.
+
avatar
  • ploop
  • 17 июня 2017, 12:01
0
А, всё, понял.
+
avatar
  • Sanja
  • 17 июня 2017, 12:09
0
спасибо! В своё время побился об это головой, плюнул, и закинул usbasp подальше в глубину ящика. Надо будет попробовать снова — а то лежит пара дохлых ардуин со слетевшим загрузчиком.
+
avatar
  • LynXzp
  • 18 июня 2017, 03:05
0
Wat, wat? Очень давно делал (точно более двух лет назад), сейчас вот попробовал — тоже работает.
Arduino IDE 1.8.1 Linux
(С другой стороны это такая редкая необходимость...)

P.S.Программатор взял именно такой как в обзоре.
/home/lynx/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/lynx/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cusbasp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 11:00:16
         Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright © 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/lynx/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf"
         User configuration file is "/home/lynx/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

/home/lynx/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/lynx/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cusbasp -Pusb -Uflash:w:/home/lynx/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/optiboot_atmega328.hex:i -Ulock:w:0x0F:m 

+
avatar
  • LynXzp
  • 18 июня 2017, 03:11
0
....
avrdude: reading input file "/home/lynx/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against /home/lynx/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: load data flash data from input file /home/lynx/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: input file /home/lynx/.arduino15/packages/arduino/hardware/avr/1.6.18/bootloaders/optiboot/optiboot_atmega328.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.


Прошу прощения за простыню текста, но это специально для неверющих.
+
avatar
  • Sdoro
  • 18 июня 2017, 17:58
0
Спасибо, верю. Правда, в жизни не видел загрузчика размером 32768байт!!!
avrdude: 32768 bytes of flash written.
Ну линукс ещё та штучка. А теперь такое же на Win 10 64bit?!
+
avatar
  • LynXzp
  • 18 июня 2017, 22:14
+1
Прошилось, сейчас все расскажу, лучше присядьте.

Windows ещё та штучка, с драйверами пришлось мучатся и только один программатор заработал и то не на любом драйвере. (Использовал утилиту Zadig по рекомендации с fischl.de)

1. Программатор обозреваемый в данном обзоре прошивает загрузчик из Arduino IDE если стоит галочка «показать подробный вывод при загрузке», вне зависимости в Linux или Windows. (Но в Windows нужно еще поставить драйвер, или с танцами или с Zadig)

2. Программатор USBISP в металическом корпусе с небольшим китайским изменением разводки, и с моей прошивкой, на основе исходников USBasp с fischl.de. (Прямо таких сейчас в продаже нет, есть очень на него похожие, в чем разница — не знаю). Прошивал потому что китайцы туда записали что-то свое, в Linux не определялся.
Прошивает загрузчик всегда, но в Windows 7/10 x64 не работает ни с какими драйверами. (предположительно, все версии всех ОС не проверял, но точно работает в XP x86 и 7 x86)

Вот мне сейчас интересно стало зачем обозреваемому программатору трехвольтовое питание, если он не в состоянии прошивать контроллеры на низкой скорости? (не ну 8МГц еще хватит, а вот 1МГц уже нет для прошивки на полной скорости)

В принципе, да, признаю что у USBasp проблемы. Но проблемы с Windows x64 и с USBISP. Ну а я разобрался, и проблемы индейцев шерифа не волнуют, в Linux USBasp всегда работает. Видимо он устарел и под Windows x64 ни одного драйвера, не смотря на то что их как минимум 4 всего (или может стоить обновить прошивку.

P.S. Сам удивился 32768 байтам, но предположил что все остальное забито нулями чтобы стереть если были какие-то остатки прошвки, или потому что загрузчик пишется в самый конец, а подсчет идет по последнему адресу. Hex файл сам по себе маленький содержит данные для 0x7e00-0x7fff и…
:0400000300007E007B, 03 означает Start Segment Address, а что это значит — за 5 минут не нашел, глубоко не стал копать. В обычных hex файлах такого нет.
+
avatar
  • Sdoro
  • 19 июня 2017, 00:57
0
Подождите, подождите! Это очень интересно. Что-то я не понял с первого раза. Давайте по порядку:
прошивает загрузчик из Arduino IDE если стоит галочка «показать подробный вывод при загрузке», вне зависимости в Linux или Windows
Это на Windows 10 64bit? А в логе сколько байт? 2048? У меня (да и не только) хоть с отладкой, хоть без — не шьется. Выдаёт ошибку про скорость и ни фига. А версию Arduino IDE не подскажете?
Использовал утилиту Zadig
Можете уточнить какой драйвер в ней выбирали?
Прошивает загрузчик всегда, но в Windows 7/10 x64 не работает ни с какими драйверами
Что это значит? Прошивает, но не работает. Или прошивает только в Linux?
он не в состоянии прошивать контроллеры на низкой скорости
Почему? Я прошивал тиньки с установленной перемычкой. И причем тут питание? Или Вы что-то другое имели ввиду.
+
avatar
  • LynXzp
  • 19 июня 2017, 01:38
+1
Это на Windows 10 64bit? А в логе сколько байт? 2048? У меня (да и не только) хоть с отладкой, хоть без — не шьется. Выдаёт ошибку про скорость и ни фига. А версию Arduino IDE не подскажете?
Да, windows 10 64bit. Отображает те же 32768 байта (или Вы про что?). При включенной опции «подробный вывод», при отключенной говорит что скорость не может выставить (и никаких байт).
Arduino IDE 1.6.5
Сейчас обновил до 1.8.3 — все аналогично.
Zadig, Можете уточнить какой драйвер в ней выбирали?
libusb-win32 — с ним сработало
WinUSB (libusb) — не сработал
остальные не пробовал (с этим программатором, на котором прошивается).
Или прошивает только в Linux?
Прошивает только в Linux или Windows x86, но вне зависимости от опции.
Почему? Я прошивал тиньки с установленной перемычкой. И причем тут питание? Или Вы что-то другое имели ввиду.
Какой перемычкой? Фьюзом когда они работают на 128kHz? Тогда значит программатор может шить на медленной скорости. (Чего же avrdude выдает ошибку?)
И причем тут питание? Или Вы что-то другое имели ввиду.
При низком напряжении уменьшается максимальная частота работы. (3.3V — 8MHz, ниже — меньше) Соответственно прошивать их нужно на более низкой частоте. Но как раз при 3.3В и 8МГц можно прошивать на максимальной скорости, так что я промахнулся. Но все равно как таким программатором прошивать чистые чипы с завода у которых внутренний кварц на 1МГц (ATmega128*)?

P.S. да не мучайтесь, работает — ну и ладно. (У меня например ESP8266 через arduino программируется, но вообще не работает, а AT прошивки или скомпилированные с Espressif SDK — работают.)
+
avatar
  • Sdoro
  • 19 июня 2017, 11:30
0
Да, windows 10 64bit
Большое человеческое спасибо. Видимо надо заняться подбором драйвера под дудку! У меня libusb-win32 не заработал со старой дудкой и я пользовал libusbK. Как только будет время, сразу за дело :) Хотя мне писать загрузчики и не нужно (если что, задействую программатор), но, как говорится, «для порядку».
У самого уже готов проект на ESP8266, плата набита, IDE установлено, даже диодиком трехцветным помигал. Шил (насколько помню) прямо из Arduino IDE. Но, как всегда, ВРЕМЯ распоряжается нами… ждет своего часа.
Ещё раз спасибо.
+
avatar
  • Sdoro
  • 19 июня 2017, 11:43
0
Какой перемычкой?
Я имею ввиду перемычку JP1 на плате, называется «Slow SCK». У меня вначале тоже была ошибка, но потом я перепрошил USBasp, заменил драйвер, заменил дудку — вот что-то повлияло и перемычка стала работать.
Напряжение 3.3V, как я понимаю, сделано для возможности прошивать низковольтовые чипы (у Атмела полно чипов, вроде с маркировкой LV, которые питаются 1.8-3.3V). На скорость это никак не влияет.
+
avatar
  • loole
  • 17 июня 2017, 11:15
+1
Есть еще проект, сильно расширяющий возможности китайской железки.
Для аврок вместо глючной khazama пользовался eXtreme burher.
+
avatar
0
Точно. Благодаря этой прошивке usbasp удалось записать 93C86 в стиральной машине :).
+
avatar
+1
каждая прошивка или установка/подключения к ПО — спортлото.
Программатор тут совершенно не при чем, как ATMEL, IDE и софт для программирования.

Причем тут только Вы.
+
avatar
  • Sdoro
  • 17 июня 2017, 11:23
0
Спасибо… и от меня и от тысяч других пользователей с нашего «Шарика»
+
avatar
+2
Что делать — очень часто Вы и тысячи других пользователей нашего «Шарика» не удосуживаются просто прочесть инструкцию (в данном случае datasheet), где все это изложено подробнейшим образом.

Я уж молчу про «спросить Google» — на форумах это все уже давно разжевано тысячи раз.

Но это же надо напрячься, а всем хочется «бац-бац и в продакшен!».

Но чем более сложная система, тем больше надо читать и понимать — увы.

А если этого не будет — то будет как у Вас — вместо того, чтобы обвинять себя — что не осилил, не разобрался — Вы и тысячи Вам подобных пользователей обвиняют систему, IDE, процессоры, софт для программирования — лишь бы не себя.
+
avatar
  • Sdoro
  • 17 июня 2017, 11:43
+1
Ой, правда?! Я-то осилил и разобрался. И никого и ничто не обвиняю — это только Ваши домыслы. Я имел возможность поработать с разными программаторами и сравнить их со всех сторон. Так вот USBasp из них самый капризный, не в смысле железа, а в смысле установки драйверов и интеграции.
Перед началом работы я, как Вы и советовали, «спросил Google» и прочитал с десяток инструкций и всё-равно возникли проблемы. Всё зависит от того, что хочется получить от этого девайса. Просто, хочется предупредить будущих покупателей данного программатора о возможных трудностях с установкой и использованием.
Вот кстати одна из веток
+
avatar
0
Так вот USBasp из них самый капризный, не в смысле железа, а в смысле установки драйверов и интеграции.
Вы противоречите сами себе вот в этом:
Ой, правда?! Я-то осилил и разобрался
Я купил USBASP, поставил дрова и до сих пор программлю все без единой проблемы.
Никаких проблем ни с железячной частью ни с софтверной не было.

Думаете я самый умный?

Почему у меня они не капризные? И все работает как надо? Мало того, прораммеров этих у меня 3 штуки с разных ревизий (последняя 3.1) — и все работает нормально и под ноутом и под десктопом.

Давайте, скажите мне что «мне достались просто хорошие программаторы», или «просто все так сложилось» :D

А людей с проблемами всегда куча, просто понимать надо то на чем работаешь и как работаешь — и не будет проблем ни с драйверами ни с софтом ни с процессорами.

А если что-то не работает — обвинить только себя, разобраться, локализовать и нейтрализовать проблему + поделиться решением с людьми в сети.

Так работают настоящие технари, а не плачут и сетуют на софт, кривые драйвера и т.д.
+
avatar
  • Sdoro
  • 17 июня 2017, 12:04
+1
Поздравляю, Вам повезло, а другим не очень. И таких, поверьте, не мало. Достаточно, как Вы говорите, «спросить Google».
Хочу предупредить потенциальных пользователей USBasp — может у вас и не будет проблем с ним ( как у StainlessSoul), но морально надо подготовится к возможным трудностям.
За сим откланиваюсь…
+
avatar
  • LynXzp
  • 18 июня 2017, 03:22
+1
У меня тоже при прошивке за несколько лет проблем было много. Но все сводились к следующим:
— контакты,
— фьюзы,
— высокая скорость прошивки для 3В плат,
— китайский USBISP на деле оказался совсем не USBasp, с измененной схемой и прошивкой, «пришлось его перепрошить до версии 2».
+
avatar
0
Да ладно! «Тысячи леммингов не могут ошибаться!»©

Наиболее распространенная в таких случаях ошибка: разные GND или Reset не дотягивается до записываемого чипа: например из-за лишнего конденсатора по дороге. :)
+
avatar
+4
Монументально!

Дополню немного по своему не малому опыту.

1. Лучше всего программить из AVRDUDE + AVRDUDE_GUI — достаточно быстро, надежно и очень гибко.
2. Лучше брать программатор, где разъем расположен с торца — удобней.
3. Программатор можно переделать в аналог STK500 (AVRDUDE) и тогда можно будет использовать стандартный способ прошивки в старых Atmel Studio. В новых Atmel Studio нужно будет пропатчить dll-ку. Однако сразу скажу, что из-за программной эмуляции скорость прошивки заметно упадет по сравнению с обычным USBASP программатором.
4. Данный программатор не работает в режиме HVP (High Voltage Programming), так что если использовать ногу «reset» как порт у ATtiny13, то получится прошить только один раз.

Fuse-биты нормально понимаются, если просто принять, что в каких-то программах они работают в инвертированном режиме, а в каких-то — нет. AVRDUDE_GUI имеет возможность переключения этого режима.

Если голова и руки растут правильно — никаких проблем не будет — все будет шиться быстро и четко. Для этого достаточно один раз разобраться как работает прошивание процессора и какие шаги там есть. Все это есть в datasheet.
+
avatar
  • CTAHOK
  • 17 июня 2017, 11:22
0
Спасибо за дополнение, надо попробовать эту инструкцию.
+
avatar
+2
Отдельное спасибо за добавление USBasp в Atmel Studio, это значительно упростит жизнь!
+
avatar
  • CLX
  • 17 июня 2017, 11:18
0
Взял такой же пару лет назад.
Так и не смог заставить определяться компом (win).
Неизвестное устройство, даже id не отдаёт.
Диоды, стабилитроны на плате целые.
Выкинул в итоге.
+
avatar
+1
— монументально!
Лежит в каком-то ящике такой уже года 3, — всё никак руки не дойдут сменить прошивку на аймаксе и прошить (ещё не собранный!) транзистор-тестер!
+
avatar
0
Задам здесь вопрос в тему — кто-нибудь встречал на просторах Ali простенький программатор с поддержкой HVP (High Voltage Programmer) для тинек?

Паять лень :D
+
avatar
+1
Готовый не встречал, но для восьминогих тинек делал, там из деталей лишь один транзистор)
+
avatar
0
Я только attiny doctor видел, если не сложно — дайте ссылочку на ваш вариант схемы.
+
avatar
+1
Вот ссылка
+
avatar
  • VOLVO7
  • 18 июня 2017, 00:42
+1
вот такая схемка наверное лучше подойдет: www.drive2.ru/b/1987351/
+
avatar
  • LynXzp
  • 18 июня 2017, 03:29
0
Я на HVP забил. Потому что для больших контроллеров там нужно подключать около 20 пинов. А их обычно и хочется спасать, а не атмеги8. Разве что Вы с ножкой reset работаете.
+
avatar
+1
Монументальный труд.
+
avatar
+1
такое ощущение, что автору за количество скриншотов платят
мне было бы тупо лень писать столько о простой и копеечной плате, лежит такая
брал не как программатор, а для подключения трансивера от нордика, типа мост такой будет усб-радиоканал

может позже напишу пару строк
+
avatar
+1
ощущение, что автору за количество скриншотов платят
Цель обзора —
нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам
, а это —
может позже напишу пару строк
благие намерения. Но «если вдруг соберётесь» — прочту с удовольствием, у вас стиль стёбный, бодрящий)
+
avatar
0
да я просто понять не могу, что там объединять в древней платке за пару баксов?

единственный годный авр программатор и софт сделала только microe
у меня от них плата разработчика, тоже обзор хочу написать
+
avatar
0
По поводу драйверов: сейчас советуют устанавливать драйвера с помошью Zadig . Для любителей по старинке устанавливать драйвера в EasyBCD есть галочка «отключить проверку подписи драйверов», до win 8,1 точно работает
+
avatar
  • sav13
  • 17 июня 2017, 20:43
+1
Купил давненько такой программатор. Шил из под Arduino 1.0.X нормально. Под 1.6.X перестал работать, оказывается нужно перепрошивать. Теперь понятно, зачем они парами продаются )))

Затем освоил Arduino ISP программатор. Держу под это дело нанку и плату с кучей панелек.
Шьются и тиньки и меги с пол пинка. Для полного счастья не хватает разве что высоковольтного программатора для восстановления фьюзов. Никаких проблем занизить скорость для тиньки.
+
avatar
  • CTAHOK
  • 17 июня 2017, 21:20
0
Видел один лот, где продавалась сразу пара таких программаторов, здесь уже сам решил взять два.
Для полного счастья не хватает разве что высоковольтного программатора для восстановления фьюзов.
Ещё наверно отладчика:)
+
avatar
0
я брал один, и обновил ему прошивку с помощью ардуины уно, (можно нано) прошитой в ISP
+
avatar
0
И после такого обзора вы еще говорите что у вас плохая память?)) не верю
+
avatar
  • CTAHOK
  • 17 июня 2017, 23:33
+1
По известному закону подлости, какой-то момент может выпасть из головы, я буду сюда периодически обращаться для сверки:) Ну а обзор писался не за один присест, ещё перед публикацией, когда пост был в черновиках, там уже было насчитано 50 с лишним просмотров:) — столько раз редактировал его и дополнял.
+
avatar
0
У меня на такой обзор не хватило б не только памяти, но и нервов)) ставлю Твердый +

Хотя да, бывает как заморочишся, и лень все хронологию манипуляций запоминать и писать, а через пару дней уже ничего не помнишь))
+
avatar
  • CTAHOK
  • 17 июня 2017, 23:40
0
Два ещё чем удобно, — это над одним из них можно ставить эксперименты, думаю второй под AVR Doper прошить
+
avatar
0
Тоже купил такой программатор, тоже для удобства, но как позже оказалось сильно намудохался с ним при прошивке голых Atmega328p в dip корпусе. Вначале ардуино иде ругалась на старую прошивку, пришлось обновить этому программатору прошивку с помощью ардуины уно прошитой в isp. А после он сам уже ни вкакую не видел эти чипы воткнутые в ардуино уно, пока с помошью мозгового штурма не замкнул как раз перемычку JP3. И после этого чудеса не закончились)) Ардуино иде только версии 1.0.5 или 1.0.6., 1.8.2 не катит! и Только тогда удалось им попрошивать загрузчики! И то странным образом- первый раз с Low режиме с замкнутой JP3, а второй раз в обычном.Только после этого прошитые загрузчики стали заливать скетчи сами. Естественно на такое допетривание ушло времени порядком, Вот такой горький опыт..))
+
avatar
  • CTAHOK
  • 17 июня 2017, 23:37
0
Я бы тогда просто экспортировал скетч в HEX, затем через AVRDude Prog залил, хотя удобнее без лишних телодвижений работать:)
+
avatar
0
у меня задача была просто взять и новым чипам попрошивать загрузчики с помошью этого программатора и софта арудины иде. А вышел тот еще вышеописанный гемор)) таже ардуинка перешитая в isp так не доставляет проблем)) шьет загрузчики в лет. Возможно сам софт ардуино иде виноват. У него вообще нет никакой стантартизации, что изрядно бесит, когда один и тот же скетч может лится на одной версии, а на другой выдаст неизвестную ошибку, или даже зальет скетч, но будет работать он с глюками, было и такое
+
avatar
  • CTAHOK
  • 17 июня 2017, 23:58
0
Кстати, один раз, но тоже заметил один баг, когда из Arduino IDE прошил Pro Mini через USB-TTL конвертер. Программа работала странно, как будто новый код записался поверх старого только наполовину — были признаки работы старого кода.
+
avatar
0
Я точно знаю один такой скетч, где версия иде 1.8.2 будет шить его без ошибок, но работать он будет с глюками!)) зато версии 1.0.5 1.0.6 будут шить его, и без проблем будет работать. Вообще слышал такое что версии 1.0.х и 1.х.х это вообще разные линейки. НО, даже 1.0.5 и 1.0.6 могут работать по разному. и то выдавать, то не выдавать ошибки. Лично мне такая несистематизация, уже все охоту почти отбила)) Один контроллер, один вроде софт, а такая дикая несовместимость(( Сидишь и на ровном месте порой часами разбираешься в чем дело
+
avatar
  • CTAHOK
  • 18 июня 2017, 00:34
0
С версиями этих IDE там точно беда! Когда я только получил на руки новые Attiny13, то первым делом нужно было скачать ядро и положить в папку с этой программой, перебрал три версии — не работало. На 1.0.5 r2 заработало и тиньки начали нормально шиться. Для ESP8266 (кстати совсем забыл про эту платку) уже отдельная папка с Arduino IDE, для обычных мег — третья… Вот эта свистопляска и стала одной из причин перейти на что-то более универсальное.
+
avatar
  • tklim
  • 18 июня 2017, 02:07
0
Есть и такой и самодельный. И когда-то LPT+5 резисторов.
Но потом в какое-то время злостно задушил жабу и купил AVR Dragon. И жизнь стала совсем проще. Одна отладка Tiny13 через debugWire стоит того.
+
avatar
  • CTAHOK
  • 18 июня 2017, 03:23
0
Хорошая вещь, сам посматривал на такой. Почём брали? Но судя по другим отзывам, его спалить легко. Нужен список мер предосторожности для работы с ним. И ещё на плате какой-то элемент прикосновением можно вывести из строя. Где-то возле танталового конденсатора справа наверху:
+
avatar
  • tklim
  • 18 июня 2017, 08:41
0
Дело было лет 6-7 назад, вроде 80$, хотя до этого было 40 — но тогда это было дорого :)
Насчет спалить — читал, но минимальный корпус — и все ок. В крайнем случае, лечится перемычкой — тот нежный преобразователь нужен чтоб получать ровные 5В если на USB просадка.
+
avatar
  • LynXzp
  • 18 июня 2017, 03:38
+1
LPT с резисторами не круто. Для смелых без резисторов.
+
avatar
0
Чтобы не возиться с драйверами, есть прога zadig. Достаточно выбрать устройство и тип драйвера libusb и zadig поставит для него libusb. Для тех, кто привык к ардуино, но хочет попробовать Atmel Studio, есть дополнение Visual Micro (ардуино). usbasp там работает «из коробки». Да, это ардуино, но ведь ардуино это просто набор функций оберток и можно не пользоваться этими функциями. В любом скетче можно писать просто на регистрах. Код main, что приведен в обзоре, по этой причине в ардуино среде естественно скомпилируется. При этом всегда есть возможность вызвать что-нибудь из ардуино функций. Например вывод на консоль. А с программатором и загрузчик естественно не нужен.
+
avatar
0
Купил такой программатор на Али — оказался неисправным. Виндовс не опознает его как устройство USB. Первое предположение: китайцы не залили софт в микроконтроллер. Посоветуйте, что делать.
+
avatar
  • CTAHOK
  • 18 июня 2017, 11:47
0
Если есть ArduinoUNO, то попробуйте эту инструкцию
Плату ещё осмотрите, может не пропаяно что где.
+
avatar
  • ResSet
  • 18 июня 2017, 12:33
0
Уже в который раз вижу, все думаю надо купить, дабы осваивать атмегу в мелких проектах, а потом листаю дальше, понимаю, что будет лень все это ковырять и заказываю горсточку «подвальных» ардуин. А обзор хорош, единственное — под спойлеры бы разнести часть информации, с конца в середину в поисках информации скроллить уже тяжко =)
+
avatar
  • CTAHOK
  • 18 июня 2017, 12:56
+1
Для простых дел без погружения на глубину вполне хватит pro mini + usb-ttl конвертер. Это мне вот приспичило в дебри залезть, причём чем дальше, тем интереснее:) Большое влияние тут оказал Attiny13, маленький и дешёвый контроллер (взял пачку 10шт. за 3$), но с flash-памятью всего 1кб, в среде Arduino IDE с его упрощённым языком Wiring — не разгуляешься, чистый Си — более экономнее и заставляет думать, как бы поменьше да похитрее код написать:)
+
avatar
  • ResSet
  • 18 июня 2017, 15:31
0
Да, с Attiny13 возни тоже больше чем с ардуиной, я тут лайтбокс делаю со свадебными фотографиями, корпус готов, в планах управляемая подсветка на RGB светодиодах — смена цветов по касанию и парочка автоматических режимов, вот думаю регулировку яркости через фоторезистор еще вопхнуть. В теории Attiny13 должен такой функционал потянуть? Показал нескольким людям, просят тоже сделать, вот думаю как можно сэкономить на комплектующих.
+
avatar
  • CTAHOK
  • 19 июня 2017, 00:02
0
Как-то была однажды такая затея — сделать RGB освещение для портретов, но руки до приобретения светодиодов таки и не дошли. Потянуть то потянет, да вот количества ног на описанный фугкционал может наверно не хватить. Это уже в процессе станет понятно:)
+
avatar
  • ResSet
  • 19 июня 2017, 00:24
0
Как-то была однажды такая затея — сделать RGB освещение для портретов
Я думаю затея хорошая ) и память и ночник/элемент декора
+
avatar
  • CTAHOK
  • 19 июня 2017, 02:53
0
Добротно и аккуратно сделано:)
Три года назад делал такой по инструкции, целиком из бумаги, никаких крепежей, клея и прочего — просто интереса ради, как оно будет светится:
+
avatar
0
будет лень все это ковырять и заказываю горсточку «подвальных» ардуин.
Мне пришлось покупать такой USBasp как раз для смены загрузчика у «подвальных» ProMini… С «большой» ардуиной в качестве программатора — что-то не пошло шиться, а с этим — все как по маслу.
+
avatar
  • ska32
  • 18 июня 2017, 15:01
0
У меня вопрос по поводу блуждания посылки 5 месяцев.
Трека не было что ли? А как узнал, что посылка дошла? Извещение с почты?
А почему после 3 месяцев не открыл спор, что посылки нет?
+
avatar
  • CTAHOK
  • 18 июня 2017, 15:23
+1
Трека не было что ли?
трек циферный, отслеживание до границы
А как узнал, что посылка дошла? Извещение с почты?
да
А почему после 3 месяцев не открыл спор, что посылки нет?
спор открывал
____________

С почином, кстати;)
+
avatar
  • Nuts_
  • 18 июня 2017, 21:36
+1
я таким как раз ардуинки и шью :)
обзор хорош — много буков и картинков полезных.
+
avatar
0
Кстати, а вы не знаете, насколько хорошая идея использовать уно не в качесве игрушки, а для серьезного девайса, работающего годами? Как у нее со стабильностью, слетом программ?
+
avatar
  • CTAHOK
  • 20 июня 2017, 00:46
+1
Амбициозно, но думаю вполне, если грамотно всё организовать. Есть даже пример использования Arduino Uno в промышленности. Но первым комментарием к тому посту были озвучены недочёты, которые можно доработать.
+
avatar
0
Спасибо
+
avatar
  • demonk
  • 20 июня 2017, 15:44
+1
Добавлю, что для прошивки ардуинок (Uno, Nano и др) лучше использовать не кучу проводов, а штатный шлейф и переходник на 6-pin ISP разъем, имеющийся на этих ардуинках. Это всеж таки программатор, а не ArduinoISP. Так гораздо удобнее подключать и меньше шанс ошибиться.
Опять и на своих поделках можно 6-pin гребенки ставить, оно чуть компактнее чем 10-pin с половиной неиспользуемых контактов.
+
avatar
  • CTAHOK
  • 20 июня 2017, 15:49
0
Спасибо, нашёл даже дешевле — 0.68$ за 2 штуки. Надо брать.
Здесь выше уже был комментарий, где мне предлагали этот переходник, но он куда-то исчез.
+
avatar
  • demonk
  • 20 июня 2017, 16:24
0
Забавно, по той же самой моей ссылке я покупал 1 штуку, а не 5, и втрое дешевле. И плата более симпатичная «с талией» была. Надо же как китаец поменял лот. Интересно кому сразу 5 переходников нужны :)
+
avatar
  • kiv69
  • 25 июня 2017, 08:08
0
Валяется такой. Как и два десятка разных халявных атмеловских МК(котрые я и на халяву перестал брать, было бы уже несколько десятков).
Зачем брал — непонятно.
Полсотни разных PIC-ов не оставляют атмелу ни малейших шансов на жизнь, так как одних пиков мне до смерти хватит. С запасом. И не учитывая, что прибывают они быстрее, чем я успеваю на них что-то сделать.
Прибить бы надо хомяка.
+
avatar
  • CTAHOK
  • 25 июня 2017, 10:30
0
Чем хорош PIC по сравнению с атмегой?
+
avatar
0
у меня курсовая была меньше чем эта статья ))
+
avatar
  • old
  • 26 июня 2017, 17:50
-1
купите себе за нормальные деньги а не гамноскитая и будут вам ровные гребенки
+
avatar
  • emusic
  • 24 июля 2017, 17:09
0
Если он действительно совместим с USBASP (по виду похож), то есть прошивка для работы с SPI Flash 25-й серии.
+
avatar
  • pechon
  • 18 ноября 2017, 13:45
+1
Крайне подробно! Низкий поклон! Очень помогло начинающему программисту!
+
avatar
0
возможно глупый вопрос — с помощью этого программатора, можно прошивать флеш BIOS?