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

 
 
13 страниц V  « < 7 8 9 10 11 > »   
Reply to this topicStart new topic
> ARM. Энкодеры и акселерометры, Помогите решить задачу
Zliva
сообщение Sep 13 2009, 18:18
Сообщение #121


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Объясните пожалуйста значение этих переменных:
SANITY_CHECK((priority & ~AT91C_AIC_PRIOR) == 0);
BOARD_USB_PULLUP_MATRIX
BOARD_USB_PULLUP_INTERNAL
BOARD_USB_PULLUP_EXTERNAL


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 13 2009, 18:41
Сообщение #122


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Zliva @ Sep 13 2009, 22:18) *
Объясните пожалуйста значение этих переменных:

Во-первых, это не переменные, а макросы. Во-вторых, назначение вполне очевидно:

Код
SANITY_CHECK((priority & ~AT91C_AIC_PRIOR) == 0);
- вывод ошибки вида "Sanity check failed at FILE:LINE" и зависание при не верности условия.

Код
BOARD_USB_PULLUP_MATRIX
BOARD_USB_PULLUP_INTERNAL
BOARD_USB_PULLUP_EXTERNAL

- задают тип используемого pull-up'а.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 13 2009, 18:45
Сообщение #123


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Zliva @ Sep 13 2009, 22:18) *
Объясните пожалуйста значение этих переменных:
SANITY_CHECK((priority & ~AT91C_AIC_PRIOR) == 0);

Это просто макрос проверки приоритета на соответствие, при ошибке печать через DBGU варнинга
можно смело выкидывать так же как и все TRACE_xxx
Цитата
BOARD_USB_PULLUP_MATRIX
BOARD_USB_PULLUP_INTERNAL
BOARD_USB_PULLUP_EXTERNAL

Это просто выбор того как подключается pullup на линии D+ при появлении питания на USB разъеме.
В некоторых процах есть внутренний пулап, в Вашем насколько я понимаю только EXTERNAL и
все остальные варианты можно просто поудалять.
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 13 2009, 20:21
Сообщение #124


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Что долго инициализируется устройство. Когда подключил к компу устройство, жду порядка минуты, потом появляется сообщение, что винда нашла виртуальный порт. Кто-то с такой ситуацией встречался?


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 13 2009, 20:35
Сообщение #125


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Т.к. время в одну минуту превосходит все разумные таймауты системы, я бы для начала проверил на другом компьютере.
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 15 2009, 21:22
Сообщение #126


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Начинает немного прояснятся. В неделю нереально вложится smile3046.gif . Думаю переписать све под себя.
Не могу понять вот такой код:
Код
// Get interrupts status
    status = AT91C_BASE_UDPHS->UDPHS_INTSTA & AT91C_BASE_UDPHS->UDPHS_IEN;
Можете объяснить? То есть не могу найти описания UDPHS_INTSTA и UDPHS_IEN.


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 15 2009, 21:43
Сообщение #127


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Zliva @ Sep 16 2009, 01:22) *
Можете объяснить? То есть не могу найти описания UDPHS_INTSTA и UDPHS_IEN.

А в HS-то вас как занесло?
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 16 2009, 05:49
Сообщение #128


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Цитата(aaarrr @ Sep 16 2009, 00:43) *
А в HS-то вас как занесло?

Стандартный пример от атмела. Смотрите обработку прерываний
void USBD_InterruptHandler(void).


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 16 2009, 08:39
Сообщение #129


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Zliva @ Sep 16 2009, 01:22) *
Начинает немного прояснятся. В неделю нереально вложится smile3046.gif . Думаю переписать све под себя.
Не могу понять вот такой код:
Код
// Get interrupts status
    status = AT91C_BASE_UDPHS->UDPHS_INTSTA & AT91C_BASE_UDPHS->UDPHS_IEN;
Можете объяснить? То есть не могу найти описания UDPHS_INTSTA и UDPHS_IEN.


Вы смотрите файл USBD_UDPHS.c который Вам нафиг не нужен он относиться к HighSpeed
и в самом его начале:

#ifdef BOARD_USB_UDPHS
........весь код
#endif

Вам нужен файл USBD_UDP.c который имеет в начале:
#if defined(BOARD_USB_UDP)
..........весь код
#endif

Ну и если посмотреть Ваш board.h:
Код
//------------------------------------------------------------------------------
// USB
//------------------------------------------------------------------------------
/// Indicates the chip has a UDP controller.
#define BOARD_USB_UDP

/// Indicates the D+ pull-up is externally controlled.
#define BOARD_USB_PULLUP_EXTERNAL

/// Number of endpoints in the USB controller.
#define BOARD_USB_NUMENDPOINTS                  4

/// Returns the maximum packet size of the given endpoint.
/// \param i  Endpoint number.
/// \return Maximum packet size in bytes of endpoint.
#define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i)    ((i == 0) ? 8 : 64)

/// Returns the number of FIFO banks for the given endpoint.
/// \param i  Endpoint number.
/// \return Number of FIFO banks for the endpoint.
#define BOARD_USB_ENDPOINTS_BANKS(i)            (((i == 0) || (i == 3)) ? 1 : 2)

