Перейти к содержанию
    

vn821202

Участник
  • Постов

    98
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о vn821202

  • Звание
    Частый гость
    Частый гость
  • День рождения 02.12.1992

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

2 600 просмотров профиля
  1. Требуется разработать демо проект реализующий USB composite device (CDC+MSC) с использованием новых версий CubeMX и HAL на микроконтроллере stm32f407xx и stm32F746 (32F746GDISCOVERY). Требования к композитному устройству: MSC должен работать с uSD картой через 4-проводный интерфейс SDIO. CDC должен реализовывать два виртуальных ком. порта на ПК. Также должна быть предусмотрена возможность конфигурирования для работы с OTG_FS и OTG_HS. Возможно использование в проекте FreeRTOS или Azure RTOS USBX. Проект должен быть собран под Keil MDK. В случае использование в проекте ОС необходимо использовать оберки cmsis_os2. Проверка работы OTG_HS будет производится на 32F746GDISCOVERY.
  2. Спасибо, разобрался после чтения официальной документации. Первоначально я думал, что вызов xStreamBufferReceive заблокируется до приема 64 байт, но чтение и разблокировка происходит при любом количестве байт от 1 до 64.
  3. printf("TickCount1 = %d\n", osKernelGetTickCount()); //debug out j-link (допустим TickCount1 = 100) numBytes = xStreamBufferReceive( rxUartStream, //Stream Handle (Stream Size = 256 byte, trigger Level = 64) rxUartData, //Recive Buffer 64, //await count data 7 ); printf("TickCount2 = %d\n", osKernelGetTickCount()); //debug out j-link (тут я ожидаю увидеть TickCount1 = 107 или numBytes = 64)) //на самом деле получаю TickCount1 = TickCount2 и numBytes = 1
  4. Всем привет! Пересылаю информацию из UART ISR в USB CDC для этого использую StreamBuffer размером 256 байт и установленным триггером на 64 байта. При скорости UART 115200 бод (8 бит данных, 2 стоп бита) пересылка 64 байт требует примерно 6,1 с. При отладке обнаружил, что вызов xStreamBufferReceive не приводит к блокировке не по количеству байт, не по тайм-ауту. В чем может быть дело? В результате код работает корректно только если использовать osDelay(7). Фрагмент кода: /* Stream from UART Recive ISR */ StreamBufferHandle_t rxUartStream = NULL; rxUartStream = xStreamBufferCreate(256, 64); /* USER CODE BEGIN Header_fnc_Uart_Usb */ /** * @brief Function implementing the task_Uart_Usb thread. * @param argument: Not used * @retval None */ /* USER CODE END Header_fnc_Uart_Usb */ void fnc_Uart_Usb(void *argument) { /* USER CODE BEGIN fnc_Uart_Usb */ uint8_t numBytes; uint8_t rxUartAwait = 64; uint8_t rxUartData[rxUartAwait]; for(;;) { printf("TickCount1 = %d\n", osKernelGetTickCount()); //debug out j-link numBytes = xStreamBufferReceive( rxUartStream, //Stream Handle (Stream Size = 256 byte, trigger Level = 64) rxUartData, //Recive Buffer rxUartAwait, //await count data 7 //> (1/115200)*(8+3)*sizeof(rxUartData) = 6.1 ms ); printf("TickCount2 = %d\n", osKernelGetTickCount()); //debug out j-link if (numBytes) { uint8_t result, busy = 0, error = 0; do { result = CDC_Transmit_FS(rxUartData, numBytes); if (USBD_BUSY == result) { if(++busy > 3) break; } if (USBD_FAIL == result) { if(++error > 3) break; } } while(result != USBD_OK); if (result == USBD_OK) { #ifdef DEBUG printf("to_USB ->, numBytes = %d\n", numBytes); //debug out j-link #endif osDelay(7); } else { #ifdef DEBUG printf("Error: busy - %d, error - %d\n", busy, error); //debug out j-link #endif osDelay(1); } } } /* USER CODE END fnc_Uart_Usb */ }
  5. Спасибо за ответ. Опыт использования UCB CDC из CubeMX у меня есть, только ранее в своих приложениях (не очень сложных) я использовал автомат состояний. Читая статьи на разных сайтах про взаимоотношения CubeMX, USB и FreeRTOS у меня сложилось впечатление, что реализация стека USB от CubeMX плохо стыкуется с FreeRTOS, т.к. стек USB работает через прерывания. Поэтому и решил поднять этот вопрос и узнать мнение спецов.
  6. Может подскажите какую-нибудь статью, чтобы понять как это лучше сделать? Ну или если знаете подходящий репозиторий на GitHub, дайте ссылку, плиз...
  7. Хотелось бы понять. Можно-ли создать в CubeMX рабочий проект, например с USB CDC, реализующий эхо через VCP и UART без допиливания библиотек CubeMX?
  8. Здравствуйте! Интересует возможность адаптации примеров из CubeMX для STM32 по работе с USB (CDC, CDC+MSD) под FreeRtos. Есть ли такая возможность в принципе?
  9. Здравствуйте! Ищу официальную (оригинальную) документацию на микросхему CH378 на английском языке. Хотелось бы узнать у участников форума отзывы о применении данной микросхемы в своих проектах, если такие есть. Интересует скорость записи на SD карту по SPI, скорость чтения SD карты по USB. Прикрепил перевод с китайского, выполненный Google. CH378 is a file management control chip —EN.pdf
  10. Здравствуйте! Ищу официальную (оригинальную) документацию на микросхему CH378 на английском языке. Хотелось бы узнать у участников форума отзывы о применении данной микросхемы в своих проектах, если такие есть. Интересует скорость записи на SD карту по SPI, скорость чтения SD карты по USB. Прикрепил перевод с китайского, выполненный Google. CH378 is a file management control chip —EN.pdf
  11. Аналоговые каналы, с усилителей-нормализаторов датчиков, >= 9 каналов. Цифровые каналы: RS-485 / UART - 1 канал. Часть датчиков может иметь цифровой интерфейс (I2C, spi), тогда цифровых каналов должно быть больше. Цель исключительно узконишевая и не массовая. Обязательно наличие контроля над исходными кодами/схемотехникой.
  12. Здравствуйте! Требуется разработать регистратор аналоговых и цифровых каналов а также программное обеспечение для ПК для конфигурирования и проверки работоспособности регистратора. Регистратор должен производить регистрацию на SD карту c файловой системой FAT. Каждой завершенной сессии регистрации должен соответствовать соответствующий файл. При подключении регистратора к ПК по интерфейсу USB регистратор должен предоставлять доступ к SD карте как к съемному USB диску для считывания и просмотра зарегистрированных файлов. Регистратор должен быть реализован на МК STM32 с интерфейсом SDIO доступа к SD карте. Предпочтительно использование программного стека Keil+CubeMX+HAL+FatFs+FreeRTOS.
  13. Здравствуйте! Для существующей разработки 2010 года ищу замену модуля DIGI XBP24BZ7SIT-004 – 802.15.4 Zigbee® Transceiver Module 2.4GHz (снят с производства) на аналогичный от DIGI. Не могу определиться с моделью для замены. Может кто подскажет?
  14. Если количество выводов микросхемы небольшое (SO14, sot23-5, tssop20 и т.п.), то предпочитаю использовать УГО микрохемы, которое совпадает с фактическим расположением выводов на корпусе. Так в последующем удобнее "ковыряться" в плате со схемой в руках.
  15. Нашел способ развязки датчика по постоянному току в известной книге. Насколько эта схема жизнеспособна? Кто-нибудь применял ее на практике?
×
×
  • Создать...