Прошивка через программатор USBasp

Bobre
Offline
Зарегистрирован: 01.12.2014

Заказал на Ебэе такую вот штуку. Уверяли что через эту штуку можно прошивать чипы Atmega8 и прочее. Так вот через Arduino IDE (как и через другие программы) прошить не получается, так как устройство не опредляется системой как COM порт, ни в Windows ни в Linux, хотя все системы видят его как устройство USBasp и ставятся драйверы. Вопрос такой - как через него выполнить прошивку и Ардиуновский бутлоадер?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

настраиваем:

"Сервис" -> "Программатор" -> "USBasp"

Прошиваем загрузчик(нужно выбрать плату до прошивки):

"Сервис" -> "Записать загрузчик"

А так можно прошивку сразу залить без загрузчика.

"Файл" -> "Загрузить через программматор"

З.Ы. Видимо с логикой у вас совсем туго. Может "ну его это программирование" ???

prosto_andriy
Offline
Зарегистрирован: 09.12.2012

Bobre пишет:

... устройство не опредляется системой как COM порт, ни в Windows ни в Linux, хотя все системы видят его как устройство USBasp

Всё правильно - так и должно быть! Тут уже написали, что делать, но если Вам нужен именно COM порт, то варианта только два (по крайней мере о третьем я не слышал).

1. Купить STK500 (явно не самый дешевый вариант)

2. Просто перепрошить USBasp в AVR Doper!  После чего AVR Studio будет опознавать его как STK500-совместимый программатор

Bobre
Offline
Зарегистрирован: 01.12.2014

Так я так и делал и все равно возникает ошибка, не надо ссылкаться на логику, по логике я первым делом попробовал эти кнопки, вот я и подумал что необходим COM порт так как внизу Arduino IDE написано Atmega8 on /dev/ttyUSB0 что и является COM портом.

Bobre
Offline
Зарегистрирован: 01.12.2014

Спасибо, буду искать дальше, видимо программатор я не правильно спаял.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1. USBASP не является компортом. Это программатор.
2. Рекомендую проверку программатора начинать с чтения сигнатуры и фьюзов.
3. Рекомендую сразу прошивать последнее фирмваре чтобы не выскакивало сообщеие типа " не могу установить клок".
    Пригодится ( тьфу-тьфу-тьфу) для команды B

Bobre
Offline
Зарегистрирован: 01.12.2014

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

Учту все советы

Bobre
Offline
Зарегистрирован: 01.12.2014

После перепайки коденсатора все завелось! А то пришла плата без схемы, соответственно конденсаторы пришлось наугад паять. Пришлось разбирать схемы аналогов и тут я понял что не все находятся на своем месте. Спасибо всем, кто ответил и помог. Мигание диода из примеров заработало.

Dronvod
Dronvod аватар
Offline
Зарегистрирован: 29.03.2015

Собирал себе сам, работает без проблем, единственное что надо делать это зажимать клавишу "Shift" перед заливкой скетча через IDE.

Сайт разработчика USBasp http://www.fischl.de/usbasp/

Ну а Китакй как всегда всё спионерил )))

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Медленный программатор....особенно когда чистые МК шьешь с низкой частотой....бутлоадер Дуни 7 минут писался. Соберу USBtinyISP , говорят быстрее.

Ну а AVRISP MKii вообще равных по скорости не имеет)

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

clk наверно маленький очень стоял. мега328 прошивается черзе USBASP секунд 10 максимум. мега8 секунд 5 максимум

поставь khazama avr programmer. запусти и не закрывай. в настройках поставь частоту clk 92кгц вроде. точно не помню. поиграться можно. и программируй (при запущенной программе)

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Khazama'ой и шил,настройки не менял,попробую. Спасибо!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

но это при учете что ты обновил прошивку программатора

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Всё, попробовал, 11 секунд! Да, прошивка новейшая, читал, что в старых недоступно программное изменение частоты)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Assuming you refer to a Atmel AVR micro controller, the only limitation is,
that the controllers main clock frequency must be at least 4x the clock speed of the ISP programming frequency.

Короче: при наших 16-ти можно по sck подавать не более 4-ёх.

Особенно с этим явлением знакомы те, кто переключается на внутренний генератор с делителем на 8 ( 1 МГц)
и любители работать на генераторе WDT (128 кГц) и на часовом кварце 32768 Гц

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

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Yarik.Yar пишет:

Всё, попробовал, 11 секунд! Да, прошивка новейшая, читал, что в старых недоступно программное изменение частоты)

вот видишь. а ты ругаешь. собирался программатор собирать

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Поставив частоту на 1.5 МГц  (максимум), добился результата в семь секунд при записи загрузчика. Странно, прошивает только один раз, потом приходится передергивать программатор, иначе стд. ошибки сыпятся типа "target doesn't answer" ...

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Ну откуда мне было знать! (с) Берт, "Дрожь земли" :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

слишком большую не ставь. тише едешь дальше будешь

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Хм....теперь сами скетчи на пашут. Заливаю стд. блинк, жму "Проверить" выдает несоответствие, да и диодик не мигает...Наверное, совсем угробил я Нану, сначала конвертер сжёг, видимо, и МК досталось

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

убавь частототу до 92кгц и по новой запиши

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Не даёт эффекта

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

сотри камень. перезапиши фьюзы и бутлоадер

Dronvod
Dronvod аватар
Offline
Зарегистрирован: 29.03.2015

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

Dronvod
Dronvod аватар
Offline
Зарегистрирован: 29.03.2015

Yarik.Yar пишет:

 

Медленный программатор....особенно когда чистые МК шьешь с низкой частотой....бутлоадер Дуни 7 минут писался. Соберу USBtinyISP , говорят быстрее.

Ну а AVRISP MKii вообще равных по скорости не имеет)

 

На работе ChipProg48, обычно им востанавливаю залоченные Меги ну и по работе гоняю ), Avrisp 2 и дудка для дома , но больше юзаю дудку.

Bobre
Offline
Зарегистрирован: 01.12.2014

А я удивился на сколько Altmega живучей оказалась, перепутал контакты когда подключал на макетной плате, и она расколилась, что обжогся когда дотронулся. Думал все, сгорел камень за 70 рублей (брал 10 штук из китая), а потом подключил нормально и все заработало. Сгоревших контактов обнаружить не получилось.

prosto_andriy
Offline
Зарегистрирован: 09.12.2012

Dronvod пишет:

На работе ChipProg48, обычно им востанавливаю залоченные Меги...

Вы имеете в виду чипы с неправильно "прошитыми" фьюзами?

Когда-то я купил десяток ATtiny13A очень дешево - можно сказать почти даром! Проверил несколько штук и... ...через USBasp - не читалась ни одна! Думал, что мне подсунули бракованные, но решил проверить на другом программаторе - универсальном TL866A. Прочитались все!!!

Оказалось причина была во фьюзе SPIEN (Serial Programming Interface ENabled) - этот фьюз вкл./выкл. внутрисхемное программирование!

В общем, поменял я этот фьюз на каждом чипе, и все они стали читаться/писаться нормально даже через USBasp, а я уже думал выкидывать!

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

 

Загуглите, есть прикольная вещица - ATMega Fusebit Doctor, восстановление фьюзов без гемора;) нужен лишь источник питания 12В)

Dronvod
Dronvod аватар
Offline
Зарегистрирован: 29.03.2015

Да их и имел :)) или они меня :))))) , Доктор фьюзов на данный момент в стадии сборки на smd , деталек не хватает , лень копать лом в дохлых платах, соберу посмотрим что за зверь , или только для spien годен...

 

alexbmd
Offline
Зарегистрирован: 15.01.2016

подавать 4мгц это имеется ввиду фьзами прошить МК в самом usbasp на 4МГц  ?  объясните плиз

в синапрог  есть возможность менять на целевом МК частоту... чего ?  чтоли выставлять частоту на которой будет работать целевой МК ? т.е синапрог это может делать в обход фьюзов ?

второй день мучаюсь, usbasp ни как не хочет работать в синапрог - пишет CLK не может выставить,  вы упомянули что дело в прошивке, что если поставить последнию официальную от 2011 года эта проблемма пропадет ?

alexbmd
Offline
Зарегистрирован: 15.01.2016

отвечал на это

trembo пишет:

Assuming you refer to a Atmel AVR micro controller, the only limitation is,
that the controllers main clock frequency must be at least 4x the clock speed of the ISP programming frequency.

Короче: при наших 16-ти можно по sck подавать не более 4-ёх.

Особенно с этим явлением знакомы те, кто переключается на внутренний генератор с делителем на 8 ( 1 МГц)
и любители работать на генераторе WDT (128 кГц) и на часовом кварце 32768 Гц

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

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

СинаПрог и другие - это всё аврдудэ.
Работа по SPI подразумевает не только как быстро вы сможете послать что-то куда-то в бездну
но и то что эта бездна должна успеть записать куда-то то что вы послали.

Поэтому тот клок который идёт для стробирования вами посылаемых последовательных данных по проводку МОСИ
должен быть в 4 раза ниже частоты вашего прошиваемого процессора, а  у нас он 16 МГц

Но!

В старой версии фирмвари USBASP ключ В - ключ изменения клока SPI  не поддерживался.
Перешить и забыть.