/// USB attributes configuration descriptor (bus or self powered, remote wakeup)
#define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_SELFPOWERED_NORWAKEUP
//#define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
//#define BOARD_USB_BMATTRIBUTES                  USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
//------------------------------------------------------------------------------


то видно какой код будет работать

Просто удалите нафиг из кода библиотеки все что не относится к Вашей плате,
тогда разбираться будет намного проще.
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 17 2009, 20:38
Сообщение #130


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Маленький отчет.
1. Удалил файл UDPHS.с Работает. Может еще что-то надо удалить laughing.gif? А то я занимался пунктом 2 и не было времени разобраться с UDPHS.
2. Спаял датчик ускорения. Заработал вариант только с MMA7260QT (на 6g) из третей пробы. Спалил один ADXL210 и один MMA7260QT. Народу на заметку: Не советую некому паять эти датчики советским паяльником, а то вывалите лишние деньги и потратите много времени (как я) впустую. Лучше поискать паяльную станцию, или сделать как я – обратится в сервис по ремонту мобил. Там такой аппарат есть или должен быть. Также прикупил два датчика LIS302DL (на 8g) c SPI/I2C. Их уже припаял на плату - но не подключал. Когда что-то выйдет, отпишу.
Не могу понять, зачем инициализировать таймер с прерываниями?


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 17 2009, 20:58
Сообщение #131


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Zliva @ Sep 18 2009, 00:38) *
1. Удалил файл UDPHS.с Работает. Может еще что-то надо удалить laughing.gif? А то я занимался пунктом 2 и не было времени разобраться с UDPHS.

Может. Как видите, время тратить все равно приходится, несмотря на наличие казалось бы готового кода. И тратится оно в данном случае практически впустую.

Цитата(Zliva @ Sep 18 2009, 00:38) *
Не советую некому паять эти датчики советским паяльником, а то вывалите лишние деньги и потратите много времени (как я) впустую.[/b] Лучше поискать паяльную станцию, или сделать как я – обратится в сервис по ремонту мобил.

Пробитым паяльником, равно как и незаземленной станцией, угробить можно что угодно. Но виноват отнюдь не паяльник.

Цитата(Zliva @ Sep 18 2009, 00:38) *
Не могу понять, зачем инициализировать таймер с прерываниями?

Pardon?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 17 2009, 21:28
Сообщение #132


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Zliva @ Sep 18 2009, 00:38) *
Маленький отчет.
1. Удалил файл UDPHS.с Работает. Может еще что-то надо удалить laughing.gif? А то я занимался пунктом 2 и не было времени разобраться с UDPHS.

Просто найдите(поиском по файлам) и удалите весь код который
#ifdef BOARD_USB_UDPHS
....... код
#endif (или #else #elseif)

Ну а дальше уже внимательно изучать и оптимизировать...

Да, еще поищите по форуму, была ошибка в этом коде с прерыванием ендпоинта
И еще ошибка с пулапом...
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 23 2009, 21:00
Сообщение #133


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



С дескрипторами разобрался. Вроде все понятно. Теперь ступор. Не могу понять что делать дальше. Смотрю примеры, и все больше убеждаюсь в том, что нужно писать самому. Не могу определится с последовательностью, что зачем и когда. Теперь вопросы:
1. Чем просматривать пакеты со стороны хоста?
2. Набросайте последовательность инициализации устройства, что зачем должно идти, или скажите, где можно прочитать. Не могу никак въехать в саму иерархию ЮЗБ. В голове каша.
3. Что должно обрабатываться по прерываниях?

Сообщение отредактировал Zliva - Sep 23 2009, 21:01


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 23 2009, 21:21
Сообщение #134


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Zliva @ Sep 24 2009, 01:00) *
1. Чем просматривать пакеты со стороны хоста?

Каким-нибудь сниффером. Я, например, использую snoopypro. Одно но - пакеты можно просмотреть только если устройство успешно энумерировано.

Цитата(Zliva @ Sep 24 2009, 01:00) *
2. Набросайте последовательность инициализации устройства, что зачем должно идти, или скажите, где можно прочитать. Не могу никак въехать в
саму иерархию ЮЗБ. В голове каша.

Последовательность инициализации UDP, или последовательность запросов/ответов при подключении?

Цитата(Zliva @ Sep 24 2009, 01:00) *
3. Что должно обрабатываться по прерываниях?

Логично обслуживать нулевую точку и ENDBUSRES, т.к. оно не отключается. Остальное - по желанию.
Go to the top of the page
 
+Quote Post
Zliva
сообщение Sep 23 2009, 21:31
Сообщение #135


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

Группа: Участник
Сообщений: 137
Регистрация: 14-11-06
Из: Луцка
Пользователь №: 22 318



Цитата(aaarrr @ Sep 24 2009, 00:21) *
Каким-нибудь сниффером. Я, например, использую snoopypro. Одно но - пакеты можно просмотреть только если устройство успешно энумерировано.
Последовательность инициализации UDP, или последовательность запросов/ответов при подключении?

Последовательность инициализации UDP


--------------------
If the person is successful, he is successful in any sphere.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 12:10
Рейтинг@Mail.ru


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