|
AT90USB, нужна помощь |
|
|
|
Mar 30 2009, 09:08
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 7-10-08
Пользователь №: 40 746

|
Добрый день. Изучаю контроллер AT90USB82. Для начала нужно что бы просто устройство определялось как USB. Задача сверх типичная, но почему-то не могу найти подходящего примера. Пытаюсь разобраться с атмеловским примером AT90USBxxx USB device HID generic demonstration, но как-то не очень получается  Буду благодарен за ссылки на работающий пример USB устройства на AT90USB82. В дальнейшем задача обеспечить передачу данных между USB и памятью EEPROM. Если бы нашлось что-то похожее, было бы вообще супер. Тему создал в этом разделе, потмоу что я совсем начинающий и сразу сорри за собственный тупизм если что. Заранее спасибо.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Apr 17 2009, 08:52
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 7-10-08
Пользователь №: 40 746

|
Цитата Вот ссылка пример правда на AT90USB162 но это не существенно http://www.pjrc.com/teensy/index.htmlВ этом примере используется регистр UHWCON. Но в МК AT90USB82(162) такого регистра нету вообще. За что отвечает этот регистр в других мк (ATmega32U6, AT90USB646, AT90USB128) ? Прошивая этот пример, я надеюсь на корректное распознавание устройства. Но фигу  ConnectionStatus: DeviceFailedEnumeration. Почему так и как быть ?
Сообщение отредактировал Fedor Budylin - Apr 17 2009, 09:38
|
|
|
|
|
Apr 17 2009, 10:03
|
Частый гость
 
Группа: Свой
Сообщений: 158
Регистрация: 15-01-09
Из: Russia
Пользователь №: 43 426

|
Цитата(Fedor Budylin @ Apr 17 2009, 12:52)  В этом примере используется регистр UHWCON. Но в МК AT90USB82(162) такого регистра нету вообще. За что отвечает этот регистр в других мк (ATmega32U6, AT90USB646, AT90USB128) ? Прошивая этот пример, я надеюсь на корректное распознавание устройства. Но фигу  ConnectionStatus: DeviceFailedEnumeration. Почему так и как быть ? У Atmel на страничке для AT90USB162 есть живые примеры. http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4440 Единственное, что нужно соблюдать, подключить кварц 16Мгц. Все определяется сразу.
Сообщение отредактировал mikesm - Apr 17 2009, 10:08
|
|
|
|
|
Apr 20 2009, 11:15
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 7-10-08
Пользователь №: 40 746

|
При попытке открыть hex файл Atmel Flip выдаёт ошибку.  В чем может быть дело ?
|
|
|
|
|
Apr 28 2009, 13:35
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 7-10-08
Пользователь №: 40 746

|
Знающие, помогите! Я так и не смог прошить примеры с предложенной странички И так и не разобрался, почему устройство не определяется. Всё-таки, какие регистры должно минимум определить, что бы устройство определилось? В чем заключается процедура енумерайшон ?
Сообщение отредактировал Fedor Budylin - Apr 28 2009, 14:29
|
|
|
|
|
Jun 12 2009, 10:02
|
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512

|
Alex11не, резистор подтянут между VBUS (питание +5В от USB) и D- Винда говорит что устройство найдено но в диспетчере на это неизвестное устройстсво видно, что VID и PID винда от МЦУ не получает (нули). Попробую 1,5 кОм. Но думаю врядли поможет  Схему включения БЕЗ подтягивающего резистора прикрепил. Ядро МЦУ питается от линейного ИП 3,3В.
Сообщение отредактировал Halfback - Jun 12 2009, 10:47
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 12 2009, 10:56
|
Группа: Новичок
Сообщений: 2
Регистрация: 4-06-09
Из: Самара
Пользователь №: 49 929