alexbmd
Offline
Зарегистрирован: 15.01.2016

оригинальная прошивка в исходниках на сайте. как ее скомпилить для моего 8A-AU ? чтоб получился хекс

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexbmd, смотрите внимательней, там есть готовые прошивки для меги 8, 48, 88

alexbmd
Offline
Зарегистрирован: 15.01.2016

понял.

объясните как работать с фьюзами

 

1) вот имеем такой фьюз например CKSEL3  его значение может быть только 0 ил 1 ? или может быть и 100 ?

2) за тактовку МК после перепрошивки отвечают фьюзы CKSEL3-2-1-0 ?   а работают они по принципу

например

CKSEL3 = 0

CKSEL2 = 1

CKSEL1 = 0

CKSEL0 = 0

получается CKSEL  = 0100 ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexbmd, CKSEL и прочие -это просто биты регистра. Конечно либо 0 либо 1.  Вам нужно какой нибудь калькулятор фузов, типа этого. там всё наглядно и по русски)

alexbmd
Offline
Зарегистрирован: 15.01.2016

господа вот вижу  в архиве usbasp.atmega8.2011-05-28.hex

но к нему еще makefile и там команды прошивки фьюзов и прочее..  зачем этот мейкфайл?  надо ли прошивать фьюзы как там написано ?   но даже если не надо что за значения-смысл фьюзов там прописанно ?

 

 

ЗЫ: калькулятор не открывается ;)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

alexbmd, тот мейкфайл сугубо для прошивки через какую-то программу. Фузы нужны конечно, не факт что те, что стоят по-умолчанию подойдут. У меня сайт с калькулятором работает, много аналогичных, можете поиском найти. там и прояснятся побитовые  значения 2х байт FUSE

alexbmd
Offline
Зарегистрирован: 15.01.2016

пока не нашёл калькулятора с пояснениями такого вида например

CLSEL

0100 - 1Мгц

0010 - 2Мгц

0100 - 8Мгц

 

вот такие вопросы возникли

lock bits которые отвечают за то что мы можем читать/писать МК это LB1..2 ?

часто слышу мы можем чтото сделать с МК если он не залочен. но в даташите пишут Lock bits can be erased with the Chip Erase command. Т.е. получается мы можем сбросить залочку простым erase chip?

наименьшая возможная частота у атмеги168 это 0.4-0.9Мгц CKSEL3..0 = "1000" или всетаки "0011"? или какая наименьшая

делителем мы можем наименьшую частоту еще поделить ? но на потребление питания делитель не влияет ?

alexbmd
Offline
Зарегистрирован: 15.01.2016

специалисты по фьюзам тут не водятся ?

NoLimit
Offline
Зарегистрирован: 24.12.2017

Здравствуйте,

столкнулся с проблемой - у меня Attiny44A-SSU и программатор AVR USBASP. хотел через него запрограммировать мою Attiny, пробовал разные программы, методы, ничего не получается. Скажите кто знает вообще можно через этот программатор такой чип запрограммировать?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а считывается хотя бы? прошивку программатора обновил?

NoLimit
Offline
Зарегистрирован: 24.12.2017

В том то и проблема что считывается а когда подключаю в цепь то ничего не работает

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

в смысле фьюзы например считать с мк получается?

NoLimit
Offline
Зарегистрирован: 24.12.2017

Да получается

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

А в какую цепь ты подключаешь? в готовую плату? если да там же к мк на пины программирования наверно что то висит?

NoLimit
Offline
Зарегистрирован: 24.12.2017

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну как обычно: какие фьюзы, светодиод на пине программированя? ну это сам почитай и разберись. инфы море

NoLimit
Offline
Зарегистрирован: 24.12.2017

Прочитал очень много чего но ничего не помогает. В какой IDE писать код для чипа?

yuhenotix@2p-ma...
Offline
Зарегистрирован: 09.06.2019

а где в  arduino  настроить скорость USBasp ?

И другие параметры задать  avrdude 

ПРОБОВАЛ ПОСТАВИТЬ -B10 ЗДЕСЬ

\hardware\arduino\avr\programmers.txt

usbasp.name=USBasp
usbasp.communication=usb
usbasp.protocol=usbasp
usbasp.program.protocol=usbasp
usbasp.program.tool=avrdude
usbasp.program.extra_params=-Pusb -B10

но никакого эффекта

 

 

yuhenotix@2p-ma...
Offline
Зарегистрирован: 09.06.2019
usbasp.program.extra_params=-Pusb -B0.5

Вот так будет достигнута максимальная скорость для USBasp.  clk ISP 1.5MHz

Но  добавить пункт  в меню так и не получилось.