Вопрос новичка: Digispark без загрузчика

Mizar
Offline
Зарегистрирован: 23.12.2018

Приветствую.

Планирую испльзовать Digispark для хранения и ввоад паролей.

Столкнулся с проблеммой:

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

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

Обясните мне:

Если я в среде Arduino IDE напишу программку, откатаю ее....

могу ли я залить экспортируемый IDE hex контроллер USB программатором и удалить загрузчик.

Обязательно  ли при этом нужно менять фьюзы? и где? и какие?

Цели сэкономить в котнроллере место от загрузчика, пока не преследую.

Посдакажите правильно ли я все понимю?

И самое главное, как при этом будет определятся контроллер в Виндовс?

Вижу еще второй вариант:

Возможно ли в загрузчике заменить название Digispark Bootloader на другое.

Прошу камнями и контроллерами не кидать, я хочу разобраться.

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Используйте программатор и hex без загрузчика (IDE такие создает).

Mizar
Offline
Зарегистрирован: 23.12.2018

Правильно ли я понимаю, что использовать программатор и hex я должне использовать другую программу для прошивки, не  IDE?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Mizar пишет:

я должне использовать другую программу для прошивки, не  IDE?

Ну, не совсем. IDE сама ничего не прошивает, она использует программу avrdude. Вот и Вам её надо использовать (напрямую, мимо IDE). Программа эта у Вас есть (IDE же её вызывает). Находится она

<место, где установлена IDE>\hardware\tools\avr\bin\avrdude.exe

Feofan
Offline
Зарегистрирован: 28.05.2017
Плата на 328p работает без загрузчика после использования режима "Upload Using Programmer" в IDE. Отпадает необходимость возиться с командной строкой и ключами для avrdude.
 
Mizar
Offline
Зарегистрирован: 23.12.2018

Feofan пишет:

Плата на 328p работает без загрузчика после использования режима "Upload Using Programmer" в IDE. Отпадает необходимость возиться с командной строкой и ключами для avrdude.
 

Режим "Upload Using Programmer" выставляется автоматически при выборе способа программирования в IDE?

Правильно ли я понимаю: имеется штатная плата arduino nano (к примеру). При прошивке через IDE обычным способом, контроллер прошивается через загрузчик.

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

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

Нужно ли при этом менять фьюзы?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Пожалуйста, прекратите писать мелким шрифтом - трудно читать.

Mizar пишет:

Режим "Upload Using Programmer" выставляется автоматически при выборе способа программирования в IDE?

Вы когда-нибудь IDE видели? Там есть вот такая штука:

Вот ею Вы через программатор и загружаете.

Mizar пишет:

Правильно ли я понимаю: имеется штатная плата arduino nano (к примеру). При прошивке через IDE обычным способом, контроллер прошивается через загрузчик.

Если выбрать программатор, то при прошивке контроллера загрузчик стирается 

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

Mizar пишет:

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

Жмите, если нужно.

Mizar пишет:

Нужно ли при этом менять фьюзы?

Это Вам виднее. Нужно - меняйте, не нужно - не меняйте. Фьюзы, которые IDE считает умолчательными, она сама установит. Какие именно - включите подробный вывод загрузки - она Вам расскажет.

Feofan
Offline
Зарегистрирован: 28.05.2017

Дополню. При выполнении пункта "Записать Загрузчик" IDE пишет не только загрузчик. Ваш скетч будет затерт blink'ом.

Mizar
Offline
Зарегистрирован: 23.12.2018

Простите за шрифт. Сбился при цитировании.

IDE  видел, но на "Загрузить через программатор" не обратил внимания. Спасибо.

Воот, теперь стало ясно. Пойду эксперементировать. 

Всем спасибо за помощь. 

Mizar
Offline
Зарегистрирован: 23.12.2018

....что-то пошло не так.

имею:

Программатор USBasp с установленными драйверами.

ARDUINO Nano (old Bootloader)

Arduino IDE 1.8.7 и 1.8.9

 

Прошиваю плату через IDE > COM -  работает.

Подключаю плату к программатору через ISP (есть переходник или перемычками).

В IDE выбираю программатор USBasp.

Компилирую и загружаю "через программатор".

IDE пишет "загружаю"..... и все,висит. avrdude.exe в диспетчере грузит проц до 100%.

Через 3....5 мин, IDE пишет, что не удалось прошить контроллер.

Что я делаю не так? 

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

Mizar, если плата ещё программируется через бутлоадер попробуйте настроить мигалку (blink.ino) на вывод PB5. Если с этого пина уровень меняется, значит включен порт PB5 , стало быть Reset отключен , и МК перепрограммируется только через HVSP программатор.

Mizar
Offline
Зарегистрирован: 23.12.2018

Бутлоадер уже не работает, в целяях проверки железа программатора, сторонней программой бутлоадер стерся.... 

Можно ли судить о том, что если контроллер стерся (из другой программы), то ему не требуется высоковольтное программирование?

И если я смогу востановить загрузчик другой ардуиной, то это низковольтное программирование и он должен прошиваться USBasp?

Feofan
Offline
Зарегистрирован: 28.05.2017
1. нет
2. да
Зачем другая ардуино, если есть USBasp? Поставьте, к примеру, AVRDUDEPROG и попытайтесь читать контроллер через USBasp. Только читать.
 
Mizar
Offline
Зарегистрирован: 23.12.2018

Во время отладки прошивки, приходится частенько прошивать МК. При работе с одной программой это делается намного удобнее и комфортнее, чем экспортировать hex и потом переключаться на другую программу для прошивки, а там вдовесок еще нужно файл открыть. Это все частный случай, на вкус и цвет как говорится.

Другая ардуина сейчас нужна для восстановления первой ибо как USBasp не смог. Смог только стереть.

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

Mizar
Offline
Зарегистрирован: 23.12.2018

Отчет о выполненной работе:

Стертую Ардуину востановил другой ардуиной, стало быть программирование низковольтное.

Заменил прошивку в USBasp тоже с помощью другой ардуины.

Программировал контроллер с помощью USBasp и программы AVRDUDESS. Пишутся файлы с загрузчиком и без. т.е. программатор рабочий и AVRDUDE его понимает.

Одно не получается, прикрутить этот программатор к IDE. AVRDUDE из состава IDE вешается, прошивка не идет.

Если кто подскажет как побороть этот недуг, буду благодарен.

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

Mizar, убедитесь что стоят последние дрова.

Mizar
Offline
Зарегистрирован: 23.12.2018

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

Ваша ссылка помогла. Наконецто моя IDE подружилась с моим новым USPasp.

Всем большое спасибо за оказанную помощь.

Mizar
Offline
Зарегистрирован: 23.12.2018

Я научился прошивать Digispark с помощью программатора USBasp из программы Arduino IDE.

Возник вопрос..... Пример с библиотекой DigiKeyboard.h в системе определяется как DigiKey.

В каком месте в примере или библиотеке хранится это название? как его изменить?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

В файле usbconfig.h, строки:

#define USB_CFG_DEVICE_NAME     'D','i','g','i','K','e','y'
#define USB_CFG_DEVICE_NAME_LEN 7

 

Mizar
Offline
Зарегистрирован: 23.12.2018

вот блин, а я все искал слово целиком.... Спасибо.