реклама на сайте
подробности

 
 
> AT90USB, нужна помощь
Fedor Budylin
сообщение Mar 30 2009, 09:08
Сообщение #1


Участник
*

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



Добрый день.

Изучаю контроллер AT90USB82. Для начала нужно что бы просто устройство определялось как USB. Задача сверх типичная, но почему-то не могу найти подходящего примера. Пытаюсь разобраться с атмеловским примером AT90USBxxx USB device HID generic demonstration, но как-то не очень получается sad.gif
Буду благодарен за ссылки на работающий пример USB устройства на AT90USB82.

В дальнейшем задача обеспечить передачу данных между USB и памятью EEPROM. Если бы нашлось что-то похожее, было бы вообще супер.

Тему создал в этом разделе, потмоу что я совсем начинающий и сразу сорри за собственный тупизм если что.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
V_N
сообщение Mar 30 2009, 09:57
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 12-01-09
Из: Харьков
Пользователь №: 43 270



Вот ссылка пример правда на AT90USB162 но это не существенно
http://www.pjrc.com/teensy/index.html
Причина редактирования: Удаление дублирования сообщения.
Go to the top of the page
 
+Quote Post
kimstik
сообщение Mar 30 2009, 11:34
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 4-02-05
Из: Москва
Пользователь №: 2 430



Посмотри тут http://www.fourwalledcubicle.com/LUFA.php
Go to the top of the page
 
+Quote Post
Fedor Budylin
сообщение Apr 17 2009, 08:52
Сообщение #4


Участник
*

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



Цитата
Вот ссылка пример правда на AT90USB162 но это не существенно
http://www.pjrc.com/teensy/index.html

В этом примере используется регистр UHWCON. Но в МК AT90USB82(162) такого регистра нету вообще. За что отвечает этот регистр в других мк (ATmega32U6, AT90USB646, AT90USB128) ?

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

Сообщение отредактировал Fedor Budylin - Apr 17 2009, 09:38
Go to the top of the page
 
+Quote Post
mikesm
сообщение Apr 17 2009, 10:03
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-01-09
Из: Russia
Пользователь №: 43 426



Цитата(Fedor Budylin @ Apr 17 2009, 12:52) *
В этом примере используется регистр UHWCON. Но в МК AT90USB82(162) такого регистра нету вообще. За что отвечает этот регистр в других мк (ATmega32U6, AT90USB646, AT90USB128) ?

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

У Atmel на страничке для AT90USB162 есть живые примеры.
http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4440
Единственное, что нужно соблюдать, подключить кварц 16Мгц. Все определяется сразу.

Сообщение отредактировал mikesm - Apr 17 2009, 10:08
Go to the top of the page
 
+Quote Post
Fedor Budylin
сообщение Apr 20 2009, 11:15
Сообщение #6


Участник
*

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



При попытке открыть hex файл Atmel Flip выдаёт ошибку.

В чем может быть дело ?
Go to the top of the page
 
+Quote Post
Fedor Budylin
сообщение Apr 28 2009, 13:35
Сообщение #7


Участник
*

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



Знающие, помогите!
Я так и не смог прошить примеры с предложенной странички sad.gif
И так и не разобрался, почему устройство не определяется.
Всё-таки, какие регистры должно минимум определить, что бы устройство определилось? В чем заключается процедура енумерайшон ?

Сообщение отредактировал Fedor Budylin - Apr 28 2009, 14:29
Go to the top of the page
 
+Quote Post
Alex11
сообщение Apr 30 2009, 09:49
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Вот рабочий проект под 90USB162. Попробуй загрузить. Определяться должен, для дальнейшего нужен драйвер.
Прикрепленный файл  SoftSmall.zip ( 169.67 килобайт ) Кол-во скачиваний: 987
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jun 11 2009, 16:33
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Alex11
скачал в том числе и Ваш проект - у меня не катит. VIP и PID устройство возвращает нулевые (если вообще возвращает ибо смотрел осциллографом - сложно было понять что там к чему). Частота кварцованная и равна 8 МГц. В фьюзах делитель на 8 не стоит (да и пробовал ставить - та жа ерунда). В общем почему не работает так и не могу разобраться. Сопротивления в линии 22 Ома, подтяжка VBUS к D- через 2,7кОм (думаю такой номинал не криминален ибо обычно ставят 1,5к). Связи проверил - всё звониться. Контроллер в остальном рабочий.

Сообщение отредактировал Halfback - Jun 11 2009, 16:40
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jun 11 2009, 20:49
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Делитель на 8 там противопоказан, так что здесь правильно. Подтяжка должна быть 1.5к - это по стандарту, лучше ему следовать. Скорее всего, у Вас что-то совсем не завелось, т.к. виндюки, если просто подтянуть D+ к 3.3В как раз и скажут, что устройство нашли, но VID, PID = 0.
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jun 12 2009, 10:02
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Alex11
не, резистор подтянут между VBUS (питание +5В от USB) и D-
Винда говорит что устройство найдено но в диспетчере на это неизвестное устройстсво видно, что VID и PID винда от МЦУ не получает (нули).
Попробую 1,5 кОм. Но думаю врядли поможет unsure.gif
Схему включения БЕЗ подтягивающего резистора прикрепил.
Ядро МЦУ питается от линейного ИП 3,3В.

Сообщение отредактировал Halfback - Jun 12 2009, 10:47
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
topoR
сообщение Jun 12 2009, 10:56
Сообщение #12





Группа: Новичок
Сообщений: 2
Регистрация: 4-06-09
Из: Самара
Пользователь №: 49 929



