|
USB своими руками для sam7x256, или проблемы с которыми я столкнулся. |
|
|
|
Jan 28 2011, 08:54
|

Участник

Группа: Участник
Сообщений: 22
Регистрация: 21-04-09
Пользователь №: 48 029

|
Доброе время суток всем. Имеем sam7x256, интерфейс USB, и небольшой опыт (3 проекта я не считаю опытом) работы с этим кристалом. С AVR и MC51 опыт достаточно большой, но с ARM-ом сталкнулся год назад. RS, CAN, ADC, SPI, TWI, AIC ну, в общем вся переферия кристалла поддалась о особых трудностей с этим не возникло. Но, ниразу мне не приходилось делать что либо для USB. Однако интересовался, читал (и это форум в том числе), смотрел, слушал... Я вообще долго не задаю вопросы пока уже совсем не упрусь в стенку. Понимаю, что те, кто разобрался в вопросе сечас могут закричать, что "там все просто" или "возьми примеры и не парься", но я человек дотошный и пытаюсь разобраться в каждой мелочи. При этом никогда не отказываю в объяснениях... Однако сейчас объяснить надо мне, да и другим думаю тоже будет интересно. Я может буду задавать ламерские вопросы, но прошу отнестись ко мне с лояльной стороны и не судить за это строго. И так. 1. Судя из того, что я вычитал и прочитал. Работа UDP в background-е меня не устраивает и хотелось бы настроить работу через AIC. Но сталкнулся с такой проблемой: Как задать первоначальные настройки для UDP? Просто задали тактирование и все? А потом пытаемся ловить ENDBUSRES? или же надо запретить передатчик TXDIS перед настройкой? 2. При простой подаче тактирования (ну, частоту я соблел  ), UDP_ISR чистый (т.е. равен 0) как белый лист, какие бы "приседансы" не делались. и посему ENDBUSRES я просто не вижу. Ни включение ни выключение резисторя на D+ не приводят никчему. Хотя посылки от хоста осцилографом я вижу прекрасно. Пересброс питания, reset и включение выключения кабеля эфект нулевой. 3. Несколько раз контроллер UDP таки запускался и я даже залетал по вектору прерывания в обработку прерываний от UDP, но ниодин из битов регистра UDP_ISR не детектируется. Создавалось впечатление, что я залетел туда случайно, но из прерывания он не выходит. Т.е. крутится там и все. Я принудительно в конце процедуры вставил очистку всех прерываний от UDP как в AIC так и в UDP_ICR. А прерывание все равно вызывается и непонятно чем  4. Из-за всего этого я не могу идти дальше, посему вопросов связанных с самим протоколом я задать не смогу. Однако хочу задать вопрос по поводу отладки самого контроллера UDP. В keil нет ничего, что с ним связано. Для отладки другой переферии мне было достаточно keil debuger, а тут..? С UDP пришлось устанавливать "светодиодные метки" но, это жутко неудобно. Как и чем проверять работу кода для UDP в keil ? Понимаю, что вопросы может быть даже немного к "стыду моему", но еще раз прошу отнестить снисходительно к ним. PS Я специально не привожу и не хочу, чтобы приводили куски кода, потому как хочу понять сам процесс и принцип.
--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
|
|
|
|
|
 |
Ответов
|
Feb 16 2011, 13:18
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 25-01-11
Из: Москва
Пользователь №: 62 467

|
странно. у меня устройство запитывается от внешнего источника, а не от USB. но на EK плате я подключал тоже от внешнего, всё работало. надо проверить: если VSUB не доходит до GND на схеме(на моей только конденсатор к земле), то, может, хост не понимает, что надо сетупить устройство и не те пакеты шлёт => MK не выставляет прерывание конечной точки. я смотрел через отладчик: UDP_CSR[0] равен 0 в момент прерывания, а должен быть с битом RXSETUP.
|
|
|
|
|
Feb 16 2011, 18:46
|

