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

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


Участник
*

Группа: Участник
Сообщений: 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.
При простой подаче тактирования (ну, частоту я соблел sm.gif), UDP_ISR чистый (т.е. равен 0) как белый лист, какие бы "приседансы" не делались. и посему ENDBUSRES я просто не вижу. Ни включение ни выключение резисторя на D+ не приводят никчему. Хотя посылки от хоста осцилографом я вижу прекрасно. Пересброс питания, reset и включение выключения кабеля эфект нулевой.

3.
Несколько раз контроллер UDP таки запускался и я даже залетал по вектору прерывания в обработку прерываний от UDP, но ниодин из битов регистра UDP_ISR не детектируется. Создавалось впечатление, что я залетел туда случайно, но из прерывания он не выходит. Т.е. крутится там и все. Я принудительно в конце процедуры вставил очистку всех прерываний от UDP как в AIC так и в UDP_ICR.
А прерывание все равно вызывается и непонятно чем sad.gif

4.
Из-за всего этого я не могу идти дальше, посему вопросов связанных с самим протоколом я задать не смогу. Однако хочу задать вопрос по поводу отладки самого контроллера UDP. В keil нет ничего, что с ним связано. Для отладки другой переферии мне было достаточно keil debuger, а тут..? С UDP пришлось устанавливать "светодиодные метки" но, это жутко неудобно. Как и чем проверять работу кода для UDP в keil ?

Понимаю, что вопросы может быть даже немного к "стыду моему", но еще раз прошу отнестить снисходительно к ним.

PS
Я специально не привожу и не хочу, чтобы приводили куски кода, потому как хочу понять сам процесс и принцип.



--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Jan 28 2011, 09:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(e0000 @ Jan 28 2011, 11:54) *
потому как хочу понять сам процесс и принцип.


1, 2, 3. Вместе с Кейлом поставляются разные примеры для атмеловских АРМ. Годятся любые - как для ARM7, так и для ARM9. Они-то как раз и работают по прерываниям, а не по опросу. Попробуйте разобраться, ничего сверхсложного там нет. Ответы на 90% своих вопросов вы найдете там. Ну, и спецификацию на USB изучить придется, и книжку Гука почитать тоже будет совсем не лишним ...

4. а что вы хотели там увидеть ? Я в свои проекты вставляю вывод интересующий меня информации через Debug Port (UART). Ну и светодиоды + осциллограф подчас помогают лучше любого отладчика ...
Go to the top of the page
 
+Quote Post
e0000
сообщение Jan 28 2011, 09:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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 "выкурена полностью" sm.gif
Но вопрос заключался не в Спецификации USB, а в контроллере UDP и его первичной инициализации... Этого к сожалению нигде не описано.

месный PS
Отправить дальше читать даташиты я и сам умею sm.gif

4.
Скажем для отладки собственно самого кода для ADC, CAN, TWI и пр в keil debuger есть соответсвующая переферия. И не надо 1000 раз перепрошиваться для отладки. А отладка через Debug Port меня уже пару раз наколола и очень жестко. Для медленных процессов - да, но для быстрых... sm.gif "сисилограф" (как говорят у нас на проходной) твой лучший друг и товарищ!
И все-таки. Есть ли какие либо стредства для отладки кода для UDP?


--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jan 28 2011, 10:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
e0000
сообщение Jan 28 2011, 10:10
Сообщение #5


Участник
*

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



Цитата(kovigor @ Jan 28 2011, 12:04) *
Чтобы вам не было так тоскливо, вот вам проект "мышки" для ARM9 (для ARM7 тоже подойдет). Сделан на основе примеров от Кейл, существенно переработан и "очеловечен". Пароль запросите личным сообщением ...

http://zalil.ru/30417880


Спасибо.
В личку отписать не могу. не дает пользоваться. говорит : Вам запрещено отправлять личные сообщения sad.gif
Попробуем поковыряться, но думаю, что буду задавать еще больше дурных вопросов sad.gif

Сообщение отредактировал e0000 - Jan 28 2011, 10:11


--------------------
Уважающая себя схема, как уважающая себя женщина, никогда с первого раза не даст того, что от нее хотят. (с) мое
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jan 28 2011, 10:13
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(e0000 @ Jan 28 2011, 13:10) *
Спасибо.
В личку отписать не могу. не дает пользоваться. говорит : Вам запрещено отправлять личные сообщения sad.gif
Попробуем поковыряться, но думаю, что буду задавать еще больше дурных вопросов sad.gif


kovigor@yahoo.com

Пишите ...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 07:26
Рейтинг@Mail.ru


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