|
Цитата(Fedor Budylin @ Apr 28 2009, 16:35)  Знающие, помогите! Я так и не смог прошить примеры с предложенной странички И так и не разобрался, почему устройство не определяется. Всё-таки, какие регистры должно минимум определить, что бы устройство определилось? В чем заключается процедура енумерайшон ? FLIP работает, если Вы взяли чип с завода, и не стирали его, тогда у чипа есть встроеный загрузчик, и при подключении к компьютеру чипа, он определяется как конкретное устройство, и даже пытается зацепить драйверы. Если Вы затерли чип, то естественно он определяться не будет и его нужно прошивать программатором через ISP или DW. Чип должен соответствовать названию софта, которое для него предназначено. Нельзя софт под 162 модель прошивать в 82 и т.д. Фьюзы должны быть установлены так, как рекомендуется в софте для примера, обычно все расписано. И наконец, насколько я знаю примеры расчитаны на кварц 16МГц. Чтобы можно было Вам помочь, выложите схему и фото Вашей платы, а также подробнее что Вы пытались сделать.
|
|
|
|
|
Jun 12 2009, 11:41
|
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512

|
Сделал подтяжку через 1,7кОм к D+ - определилось. ID и PID вроде верные. И это на плате где МЦУ тактируется от внутреннего RC-генератора 8МГц
Сообщение отредактировал Halfback - Jun 12 2009, 11:41
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 15 2009, 06:19
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(Halfback @ Jun 12 2009, 15:41)  Сделал подтяжку через 1,7кОм к D+ - определилось. ID и PID вроде верные. И это на плате где МЦУ тактируется от внутреннего RC-генератора 8МГц Я фигею. Во-первых, для подтяжки есть внутренний резистор, включаемый битом DETACH в регистре UDCON. Вы, вообще, даташит читали? Во-вторых, тактироваться можно только от кварца, RC-генератор не обеспечит нужной точности, уж это должно быть очевидно и без даташита.
|
|
|
|
|
Jun 15 2009, 12:34
|

наблюдаю..
  
Группа: Свой
Сообщений: 291
Регистрация: 11-12-06
Из: Украина
Пользователь №: 23 369

|
Цитата(Fedor Budylin @ Mar 30 2009, 12:08)  Изучаю контроллер AT90USB82. Для начала нужно что бы просто устройство определялось как USB. Задача сверх типичная, но почему-то не могу найти подходящего примера. Пытаюсь разобраться с атмеловским примером AT90USBxxx USB device HID generic demonstration, но как-то не очень получается  Буду благодарен за ссылки на работающий пример USB устройства на AT90USB82. 1. Если нужен простой обмен данными, можно воспользоваться атмеловским примером виртуального COM-порта - мост UART-USB (CDC). Там намного проще можно разобраться с основами. Ссылки: Перечень на gaw.ru, это ссылка на сайт Атмела, там есть ссылка на проект "USB CDC Demonstration UART to USB Bridge". 2. Если используете для AT90USB bootloader для загрузки программы(не уверен насчет AT90USB82, нужно проверить фьюзы), но на AT90USB162 я делал так: фьюз BOOTRST оставьте незапрограммированным, HWBE запрограммируйте, а ножку PD7 закоротите на землю. Теперь, после нажатия RESET, контроллер перейдет в бут и его можно обнаружить в Flip. Это все касается случая, когда вы изменили состояние чипа с завода. Естественно, бутлоадер не должен быть затронут
|
|
|
|
|
Jun 15 2009, 16:18
|
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512

|
SavrikЦитата можно воспользоваться атмеловским примером виртуального COM-порта - мост UART-USB (CDC). Там намного проще можно разобраться с основами. для неискушенного в программировании человека атмеловский пример - жуткая морока. Так что считаю это плохим советом. Разбираюсь в сырцах товарища Alex11 - там намного понятнее. За что ему огромное спасибо! На счет внутреннего подтягивающего резистора - согласен, тут дал маху. Надо внимательнее даташит читать. Кстати вопрос: когда подключаю шнур USB при отсутствии питания МЦУ (МЦУ питается отдельно 3,3В) то девайс определяется (получает VID, PID и наименование) - почему так? Может кто разжевать?
|
|
|
|
|
Jul 15 2009, 14:43
|
Группа: Участник
Сообщений: 9
Регистрация: 6-09-06
Пользователь №: 20 125

|
Alex11 - огромное человеческое спасибо! Была аналогичная проблема - твои исходники прошились. Устройство обнаружено - SCRUT. Остался вопрос будет ли она корректно работать для AT90USB82 ? И чего то не нашел как менять VID и PID.
Сорри!!! файлик usb_commun.h всё отлично!
Сообщение отредактировал chetr - Jul 15 2009, 15:07
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|