Участник

Группа: Участник
Сообщений: 22
Регистрация: 21-04-09
Пользователь №: 48 029

|
Прошу прощения у всезнаеющего All-a, но я уже не знаю что делать и прошу, если кто знает, ответить. Почему HOST не присылает SETUP запросов? Наверное даже не так: В каких случаях host их может не присылать?
--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
|
|
|
|
|
Feb 16 2011, 18:52
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(e0000 @ Feb 16 2011, 21:46)  Прошу прощения у всезнаеющего All-a, но я уже не знаю что делать и прошу, если кто знает, ответить. Почему HOST не присылает SETUP запросов? Наверное даже не так: В каких случаях host их может не присылать? Что, даже не пытается прочитать дескриптор устройства ? А может, он как раз и присылает запросы, да вы их своим устройством не видите ? Или вы забываете подключиться к шине (т.е., резистор, например, у вас одним выводом подключен на D+, в то время как другой его вывод никуда не подключен) ? BusHound что говорит ? А осциллограф (маркеры SOF идут) ?
Сообщение отредактировал kovigor - Feb 16 2011, 18:54
|
|
|
|
Сообщений в этой теме
e0000 USB своими руками для sam7x256 Jan 28 2011, 08:54 kovigor Цитата(e0000 @ Jan 28 2011, 11:54) потому... Jan 28 2011, 09:09 e0000 Цитата(kovigor @ Jan 28 2011, 11:09) 1, 2... Jan 28 2011, 09:41  kovigor 1, 2, 3. А вы пробовали разобраться с примерами ? ... Jan 28 2011, 10:04   e0000 Цитата(kovigor @ Jan 28 2011, 12:04) Чтоб... Jan 28 2011, 10:10    kovigor Цитата(e0000 @ Jan 28 2011, 13:10) Спасиб... Jan 28 2011, 10:13     e0000 В принцияпе со стартом самого UDP разобрался.
Оста... Jan 28 2011, 12:21      kovigor Цитата(e0000 @ Jan 28 2011, 15:21) В прин... Jan 28 2011, 12:38       e0000 Цитата(kovigor @ Jan 28 2011, 14:38) Поче... Jan 28 2011, 13:32        kovigor Цитата(e0000 @ Jan 28 2011, 17:32) Правил... Jan 28 2011, 13:38        aaarrr Цитата(e0000 @ Jan 28 2011, 16:32) Я так ... Jan 28 2011, 20:40         e0000 Цитата(aaarrr @ Jan 28 2011, 22:40) Такти... Jan 29 2011, 12:18          aaarrr Цитата(e0000 @ Jan 29 2011, 15:18) 1. ... Jan 29 2011, 12:33 e0000 Продолжение глупых вопросов
У меня ситуация след... Jan 29 2011, 17:46 aaarrr Цитата(e0000 @ Jan 29 2011, 20:46) У меня... Jan 29 2011, 17:51 Chameleon Сброс обязательно будет не один. При подключении у... Jan 31 2011, 12:11 kichnamid Здравствуйте,
а не встречались с такой проблеммой?... Feb 14 2011, 11:48 e0000 Сталкнулся с той-же проблемой...
Приходят только R... Feb 15 2011, 14:55 e0000 Возврат к "только процессор на порту" ре... Feb 15 2011, 17:21   e0000 Цитата(kovigor @ Feb 16 2011, 20:52) Что,... Feb 17 2011, 07:53    kovigor Цитата(e0000 @ Feb 17 2011, 10:53) Что за... Feb 17 2011, 09:13 e0000 BusHound
Скачал, поставил...
SETUP пакетов именно ... Feb 17 2011, 10:19 kovigor Цитата(e0000 @ Feb 17 2011, 13:19) К нему... Feb 17 2011, 13:12  e0000 Цитата(kovigor @ Feb 17 2011, 15:12) Есть... Feb 17 2011, 17:42   kovigor Цитата(e0000 @ Feb 17 2011, 20:42) Ситуац... Feb 17 2011, 21:13 shrek У меня сначала знакомства с USB "своими рукам... Feb 21 2011, 08:33 kichnamid "После сброса устройство надо заново проиници... Feb 24 2011, 07:59 shrek Цитата"После сброса устройство надо заново пр... Feb 25 2011, 11:27 kichnamid к моей плате подходят только пару-тройку ENBUSRES,... Mar 1 2011, 11:44 aaarrr Цитата(kichnamid @ Mar 1 2011, 14:44) атм... Mar 1 2011, 15:07 shrek Цитатак моей плате подходят только пару-тройку ENB... Mar 1 2011, 16:25 DmitryM Цитата(shrek @ Mar 1 2011, 19:25) ...
Не... Mar 2 2011, 13:19 kichnamid RE: USB своими руками для sam7x256 Mar 4 2011, 07:39 shrek Цитатая понимаю, что у многих результат труда это ... Mar 4 2011, 08:26 sergeeff Совет. Мы купили как-то отладочную плату, где во в... Mar 4 2011, 09:04 kichnamid перепроверил схему, сверил с предлагаемой Atmel... Mar 15 2011, 11:51 shrek Вашу схему в студию! Mar 15 2011, 14:39 kichnamid вот кусок схемы относительно интерфейса USB Mar 20 2011, 13:23 aaarrr А где, простите, земля у USB? И зачем эта непонятн... Mar 20 2011, 14:44 kichnamid извиняюсь, забыл дорисовать.
РЦ-цепочка у 5В - эт... Mar 21 2011, 18:24 shrek Под "USB" что в схеме понимается? Земля ... Mar 22 2011, 14:47 kichnamid земля на моей плате общая для всего. под USB поним... Mar 22 2011, 17:32 e0000 Доброе время суток, всезнающий All!
Возвращаюс... Aug 29 2011, 12:05 kovigor Цитата(e0000 @ Aug 29 2011, 15:05) В цело... Aug 29 2011, 13:42 e0000 в том-то и дело, что прерывание не возникает
Но ... Aug 29 2011, 14:47 kovigor Цитата(e0000 @ Aug 29 2011, 17:47) Но есл... Aug 29 2011, 14:58 e0000 - Очень прошу не распространять!
умрет вместе ... Aug 29 2011, 17:42 shrek А у меня наоборот проблема с отправкой пакета разм... Aug 31 2011, 05:29 e0000 Хм....
если у нас прилетает пакет равный размеру к... Aug 31 2011, 11:30 shrek нулевой по идее прилетит последним в кадре если ра... Sep 1 2011, 05:54 e0000 но у меня не прилетает "нулевой пакет" е... Sep 1 2011, 11:32 shrek хотя в принципе в моем обработчике прерываний как ... Sep 2 2011, 05:39 e0000 Ситуация какова...
Я не знаю сколько мне прилетит ... Sep 2 2011, 07:48 shrek Вообще для того чтобы узнать сколько байт прилетел... Sep 6 2011, 11:47 e0000 Обнаружил следующее:
1. Если пакет меньше 64 байта... Sep 8 2011, 14:01 shrek а если 65 байт?)
у некоторых программ для работы с... Sep 9 2011, 11:32 e0000 при 65 принимаю только 64, а последний не вызывает... Sep 12 2011, 09:34 shrek Странно...
А вы прерывания сбрасываете?
А попутно ... Sep 14 2011, 11:18 e0000 Нет не возникает...
Переделали протокол. Сделали е... Sep 16 2011, 06:26 shrek ЦитатаТеперь с передатчиком. Надо ли отправлять ну... Sep 19 2011, 08:02 shrek Недавно кит вернули AT91SAM7A3-EK я на нем запусти... Sep 20 2011, 07:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|