Поиск
Показаны результаты для тегов 'usb hs'.
-
stm32 Проблема с записью данных с АЦП на SD карту при помощи FATFS
PadenieShtanov опубликовал тема в STM
Приветствую, столкнулся с проблемой при записи данных с АЦП, посредством библиотеки FATFS на SD карту. Данные с АЦП формируются в массив, после чего последовательностью функций f_mount, f_open, f_write записываются на SD карту, однако иногда функция f_write возвращает результат FR_INVALID_OBJECT и запись прерывается. Копнув глубже увидел что такой статус появляется из за того, что функция HAL_SD_GetCardState возвращает странный статус HAL_SD_CARD_SENDING, который описан как sd card is sending operation information. Большего описания нигде не нашел. Проблема исчезает посредством увеличения делителя частоты тактирования SDIO, что в свою очередь значительно режет скорость передачи созданного файла с данными на пк посредством USB HS, с чем вроде можно и свыкнуться, но хотелось бы разобраться в чём причина. Возможно кто-то сталкивался с подобной проблемой и может помочь. -
USB HS максимальная скорость обмена
J_Aleks опубликовал тема в ARM, 32bit
Прошу помощи у вселенского разума... суть проблемы... есть отладочная плата, STM32F746ZG + модуль расширения USB3300, задача получить максимально возможную скорость обмена с PC... желательно, точка отправления: проект на CubeMX, какой нибудь CASTOM HID поправленый в нужную сторону, с одной стороны, ну пусть работает как эхо, что нибудь принял, это же выплюнул... другой стороны что нибудь простенькое например на QT, либа libusb, шлем килограмм байтов в эндпойнт, читаем этот же килограм в ответ, ну пусть количество килограмм за секунду... Цель, максимально приблизиться к аппаратной скорости порта в 480 МГЦ... На просторах инета рабочих макетов такой пары не обнаружил, везде только проэкты с мышами и джойстиками в FS моде... да расплывчатые рассуждения, из категории, вот я вчера пытал контроллер с USB... Короче, если не жалко, выложите такой рабочий тестовый макет, или ткните носом в практическую реализацию... а то уже моск расплавился, обмен получается забавно плавающих результатах от 500 килобит до 50-60 мегабит, причем непредсказуемо... да и увековечитесь в анналах... -
USB HS STM32F745
Kot_Schrodingera опубликовал тема в STM
Работаю с stm32f745 Драйвер для usb взять из кубика я работаю в режиме хоста, в роли девайса выступает устройство, на котором стоит atmel+камера, и гонится картинка по usb Изначально работал в режиме FS и не испытывал никаких проблем Решили, что нужно HS, сделали новую плату, usb физику использовали 3320 И теперь появились проблемы при передаче, выражаются они вот в чем: В какой-то момент я не могу получить пакет от девайса Причем, в callback я изменяю статус о том, что данные приняты, и в функции по отправке я жду появление данного статуса И в какой то момент функция зависает в ожидании статуса. То есть callback даже не вызывается, и следовательно прерывание по приему тоже не происходит Может кто сталкивался с такой проблемой?Или проблема в самом девайсе? int write_and_read( USBH_HandleTypeDef *d, void *rx_buff, size_t rx_buff_size, void *tx_buff, size_t tx_buff_size) { status = 0x0; status_rx = 0x0; SCB_CleanInvalidateDCache(); int r = write(d, tx_buff, tx_buff_size, true); if (r < PB_PVS_SUCCESS) return r; timer_start(&timer_usb, 50); while((!(timer_check(&timer_usb)) == TIMER_STATE_TIMEOUT)) { if(status) break; }; if(!status) return PB_PVS_ERROR_LIBUSB; r = read(d, rx_buff, rx_buff_size, true); SCB_CleanInvalidateDCache(); if (r < PB_PVS_SUCCESS) { debug("read_error"); return r; } timer_start(&timer_usb, 50); while(!(status_rx)) { //в данном месте висит функция }; return PB_PVS_SUCCESS; }; int write( USBH_HandleTypeDef *d, void *buff, size_t buff_size, const bool pack) { uint8_t *data = (uint8_t *)buff; int res = PB_PVS_SUCCESS; USBH_PVS_Stop(d); const int r_usb = USBH_PVS_Transmit(d, data, buff_size); if(r_usb != USBH_OK) res = PB_PVS_ERROR_LIBUSB; return res; } int read( USBH_HandleTypeDef *d, void *buff, size_t buff_size, const bool unpack) { int res; uint8_t *data = (uint8_t *)buff; USBH_PVS_Stop(d); const int r_usb = USBH_PVS_Receive(d, data, buff_size); if(!r_usb) { res = PB_PVS_SUCCESS; } if (r_usb != USBH_OK) { res = PB_PVS_ERROR_LIBUSB; } return res; }- 4 ответа
-
- stm32f745 usb hs
- stm32f745
-
(и ещё 1 )
C тегом: