В наличии имеется Atmega16U4. Задача: 1) Сделать обвес мк 2) Записать простую тестовую прошивку в мк 3) Создать/использовать ПО на стороне хоста.
По первому пункуту все просто: плата сделана по ЛУТ ( корпус мк TQFP44), кварц 12 Мгц. Подключил через 910й програматор по SPI - чип читается. После исследований компиляторов оказалось что CodeVisionAVR 2.05 наконец то имеет поддержку этого чипа. Еще нужно подправить фьюзы для оптимальности - и тут проблемка: С завода на чип выставлены локбиты, и компилятор пишет что нужно стереть чип чтобы поменять фьюзы. Не отвеченные пока вопросы: 1) Если сотру чип - значит убью бутлоадер с USB? 2) как менять фьюзы? 3) как записывать и стирать свои прошивки не боясь уничтожить бутлоадер? 4) Есть ли какоето ПО для компьютера чтобы просто потестировать обмен данными с контроллером по USB ? 5) Где прочитать про Endpoint (интуиция подсказывает что это напрямую связано с обменом даных по USB интерфейсу)
Спасибо наперед за ответы, если до чего-то докопаюсь сам буду писать ответы сюда.
Последний раз редактировалось Valeri Вс июн 19, 2011 22:12:43, всего редактировалось 1 раз.
Для заливки прошивки,установки фьюзов. Я читал что можно как-то через USB и бутлоадер заливать прошивку,пробовал Atmel-овский FLIP, но пока что эта идея не увенчалась успехом.
Перепробовал все но безрезультатно. При подключении девайса к компьютеру по USB получаю PID=0x0000 VID=0x0000 и, следственно, дрова на девайс не ставятся. Резистор к Д- от питания на 1.5к не ставил. В даташите нету. Есть подозрение что не работает блок согласования уровней мк... ________________ Проблему решил. Кварц на 12 Мгц не вытягивал по частоте девайс (ну по крайней мере при заводских фьюзах, хотя в даташите 12МГц допускается). Поставил кварц на 16Мгц - все завелось нараз. Дрова установил с FLIP, но более новые лучше поискать на LibUSB.
По ходу изучения литературы и практики стало ясно что мирно существовать с встроенным бутлоадером не получится. - Бутлоадер залочен от копирования, эти локи можно снять и установить свои фьюзы только после полного стирания чипа. - На заводе был выставлен фьюз CKDIV8=0 что значит деление тактовой частоты на 8. Тоесть при кварце 16Мгц на вход ПЛЛ поступало 2 Мгц и ПЛЛ не вытягивал до частоты ЮСБ.
Снес все. Теперь фьюзы и локи програмируются как угодно. Пакет LUFA обещает бесплатные бутлоадеры и примеры програм для работы с УСБ с поддержкой чипов, все даже компилируется без ошибок. Но! Но при проверке залитой прошивки в мк - програматор(програма) выдает ошибку верификации.(биты в мк не совпадают с битами буфера). - Пробовал заливать простенькие прошивки - Пробовал выставлять заводские фьюзы - Пробовал в ИСП программаторе переключатся на повышеную частоту ______Пока безрезультатно
Satyr, моя цель не dfu бутлоадер, а программа для обмена по USB и выполнения моих задач. Я снес заводской бутлоадер, и теперь пытаюсь просто помигать диодами для начала на mega16u4(без подключения USB функционала) а прошивка не ставится. Я заливаю с CVavr так как WinAVR и AVRstudio не видят 910 програматор. При проверке после записи байты вообще не совпадают. Уже 4 часа сижу с бубном, и результата 0
Да работаю с ним уже пол года, все чипы по ISP шьются нараз. С этим чипом сигнатура читается,фюзы шьются. А вот флеш не програмируется коректно. ____________ После часов шаманства найдено временное решение. Когда делаем проект мастером начального кода - идем под нашим мк (Atmega16U4) все компилируем, получаем .hex файл. С cvavr под этим мк оно не шьется (причина не ясна), но если в окне программатора отключить проверку сигнатуры и установить не наш чип, а ATmega16 - то все прошьется правильно и без ошибок. (пляски с отключением проверки сигнатуры и без замены типа мк проводились и не дали результата).
Выходит следующее: 1) У чипа после стирания заводского бутлоадера появилась шиза и он вопреки сигнатуре принимает себя за другого. 2) никакой документации по данному глюку найдено не было... Вот угораздило...
Начал присматриваться к наноконтроллеру Atmega32U4/16U4 ибо они недавно появились в нашем каталоге. Хочется получить аналог связки atmega+ft232/ft245 только в одном более дешевом корпусе. Т.к. в рунете на них нет практически никакой полезной инфы, то меня в первую очередь интересуют вопросы по наличию готовых(т.е. собранных) драйверов для хоста, там драйверы Virtual Com Port и DLL для подключения к прогам типа тех что идут от FTDI. Как у них с этим обстоят дела, никто не в курсе?
Атмел предлагает фирменное ПО и дрова LibUSB к этим контроллерам. Все зависит от задачи. Если нужно сделать адаптер USB-RS232 то эти контроллеры все равно что по мухе из базуки палить. Дрова вроде нормальные. Есть возможность использовать стандартные виндовсовские дллки для обмена по USB с девайсом типа HID. Я в данный момент работаю над компиляцией по и испытываю трудности ввиду недостатка опыта визуального программирования.
+Пока стало ясно что эти МК заводятся не с любым кварцем. Уверенно работают с 8 и 16МГц.
Так в мануале работа с USB при любых и не гарантирована. именно 8, 16 и, насколько помню, 12mhz
У меня на 12МГц не завелся. Там вообще куча возможностей передачи данных через репорты только до них руки должны дойти. Стандарт ЮСБ расписан не на одной странице
Вообще интересует как на работу мк сказывается обмен по ЮСБ. Как я понимаю тут по сравнению с программной реализацией есть встроенный ПЛЛ который облекчает жизнь и снимает часть нагрузки с мк.
Заголовок сообщения: Re: Atmega16U4 работаем с USB
Добавлено: Ср июн 29, 2011 23:43:22
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Valeri писал(а):
Вообще интересует как на работу мк сказывается обмен по ЮСБ. Как я понимаю тут по сравнению с программной реализацией есть встроенный ПЛЛ который облекчает жизнь и снимает часть нагрузки с мк.
PLL (при правильной настройке ессно -)) ) служит для выработки частоты 48Mhz необходимой для работы USB при осциляторах на 8, 12(?) и 16Mhz. Нагрузка снимается (практически до нуля) тем, что в отличии от битбанга в V-USB, где при обмене по USB МК на 100% занят дерганьем сигналов на ножках, тут этим занят отдельный контроллер. С аппаратным USB загрузка при передаче соизмерима с обменом по UART. Ядро занято толькоподкладыванием/выкладыванием данных в fifo буфера. А есть же еще DMA.
но если в окне программатора отключить проверку сигнатуры и установить не наш чип, а ATmega16 - то все прошьется правильно и без ошибок.
ничего там не слетело, просто у всех AVRок одинаковый протокол программирования по SPI, поэтому поставив MEGA16 и можно шить любой AVR с 16К флэша, правда значение бит у фузов не совпадают
Дело не в том, проблемы не было бы если бы чип шился со своей сигнатурой. МК mega16U4 шьется нормально под mega16 ,а под своей не шьется коректно. проверка флеш дает ошибки несовпадения.
Тут еще подходит идейка как-то портировать наработки LUFA на компилятор CVavr. Последний меня устраивает. WinAVR более функционален но уж больно там все комплексно. Я хочу в мк прописать связь по протоколу SPI для одного дивайса. К нему идут библиотеки и с-файлы. Как это все дело обьеденить с прошивкой LUFA пока не понятно...
В CVavr вроде все просто- подключай библиотеки и пихай все функции до void main(void). Все в одном файле - легко проследить код. Если мои размышления неверны - прошу исправте
Странно, но я так всегда делаю а проблемы не исчезли. Только есть нюанс - когда меняеш название чипа меняется в программаторе CVAVR диапазон адресов программирования и ,видимо, в этом дело.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения