Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



DFU_Prog 1.0

Сообщений 1 страница 18 из 18

1

Небольшая программа, загружающая прошивки в МК с аппаратным модулем USB, у которых "заводской" загрузчик фирмы Atmel. Это AT90USB162, AT90USB1286, ATmega16U4, ATmega32U4 и многие другие. По сути программа - аналог фирменной утилиты Flip, но реализован не весь функционал, а только протокол DFU и прошивка по USB.
Программа скомпилирована для Windows и Linux

Скриншот программы (Windows).

http://s011.radikal.ru/i318/1603/18/4174476d0eef.png

Скриншот программы (Linux). Компилировал тот же код, а поскольку между Windows и Linux  не малая разница, содержимое окна немного "поплыло", но работе программы это не мешает.

http://s019.radikal.ru/i607/1603/8c/65370e137819.png

Программа позволяет записать прошивку во флеш память, и данные в EEPROM, а так же запустить программу в МК. Поддерживаются bin и eep файлы. Hex не поддерживается в этой версии.
Одна из особенностей загрузчика МК в том что пока не будет стерта память, ее нельзя прочитать и ничего в нее записать. Память стирается при прошивке Flash и если попытаться записать что-то в EEPROM не записав сперва во Flash, то приведет к ошибке записи.

В Windows требуется установить драйвер, который находится в архиве папки Windows.
В Linux программу нужно запускать с правами Root.

Программа вместе с исходными текстами.

+5

2

Спасибо!

0

3

А загрузчик вшит на "аппаратном" уровне, его потереть случайно нельзя?

0

4

Загрузчик находится в boot области Flash памяти. Потереть случайно можно.

0

5

Тогда было бы полезно иметь возможность восстановить загрузчик, я поди свой потер давно (а где-то его и не было, если это xmega).

0

6

Загрузчик восстанавливается последовательным или параллельным программатором.

0

7

Не видел в АВР Студии такого функционала.
Или там как-то интеллектуально он его пропихивает, когда адресное пространство не используется?
И с фюзами как?

0

8

Собрал приложение для малины http://pure-basic.narod.ru/forum_files/ … rpi.tar.xz

http://pure-basic.narod.ru/forum_files/raspberry_pi/DFU_Prog.png

0

9

А что за приложение, а почему не открывается и картинка  не картинка ?  :glasses:

0

10

Ev3658 написал(а):

А что за приложение

В первом сообщении написано что это упрощенный аналог утилиты Flip, загружающей прошивки в МК с аппаратным USB (AT90USB162, AT90USB1286, ATmega16U4, ATmega32U4 и другие).

Ev3658 написал(а):

почему не открывается

Потому что для линукс arm (Raspberry PI).
Архив можно открыть в 7z архиваторе.
Для компа архив в первом сообщении.

Ev3658 написал(а):

А что за приложение, а почему не открывается и картинка  не картинка ?

Речь про мое предыдущее сообщение или первое?
В первом, картинки пропали из-за прекращения работы сайта radikal.ru

0

11

Пётр написал(а):

В первом сообщении написано что это упрощенный аналог утилиты Flip, загружающей прошивки в МК с аппаратным USB (AT90USB162, AT90USB1286, ATmega16U4, ATmega32U4 и другие).

Потому что для линукс arm (Raspberry PI).
Архив можно открыть в 7z архиваторе.
Для компа архив в первом сообщении.

Речь про мое предыдущее сообщение или первое?
В первом, картинки пропали из-за прекращения работы сайта radikal.ru

Ааа... понял.

Просто удивлён решению на Rasbery PI.
Жуть как хочется попробовать эту штуку в PureBasic.

0

12

Пётр

Пётр написал(а):

Небольшая программа, загружающая прошивки в МК с аппаратным модулем USB, у которых "заводской" загрузчик фирмы Atmel. Это AT90USB162, AT90USB1286, ATmega16U4, ATmega32U4 и многие другие. По сути программа - аналог фирменной утилиты Flip, но реализован не весь функционал, а только протокол DFU и прошивка по USB.
Программа скомпилирована для Windows и Linux
.

Здравствуйте. Случайно наткнулся на этот сайт, хотел Вам написать в личные сообщения, но здесь такой возможности нет, поэтому напишу сюда. В общем решил сделать HID устройство на at90usb647, подключил пару выводов как в даташите, d+- не перепутал, VBUS к VCC цепанул, UCAP через конденсатор к земле. Подключаю к компьютеру. Определяется как at90usb64, но с ошибкой драйвера, ошибка запроса BOS дескриптора, код ошибки 43. (Reset и HWB не задействовал в схеме) Что можно попробовать сделать, чтобы решить эту проблему ?

0

13

Попробуйте в Windows 7. Если будет так же, проверяйте правильность сборки.

0

14

Пётр написал(а):

Попробуйте в Windows 7. Если будет так же, проверяйте правильность сборки.

Я проверил на старом ноутбуке с виндовс 7, проблема там та же. Еще раз проверил, не напутал ли со схемой, прозвонил D+ и D- по даташиту разводил, не понимаю что не так. Наткнулся на форуме Microchip на статью за 2018 год, где у автора проблема точь в точь как у меня, причем на at90usb1287 такой проблемы нет, а потому он подумал, что дело в драйверах. К сожалению ему там никто не ответил, да и скачать официальные драйвера с официального сайта уже не получится. В принципе микроконтроллер можно запрограммировать так, что драйвер и не понадобится. Есть библиотека LUFA, которая как раз описывает USB, но там несколько файлов с окончанием c и h, а также makefile и я не понимаю, как их воедино объединить. https://forumupload.ru/uploads/0000/25/b8/2168/t268432.png   https://forumupload.ru/uploads/0000/25/b8/2168/t70223.png

0

15

Код ошибки 43 будет даже в том случае когда USB устройство не опознано. То есть одна из линий данных USB через резистор подтянута к 3.3в, но при этом в МК нет прошивки реализующей USB устройство.
В МК точно выполняется код загрузчика? Он там вообще есть (не стерт программатором)?

0

16

Bright_Fridge написал(а):

Есть библиотека LUFA, которая как раз описывает USB, но там несколько файлов с окончанием c и h, а также makefile и я не понимаю, как их воедино объединить.

Ставим AVR-GCC. Выбираем пример HID и на его основе пишем своё.
Когда то давно делал RGB светильник. Управляется с компьютера по HID USB.
Посмотрите пример в папке Demo.
В makefile ставим свой процессор и его частоту. Больше ничего трогать не нужно.
В Descriptors.h заполняем свои данные.
Сама программа в GenericHID.c
Вообщем разобраться можно.
Пример Ссылка

0

17

Пётр написал(а):

Код ошибки 43 будет даже в том случае когда USB устройство не опознано. То есть одна из линий данных USB через резистор подтянута к 3.3в, но при этом в МК нет прошивки реализующей USB устройство.
В МК точно выполняется код загрузчика? Он там вообще есть (не стерт программатором)?

Пробовал изначально, как камень пришел. Ошибка. Прочитал программатором, там пусто. Нашел какой-то hex файл загрузчика, вроде нужный. Ну и в общем тоже самое. Поиграться  с HWB и RESET пробовал, RESET на секунду убирал устройство из системы, а HWB никак не реагировал.

0

18

sva-don написал(а):

Ставим AVR-GCC. Выбираем пример HID и на его основе пишем своё.
Вообщем разобраться можно.
Пример Ссылка

Спасибо большое, даже свой пример прикрепили. Попробую

0