Цитата(Fedor Budylin @ Apr 28 2009, 16:35) *
Знающие, помогите!
Я так и не смог прошить примеры с предложенной странички sad.gif
И так и не разобрался, почему устройство не определяется.
Всё-таки, какие регистры должно минимум определить, что бы устройство определилось? В чем заключается процедура енумерайшон ?


FLIP работает, если Вы взяли чип с завода, и не стирали его, тогда у чипа есть встроеный загрузчик, и при подключении к компьютеру
чипа, он определяется как конкретное устройство, и даже пытается зацепить драйверы.
Если Вы затерли чип, то естественно он определяться не будет и его нужно прошивать программатором через ISP или DW.
Чип должен соответствовать названию софта, которое для него предназначено. Нельзя софт под 162 модель прошивать
в 82 и т.д.
Фьюзы должны быть установлены так, как рекомендуется в софте для примера, обычно все расписано.
И наконец, насколько я знаю примеры расчитаны на кварц 16МГц.
Чтобы можно было Вам помочь, выложите схему и фото Вашей платы, а также подробнее что Вы пытались сделать.
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jun 12 2009, 11:41
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Сделал подтяжку через 1,7кОм к D+ - определилось. ID и PID вроде верные.
И это на плате где МЦУ тактируется от внутреннего RC-генератора 8МГц

Сообщение отредактировал Halfback - Jun 12 2009, 11:41
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jun 14 2009, 21:04
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



подтяжка к D- приводит к определению устройства как Low Speed, в моем проекте на это ничего не рассчитано. Тактироваться лучше от кварца, стабильность RC явно противоречит спецификации USB. Если и работает, то будет очень неустойчиво.
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 15 2009, 06:19
Сообщение #15


Профессионал
*****

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



Цитата(Halfback @ Jun 12 2009, 15:41) *
Сделал подтяжку через 1,7кОм к D+ - определилось. ID и PID вроде верные.
И это на плате где МЦУ тактируется от внутреннего RC-генератора 8МГц

Я фигею.
Во-первых, для подтяжки есть внутренний резистор, включаемый битом DETACH в регистре UDCON. Вы, вообще, даташит читали?
Во-вторых, тактироваться можно только от кварца, RC-генератор не обеспечит нужной точности, уж это должно быть очевидно и без даташита.
Go to the top of the page
 
+Quote Post
xelax
сообщение Jun 15 2009, 08:50
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(777777 @ Jun 15 2009, 10:19) *
Во-вторых, тактироваться можно только от кварца, RC-генератор не обеспечит нужной точности, уж это должно быть очевидно и без даташита.


Можно и от RC тактированться, но с постоянной подкалибровкой... Но лучше от кварца...
Go to the top of the page
 
+Quote Post
777777
сообщение Jun 15 2009, 09:45
Сообщение #17


Профессионал
*****

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



Цитата(xelax @ Jun 15 2009, 12:50) *
Можно и от RC тактированться, но с постоянной подкалибровкой...

Что означает это выражение? Контроллер должен постоянно проверять свою тактовую частоту? А как, позвольте спросить?
Go to the top of the page
 
+Quote Post
xelax
сообщение Jun 15 2009, 10:05
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Цитата(777777 @ Jun 15 2009, 13:45) *
Что означает это выражение? Контроллер должен постоянно проверять свою тактовую частоту? А как, позвольте спросить?


Производить её измерение, например с помощью низкочастотного кварца, если таковой имеется.
Go to the top of the page
 
+Quote Post
Savrik
сообщение Jun 15 2009, 12:34
Сообщение #19


наблюдаю..
***

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



Цитата(Fedor Budylin @ Mar 30 2009, 12:08) *
Изучаю контроллер AT90USB82. Для начала нужно что бы просто устройство определялось как USB. Задача сверх типичная, но почему-то не могу найти подходящего примера. Пытаюсь разобраться с атмеловским примером AT90USBxxx USB device HID generic demonstration, но как-то не очень получается sad.gif
Буду благодарен за ссылки на работающий пример 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. Это все касается случая, когда вы изменили состояние чипа с завода. Естественно, бутлоадер не должен быть затронутsmile.gif
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jun 15 2009, 16:18
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Savrik
Цитата
можно воспользоваться атмеловским примером виртуального COM-порта - мост UART-USB (CDC). Там намного проще можно разобраться с основами.

для неискушенного в программировании человека атмеловский пример - жуткая морока. Так что считаю это плохим советом. Разбираюсь в сырцах товарища Alex11 - там намного понятнее. За что ему огромное спасибо! На счет внутреннего подтягивающего резистора - согласен, тут дал маху. Надо внимательнее даташит читать.

Кстати вопрос: когда подключаю шнур USB при отсутствии питания МЦУ (МЦУ питается отдельно 3,3В) то девайс определяется (получает VID, PID и наименование) - почему так? Может кто разжевать?
Go to the top of the page
 
+Quote Post
chetr
сообщение Jul 15 2009, 14:43
Сообщение #21





Группа: Участник
Сообщений: 9
Регистрация: 6-09-06
Пользователь №: 20 125



Alex11 - огромное человеческое спасибо! Была аналогичная проблема - твои исходники прошились. Устройство обнаружено - SCRUT. Остался вопрос будет ли она корректно работать для AT90USB82 ? И чего то не нашел как менять VID и PID.

Сорри!!! файлик usb_commun.h всё отлично!

Сообщение отредактировал chetr - Jul 15 2009, 15:07
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jul 15 2009, 21:03
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Если в память влезет, то должен. Там нет отличий в структуре.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01595 секунд с 7
ELECTRONIX ©2004-2016