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

 
 
> STM32 USB FS OTG
V_M_Luck
сообщение Jul 8 2011, 13:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420



Разбираюсь с USB FS OTG на STM32F107. Есть плата с STM32F107 и USB. Мне нужен только device. Что то самостоятельно по даташиту не очень получилось. Попытался запустить пример HID от ST из STM32_USB-FS-Device_Lib_V3.3.0. Не работает. Попадает пару раз в прерывание по RESET, потом в ENUMDN и все. Больше никакой активности.
Смотрел USB TRACE - host даже не пытается запрашивать дескрипторы.
Вопрос - у кого-нибудь этот пример заработал?

Извините. Нашел у себя косяк - пример заработал.

Сообщение отредактировал V_M_Luck - Jul 8 2011, 15:32
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SviMik
сообщение Sep 9 2012, 16:10
Сообщение #2





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



В моём случае, дескриптор взят из заведомо рабочего проекта, но под другой МК (ARM от атмела, ATSAM3S). Там я писал полностью сам, без библиотек, так что в протоколе USB немного понимаю (как мне кажется).

Решил пересесть на STM, и вот такой затык.

Цитата
Далее можно просто записать все, что отправляется/принимается хостом (соот. прогой)

К сожалению, не всё. Я пробовал SniffUSB, но он начинает запись только после корректного опознания устройства, тоесть абсолютно бесполезен в моём случае.

Мой текущий дескриптор девайса выглядит так (как я уже сказал, он заведомо рабочий):
Код
static char device_descriptor[18]={
    /* Standard USB device descriptor for the CDC serial driver */
    sizeof(device_descriptor), // size
    1, // USBGenericDescriptor_DEVICE
    0x00,0x02, // USBDeviceDescriptor_USB2_00
    2, // CDCDeviceDescriptor_CLASS
    0, // CDCDeviceDescriptor_SUBCLASS
    0, // CDCDeviceDescriptor_PROTOCOL
    64, // BOARD_USB_ENDPOINTS_MAXPACKETSIZE
    0xEB,0x03, // CDCDSerialDriverDescriptors_VENDORID
    0x24,0x61, // CDCDSerialDriverDescriptors_PRODUCTID
    0x10,0x01, // CDCDSerialDriverDescriptors_RELEASE
    1, // Index of manufacturer description //0
    2, // Index of product description //0
    3, // Index of serial number description //0
    1, // One possible configuration
};

(остальные не привожу, т.к. до них вообще дело не доходит)

Что происходит на заведомо рабочей плате с SAM3S:
1. usb сброс
2. приходит setup пакет с запросом дескриптора девайса
3. МК отправляет дескриптор (18 байт)
4. usb сброс
5. приходит фрейм, назначающий адрес usb устройству
6. и т.д.

Что происходит с STM32F4: не работает.
1. usb сброс
2. приходит setup пакет с запросом дескриптора девайса
3. МК отправляет дескриптор (18 байт)
4. а дальше тишина, и через 3 секунды переходим к п.1

Приблизительный код для стм32 (упрощено до безобразия в целях отладки):
Код
volatile uint32_t * fifo=(uint32_t *)(OTG_FS_DFIFO0_BASE);
OTG_FS->DIEPTSIZ0=(1<<19)|18; // PKTCNT; XFRSIZ
OTG_FS->DIEPCTL0=(1<<31)|(1<<26); // EPENA; CNAK
*fifo=0x02000112;
*fifo=0x40000002;
*fifo=0x612403EB;
*fifo=0x02010110;
*fifo=0x00000103;


Работу с FIFO предполагаю, на основе того, что чтение работает таким образом:
Код
volatile uint32_t * fifo=(uint32_t *)OTG_FS_DFIFO0_BASE;
int i=0;
for(i=0;i<BCNT;i+=4){
    int data=*fifo;
    rbuf[i+0]=(data>>0)&0xFF;
    rbuf[i+1]=(data>>8)&0xFF;
    rbuf[i+2]=(data>>16)&0xFF;
    rbuf[i+3]=(data>>24)&0xFF;
    pprintf("< %02X%02X%02X%02X", rbuf[i+0], rbuf[i+1], rbuf[i+2], rbuf[i+3]);
}


Исходя из даташита, я делаю правильно.

1. DIEPTSIZ0 должен устанавливаться до того, как поставлю EPENA в DIEPCTL0
Цитата
The application must modify this register before enabling endpoint 0. Once endpoint 0 is
enabled using the endpoint enable bit in the device control endpoint 0 control registers
(EPENA in OTG_FS_DIEPCTL0), the core modifies this register. The application can only
read this register


2. EPENA в DIEPCTL0 должен устанавливаться до того, как начну писать данные в FIFO.
Цитата
1. Program the OTG_FS_DIEPCTLx register with the endpoint characteristics and set the
CNAK and EPENA bits.
2. Write the data to be transmitted in the next frame to the transmit FIFO.


Цитата
1. The application must set the transfer size and packet count fields in the endpointspecific
registers and enable the endpoint to transmit the data.
2. The application must also write the required data to the transmit FIFO for the endpoint.


Однако, я пробовал и другой порядок действий, безрезультатно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- V_M_Luck   STM32 USB FS OTG   Jul 8 2011, 13:24
- - V_M_Luck   Вновь поднимаю тему. Пример-то заработал. Но тянут...   Jul 13 2011, 15:51
|- - Forger   Цитата(V_M_Luck @ Jul 13 2011, 19:51) ......   Sep 9 2012, 15:07
- - SviMik   Ровно та же проблема, как и в последнем сообщении....   Sep 9 2012, 11:41
- - aaarrr   CNAK в DOEPCTL0 после обработки setup установить н...   Sep 9 2012, 19:54
- - SviMik   Вот же однако... Заработало! Плюс вам в карму,...   Sep 9 2012, 22:19
|- - aaarrr   Цитата(SviMik @ Sep 10 2012, 02:19) Интер...   Sep 9 2012, 22:51
- - SviMik   Пытаюсь реализовать CDC девайс. Что получилось: 1....   Sep 17 2012, 00:32
- - SviMik   Вомзжно, я что-то не так понял с FIFO буфферами. Е...   Sep 18 2012, 00:11
|- - MBR   Цитата(SviMik @ Sep 18 2012, 04:11) Это к...   Sep 18 2012, 10:49
- - SviMik   Хорошо. Тоесть моя конфигурация выше впринципе пра...   Sep 18 2012, 13:48
|- - MBR   Цитата(SviMik @ Sep 18 2012, 17:48) При э...   Sep 18 2012, 14:05
- - SviMik   Всмысле флаг прерывания? Да, как и все остальные п...   Sep 18 2012, 14:27
- - MBR   А где запись данных после отправки очередного балк...   Sep 18 2012, 15:03
- - SviMik   Всмысле? Функция hwtx() выше, вызываю её вручную, ...   Sep 18 2012, 15:11
- - SviMik   Кажется, чего-то я в этой жизни не понимаю Из дев...   Sep 18 2012, 22:30
- - MBR   Раз все остальное вроде верно, что там в hwtx?   Sep 19 2012, 14:26
- - SviMik   (Назначение hwtx - слать Hello World. Исключительн...   Sep 19 2012, 15:01
- - MBR   Собственно, я ошибок не вижу. Я делаю все примерно...   Sep 20 2012, 12:15
- - SviMik   Я сдаюсь Можете выложить какой-нибудь минимальный...   Sep 22 2012, 22:15
- - NaughtyFreak   Подниму тему. Подскажите плз, все глаза стёр уже г...   Feb 19 2013, 08:11
- - Сергей Борщ   Подниму древнюю тему. STM32F107, родной стек из ...   Mar 16 2015, 09:49
|- - Сергей Борщ   Цитата(Сергей Борщ @ Mar 16 2015, 11:49) ...   Mar 17 2015, 23:10
- - esaulenka   Ещё разик подниму тему. На эти грабли: https://my...   Apr 7 2015, 09:57
|- - johnshadow   Цитата(esaulenka @ Apr 7 2015, 12:57) Ещё...   Apr 8 2015, 13:57
- - esaulenka   Рекомендацию библиотеки ST спасибо. Знать, что оно...   Apr 14 2015, 10:58
- - Golikov A.   По спецификации USB 2.0 если мы говорим о SETUP то...   Apr 14 2015, 11:09
- - esaulenka   Подумал-подумал, и окончательно запутался. Два bu...   Apr 14 2015, 12:14
- - Golikov A.   окончанием данных служит пакет длинной меньше макс...   Apr 14 2015, 12:35
- - Immortal_Buka   Может подскажет кто: В соответствии с вот этой шту...   Sep 22 2015, 12:52
- - prottoss   Доброго времени суток. Тоже решил освоить STM32 OT...   Oct 25 2015, 12:30
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 15:30) Дан...   Oct 25 2015, 13:07
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 19:07) Хост ...   Oct 25 2015, 13:37
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 16:29) Хос...   Oct 25 2015, 13:46
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 19:46) Как э...   Oct 25 2015, 14:17
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 17:17) Не ...   Oct 25 2015, 15:18
|- - prottoss   А OTG_FS_GINTSTS_RXFLVL, как я понял из даташита, ...   Oct 25 2015, 15:30
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 18:30) А O...   Oct 25 2015, 15:37
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 21:37) Нет, ...   Oct 25 2015, 15:44
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 18:44) 1.Ч...   Oct 25 2015, 16:11
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 22:11) 1. Чт...   Oct 25 2015, 16:19
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 19:19) Зач...   Oct 25 2015, 16:26
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 22:26) Не зн...   Oct 25 2015, 16:50
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 19:50) А ч...   Oct 25 2015, 17:25
- - prottoss   Продолжаю неспеша тупить с STM32. С Setup пакетами...   Nov 7 2015, 18:41
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 21:41) В че...   Nov 7 2015, 18:48
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 00:48) OTG_FS...   Nov 7 2015, 18:54
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 21:54) Т.е....   Nov 7 2015, 19:02
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:02) Так вы...   Nov 7 2015, 19:08
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:08) Так ...   Nov 7 2015, 19:29
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:29) EPENA ...   Nov 7 2015, 19:44
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:44) Не п...   Nov 7 2015, 19:47
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:47) Получи...   Nov 7 2015, 19:51
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:51) Но я...   Nov 7 2015, 19:55
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:55) Перене...   Nov 7 2015, 20:16
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:16) Спас...   Nov 7 2015, 20:28
|- - prottoss   Цитата(prottoss @ Nov 8 2015, 02:16) Прав...   Nov 7 2015, 20:37
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:37) Мне ...   Nov 7 2015, 20:59
||- - prottoss   Цитата(aaarrr @ Nov 8 2015, 02:59) Уровен...   Nov 7 2015, 21:06
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:37) ...е...   Nov 7 2015, 21:15
||- - Tarbal   Цитата(aaarrr @ Nov 8 2015, 01:15) Вот не...   Nov 20 2015, 15:45
|- - Tarbal   Цитата(prottoss @ Nov 8 2015, 00:37) Мне ...   Nov 20 2015, 13:28
- - prottoss   Поднял на собственном стеке HID с двумя INT точкам...   Nov 20 2015, 12:26
|- - aaarrr   Цитата(prottoss @ Nov 20 2015, 15:26) Т.е...   Nov 20 2015, 13:09
|- - prottoss   Цитата(aaarrr @ Nov 20 2015, 19:09) Нет, ...   Nov 20 2015, 13:45
|- - prottoss   Ну и по передаче так же. Цитата(aaarrr @ Nov...   Nov 20 2015, 13:47
||- - aaarrr   Цитата(prottoss @ Nov 20 2015, 16:47) Что...   Nov 20 2015, 13:50
||- - aaarrr   Цитата(aaarrr @ Nov 20 2015, 16:50) Честн...   Nov 20 2015, 13:55
|- - aaarrr   Цитата(prottoss @ Nov 20 2015, 16:45) При...   Nov 20 2015, 13:48
||- - prottoss   Цитата(aaarrr @ Nov 20 2015, 19:48) 64 ба...   Nov 20 2015, 13:55
|||- - prottoss   Размер трансфера данных задается все таки в байтах...   Nov 20 2015, 13:57
||- - prottoss   Вернусь к вопросу использования DMA. Цитата(aaarrr...   Nov 21 2015, 04:41
||- - prottoss   Продолжаю потихоньку грызть OTG. Построил USB MS...   Dec 18 2015, 11:19
||- - Шаманъ   Подниму темку в связи со схожим вопросом... Цитата...   Mar 19 2017, 21:09
|- - Tarbal   Цитата(prottoss @ Nov 20 2015, 17:45) Ну ...   Nov 20 2015, 13:51
- - aaarrr   Цитата(Tarbal @ Nov 20 2015, 16:28) Ведь ...   Nov 20 2015, 13:46
|- - prottoss   Цитата(aaarrr @ Nov 20 2015, 19:46) Выраз...   Nov 20 2015, 13:48
- - Genadi Zawidowski   Я эту ситуацию ловил как результат порчи FIFO из-з...   Mar 20 2017, 00:43
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 03...   Mar 20 2017, 06:05
- - Genadi Zawidowski   Рабочие в проекте. Проблемы если по формуле (там г...   Mar 20 2017, 08:42
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 11...   Mar 20 2017, 10:03
- - Genadi Zawidowski   1) эти неиспользуемые ендпоинты инициализируются о...   Mar 20 2017, 12:56
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 15...   Mar 20 2017, 15:03
- - controller_m30   У меня был похожий случай недавно (на USB CDC), чт...   Mar 20 2017, 14:01
- - Genadi Zawidowski   Добавлю - особенно хорошо проявляются такие забыты...   Mar 20 2017, 14:09
- - Genadi Zawidowski   Дополнил инициализацию отладочной печатью: Кодv1=0...   Mar 20 2017, 17:38
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 20...   Mar 20 2017, 19:05
- - Genadi Zawidowski   Цитатано в заголовочном файле была ошибка В студию...   Mar 20 2017, 19:06
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 22...   Mar 20 2017, 19:52
- - Genadi Zawidowski   Вот версия с внутренним генератором, теоретически ...   Mar 20 2017, 20:01
- - Шаманъ   Народ, я тут всех поставил на уши, а потом подключ...   Mar 20 2017, 20:38
|- - Alechek   Цитата(Шаманъ @ Mar 21 2017, 01:38) Народ...   Mar 21 2017, 03:52
- - Genadi Zawidowski   Попробуй мой тест на XP - у меня работало (термина...   Mar 20 2017, 20:40
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 23...   Mar 20 2017, 21:04
- - Genadi Zawidowski   На одном из двуз компортов - Kenwood CAT. На объем...   Mar 20 2017, 21:16
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 21 2017, 00...   Mar 21 2017, 14:32
- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 21 2017, 00...   Mar 21 2017, 04:20
- - Шаманъ   XP таки была "новая" в смысле XP SP3   Mar 21 2017, 05:28
- - Genadi Zawidowski   Спасибо. На какой операционной системе проверялось...   Mar 21 2017, 14:45
2 страниц V   1 2 >


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

 


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


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