|
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 Я специально не привожу и не хочу, чтобы приводили куски кода, потому как хочу понять сам процесс и принцип.
--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
|
|
|
|
|
 |
Ответов
|
Jan 28 2011, 09:41
|

Участник

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

|
Цитата(kovigor @ Jan 28 2011, 11:09)  1, 2, 3. Вместе с Кейлом поставляются разные примеры для атмеловских АРМ. Годятся любые - как для ARM7, так и для ARM9. Они-то как раз и работают по прерываниям, а не по опросу. Попробуйте разобраться, ничего сверхсложного там нет. Ответы на 90% своих вопросов вы найдете там. Ну, и спецификацию на USB изучить придется, и книжку Гука почитать тоже будет совсем не лишним ...
4. а что вы хотели там увидеть ? Я в свои проекты вставляю вывод интересующий меня информации через Debug Port (UART). Ну и светодиоды + осциллограф подчас помогают лучше любого отладчика ... 1.2.3. Знаете, может я совсем старомоден в принципах написания програмного обеспечения, но я не понимаю того, что пишут другие на СИ еще и сприменением каких-то там библиотек, каких-то макросов, которые кем-то когда-то были написаны и потм вылавливать в них глюки... Я больше на ASM. Уж простите за столь старомодный подход. Посему и привык весь нижний уровень писать самостоятельно. Не то, чтобы СИ я не понимаю, а просто если взять кусок кода приведенного на СИ и попытаться разобраться то начинается, что нехватает *.h или других *.с файлов, чтобы понять от куда и как ростут ноги. Убивается куча времени а итог - 0. Я могу вам "до битика"/"до милливольта" рассказать и объяснить работу CAN, RS(232/485/422/489) , ARING, и прочие. И до всего доходил сам слушая и читая (как тут выразились - "курю даташиты")... Спецификация USB 2.0 "выкурена полностью"  Но вопрос заключался не в Спецификации USB, а в контроллере UDP и его первичной инициализации... Этого к сожалению нигде не описано. месный PS Отправить дальше читать даташиты я и сам умею  4. Скажем для отладки собственно самого кода для ADC, CAN, TWI и пр в keil debuger есть соответсвующая переферия. И не надо 1000 раз перепрошиваться для отладки. А отладка через Debug Port меня уже пару раз наколола и очень жестко. Для медленных процессов - да, но для быстрых...  "сисилограф" (как говорят у нас на проходной) твой лучший друг и товарищ! И все-таки. Есть ли какие либо стредства для отладки кода для UDP?
--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
|
|
|
|
|
Jan 28 2011, 10:04
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
1, 2, 3. А вы пробовали разобраться с примерами ? Нет там никаких библиотек. Вообще, ничего стороннего там не привлекается. Голый Си - код, работающий исключительно с ресурсами МК и не вызывающий и не использующий никакого постороннего кода. Хедеры ? Да, я их и сам не уважаю, когда их десятки и они ссылаются друг на друга. Но !!! Другого пути нет. Или по полгода или по году писать самому "нижний уровень", или за две-три недели разобрать готовый пример, поставляемый со средой. Лично мне больше по душе именно второе. 4. Хотите, расскажу вам одну штуку ? Я для отладки своих дивайсов сделал себе простой аппаратный USB - сниффер на FPGA и соотв софтик к нему на Делфи. Иногда он просто незаменим. Сделал давно, еще когда начинал разбираться с шиной. Но обычно хватает UART (ничего он не "врет", не выдумывайте), осциллограф и светодиоды. P.S. Еще раз отправляю к первоисточникам - примерам от Кейла. Разбирайтесь. Другого выхода нет. Вы можете писать все что угодно и сколько угодно. Но все равно вы вынуждены будете вернуться к примерам. P.P.S. Чтобы вам не было так тоскливо, вот вам проект "мышки" для ARM9 (для ARM7 тоже подойдет). Сделан на основе примеров от Кейл, существенно переработан и "очеловечен". Пароль запросите личным сообщением ... http://zalil.ru/30417880
Сообщение отредактировал kovigor - Jan 28 2011, 10:05
|
|
|
|
|
Jan 28 2011, 10:10
|

Участник

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

|
Цитата(kovigor @ Jan 28 2011, 12:04)  Чтобы вам не было так тоскливо, вот вам проект "мышки" для ARM9 (для ARM7 тоже подойдет). Сделан на основе примеров от Кейл, существенно переработан и "очеловечен". Пароль запросите личным сообщением ... http://zalil.ru/30417880Спасибо. В личку отписать не могу. не дает пользоваться. говорит : Вам запрещено отправлять личные сообщения  Попробуем поковыряться, но думаю, что буду задавать еще больше дурных вопросов
Сообщение отредактировал e0000 - Jan 28 2011, 10:11
--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
|
|
|
|
Сообщений в этой теме
e0000 USB своими руками для sam7x256 Jan 28 2011, 08:54     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 kichnamid странно. у меня устройство запитывается от внешнег... Feb 16 2011, 13:18 e0000 Прошу прощения у всезнаеющего All-a, но я уже не з... Feb 16 2011, 18:46  kovigor Цитата(e0000 @ Feb 16 2011, 21:46) Прошу ... Feb 16 2011, 18:52   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
|
|
|